LyX 表行错误

LyX 表行错误

我希望有人能帮助解决这个问题。我有一个 3x4 的表格,如果直接输入,对于页面来说太宽了。因此,我将每列宽度固定为文本宽度的 25%,然后\linebreak在表格中使用 ERT。

但是,当我尝试编译时,我收到 4 次此错误:

额外的对齐标签已更改为 \cr。

LyX 表的 LaTeX 代码是:

\begin{table}
\caption{CD271 Antibody Assessment}

\centering{}%
\begin{tabular}{|>{\centering}p{0.25\textwidth}|p{0.25\textwidth}|p{0.25\textwidth}|}
\hline 
Sample & \multicolumn{2}{p{0.25\textwidth}|}{Percentage Identified\linebreak as MSCs by Panel} & \multicolumn{2}{p{0.25\textwidth}|}{Percentage CD271\linebreak Postive}\tabularnewline
\hline 
\hline 
BMMC & 0&02 & 1&78\tabularnewline
\hline 
\hline 
Cultured Bone Marrow & 39&08 & 5&70\tabularnewline
\hline 
\hline 
Commerical MSCs & 99&51 & 45&44\tabularnewline
\hline 
\end{tabular}
\end{table}

知道我做错了什么吗?我尝试查看在线帮助,但找不到答案。

答案1

您有一个表格环境仅 3

\begin{tabular}{{...}p{...}p{...}p{...}}

所以你不能把第二行的三个单元格 5列:

  1. Sample &--> 1
  2. \multicolumn{2}{...}{...} &--> 1 + 2 = 3
  3. \multicolumn{2}{...}{...}\tabularnewline--> 3+2=5

以下行中也没有五个单元格:

  1. BMMC &
  2. 0 &
  3. 02 &
  4. 1 &
  5. 78 \tabularnewline

解决方案是使用五列的表格环境。例如:

\begin{tabular}{p{...}p{...}p{...}p{...}p{...}} 

顺便说一句,请避免使用垂直线和双线。我建议使用booktabs包的水平规则,而不是\hline其他一些更改。请检查此最小工作示例中的差异:

平均能量损失

\documentclass{article}
\usepackage{array,booktabs}

\begin{document}

\begin{table}
\caption{CD271 Antibody Assessment}
\centering{}%
\begin{tabular}{|>{\centering}p{0.12\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|p{0.12\textwidth}|}
\hline 
Sample & \multicolumn{2}{p{0.24\textwidth}|}{Percentage Identified\linebreak as MSCs by Panel} & \multicolumn{2}{p{0.24\textwidth}|}{Percentage CD271\linebreak Postive}\tabularnewline
\hline 
\hline 
BMMC & 0&02 & 1&78\tabularnewline
\hline 
\hline 
Cultured Bone Marrow & 39&08 & 5&70\tabularnewline
\hline 
\hline 
Commerical MSCs & 99&51 & 45&44\tabularnewline
\hline 
\end{tabular}
\end{table}


\begin{table}
\caption{CD271 Antibody Assessment}
\centering{}%
\begin{tabular}{lcccccc}
\toprule 
Sample & & \multicolumn{2}{>{\raggedright}m{0.25\textwidth}}{Percentage Identified as MSCs by Panel} & & \multicolumn{2}{>{\raggedright}m{0.25\textwidth}}{Percentage CD271 Postive}\tabularnewline
\cmidrule{1-1}\cmidrule{3-4}\cmidrule{6-7}
BMMC & & 0 & 02 & & 1 & 78\tabularnewline
Cultured Bone Marrow & &  39 & 08 & & 5 & 70\tabularnewline
Commerical MSCs & & 99 & 51 & & 45 & 44\tabularnewline
\bottomrule
\end{tabular}

\end{table}

\end{document}

答案2

正如其他人已经注意到的:在 LyX 生成的 LaTeX 代码中,表格定义\begin{tabular}通过 创建 3 列p{...},但每行包含 5 列/单元格,例如对齐选项卡&在第三行中出现了 4 次。因此,LaTeX 会抱怨额外的对齐选项卡。

你问你做错了什么……好吧,对于 LyX,实际上什么都没有。你只是打了一个漏洞!关于这个例子——好吧——最小化尽可能多地重复示例(在 LyX 中),使问题仍然存在,这总是有帮助的。在这种情况下,这意味着逐行删除行或列,直到问题消失,然后撤消最后一个操作(这样问题就会再次出现)。这样做将导致一个极简的表格。


现在我创造问题从头开始:

  1. 在 LyX 文档中,插入一个有 1 行 1 列(即只有一个单元格)的表格。
  2. 单击单元格内部并设置以下表格设置(例如通过编辑>表格设置...):将水平对齐方式设置为“小数点分隔符”,并将宽度设置为“50”“文本宽度%”。

  3. 回到表格,在单元格内输入数字“1.2”。

查看 LyX 中的 LaTeX 源预览,可能会发现以下问题:

\begin{tabular}{|p{0.5\textwidth}|}
\hline
1&2\tabularnewline
\hline
\end{tabular}

问题是LyX 中列的小数对齐和固定宽度的组合。

(请注意,稍后编辑表格并更改“宽度”设置时,水平对齐将重置为“中心” - 因此,没有小数对齐,也不会发生错误。将对齐方式设置回小数将再次显示问题。)

现在重复步骤 1.-3。但没有设置“宽度”,即保留此字段为空,将创建下表:

\begin{tabular}{|r@{\extracolsep{0pt}.}l|}
\hline
1&2\tabularnewline
\hline
\end{tabular}

它展示了 LyX 如何处理小数对齐,即,它创建两列并在小数点分隔符处拆分数字。


解决方法 1

给定一个表格,该表格应有一个具有小数对齐的列和一个长标题。

  1. 不是设置列的宽度,即,将“宽度”字段留空,但将水平对齐方式设置为“在小数点分隔符处”。

  2. 转到/单击标题占用太多(水平)空间的单元格内部。

    a) 通过菜单编辑 > 表格 > 多列进行选择。(实际上,可以在表格设置对话框中进行相同的设置,但那里是灰色的。)

    b) 现在打开表格设置对话框,将“宽度”设置为适合您的任何值,例如“25”“文本宽度%”。使用这种方法,手动换行似乎没有必要!

下面是此类表格的图片和生成的 LaTeX 代码:

具有小数对齐和长标题的 LyX 表格

\begin{tabular}{|r@{\extracolsep{0pt}.}l|}
\hline
\multicolumn{2}{|>{\raggedright}p{0.5\textwidth}|}{a column that has decimal alignment and a long heading}\tabularnewline
\hline
\hline
1111&2\tabularnewline
\hline
3&4444\tabularnewline
\hline
\end{tabular}

请注意,更改小数分隔符时,您必须撤消上述多列设置,并在更改后重新执行。此外,小数分隔符似乎确实仅限于., ,, ;, :。尝试使用一些更奇特的分隔符(如“/”)将在 LyX 中失败,并且不会出现错误消息。


解决方法 2将使用包dcolumn。然后可以将列的“LaTeX 参数”字段设置为D{.}{.}{4..2},请参阅LyX 维基百科更多细节。

相关内容