使用多列时,编译器错误“额外的对齐制表符已更改为 \cr”

使用多列时,编译器错误“额外的对齐制表符已更改为 \cr”

我遇到了错误 latex 的问题,因此

我有一张带标题的表格,要建立一个标题,我正在使用,\multicolumn但我有这个错误

Extra alignment tab has been changed to \cr

这是一个最小的例子

\documentclass[11pt]{toptesi}


\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{booktabs}


\begin{document}

\begin{table}[ht]
       \centering\small
           \begin{tabular}{cc}
               \toprule
                 & \multicolumn{2}{c}{\large Transaction input} \\
               \midrule
               $int32\_t$ & nVersion   \\
               $uint256$ & hashPrevBlock \\
               $uint256$ & hashMerkleRoot \\
               $uint32\_t$ & nTime \\
               $uint32\_t$ & nBits \\
               $uint32\_t$ & nNonce \\
               \bottomrule
               Type & Name \\
       \end{tabular}
       \caption{Rappresentazione struttura delle transazione d’input in Bitcoin.\label{tab:inputtransaztionbitcoin}}
   \end{table}

 \end{document}

答案1

该错误是由于&前面的引起的\multicolumn{2},它要求一行有三列。

我认为没有必要声明\small,但如果您喜欢这样,表格标题就不应该是\large。此外,列标题应该放在顶部,而不是底部。

我补充道\usepackage[T1]{fontenc}说,必要的如果您使用pdflatex(而不是如果您使用 XeLaTeX 或 LuaLaTeX)。

我还修正了标题中的语法:“交易输入”是“input di transazione”,而不是“transazione di input”。

第一列中的项目应该使用\mathrm(如我在这里所做的)或\mathit,而不仅仅是数学模式。下划线在数学中似乎很不常见,所以我将其改为表示下标。

\documentclass[11pt]{toptesi}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage{booktabs}


\begin{document}

\begin{table}[ht]
\centering

\begin{tabular}{ll}
\toprule
\multicolumn{2}{c}{Transaction input} \\
\cmidrule(lr){1-2}
\multicolumn{1}{c}{Type} & \multicolumn{1}{c}{Name} \\
\midrule
$\mathrm{int}32_t$  & nVersion   \\
$\mathrm{uint}256$  & hashPrevBlock \\
$\mathrm{uint}256$  & hashMerkleRoot \\
$\mathrm{uint}32_t$ & nTime \\
$\mathrm{uint}32_t$ & nBits \\
$\mathrm{uint}32_t$ & nNonce \\
\bottomrule
\end{tabular}
\caption{Rappresentazione della struttura degli input di transazione in 
  Bitcoin.\label{tab:inputtransaztionbitcoin}}
\end{table}

\end{document}

在此处输入图片描述

答案2

& 是列分隔符,这意味着此行

  & \multicolumn{2}{c}{\large Transaction input} \\

将被解释为“取一列(& 之前的列),然后创建一个跨两列的单元格”,本质上是试图将三列塞入定义为只有两列的表格中。这会引发您遇到的错误。

删除该行中的 &。

相关内容