我遇到了错误 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} \\
将被解释为“取一列(& 之前的列),然后创建一个跨两列的单元格”,本质上是试图将三列塞入定义为只有两列的表格中。这会引发您遇到的错误。
删除该行中的 &。