问题的第一部分: 我有一张桌子
\begin{document}
\begin{tabular}{|*9{c|}}\hline
A & \multicolumn{2}{c|}{B} & \multicolumn{2}{c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E} \\\cline{2-9}
& \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} \\\cline{2-9}
& U & V & U & V & U & V & U & V \\\hline
y & 7.23 & 6.39 & 7.76 & 6.93 & 2.81 & 2.54 & 0.59 & 0.55 \\ \hline
z & 2.5503 & 2.2658 & 2.5345 & 2.3741 & 1.85 & 1.64 & 0.46 & 0.37 \\ \hline
$\sum{E^{i}_{U/V}}$ & & & & & & & $\sim 1$ & $\sim 1$ \\ [1ex] \hline
\end{tabular}
\end{document}
它很好地重现了我想要的东西。
但是当我想在 B 下添加第 3 列时,它不起作用并且一直给我错误“array.arg 中的非法字符”。
\begin{document}
\begin{tabular}{|*10{c|}}\hline
A & \multicolumn{3}{c|}{B} & \multicolumn{2}{c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E} \\\cline{2-10}
& \multicolumn{3}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} \\\cline{2-10}
& U & V & W & U & V & U & V & U & V \\\hline
y & 7.23 & 6.39 & X & 7.76 & 6.93 & 2.81 & 2.54 & 0.59 & 0.55 \\ \hline
z & 2.5503 & 2.2658 & X & 2.5345 & 2.3741 & 1.85 & 1.64 & 0.46 & 0.37 \\ \hline
$\sum{E^{i}_{U/V}}$ & & & & & & & & $\sim 1$ & $\sim 1$ \\ [1ex] \hline
\end{tabular}
\end{document}
有人能帮我解决这个问题吗?
问题的第二部分:
如何删除最后一行中具有空条目的列线?
任何帮助都将不胜感激,谢谢!
答案1
这里的主要问题是*10
被解释为“一次”。LaTeX 中的命令总是寻找下一个字符。如果您需要处理多个字符,则必须将其放在括号中。*{10}
您可以看到 的情况相同\textbf ab
。
% arara: pdflatex
\documentclass{article}
\usepackage{showframe} % remove this. It just shows that the second table is too large.
\begin{document}
\noindent
\begin{tabular}{|*9{c|}}\hline
A & \multicolumn{2}{c|}{B} & \multicolumn{2}{c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E} \\\cline{2-9}
& \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} \\\cline{2-9}
& U & V & U & V & U & V & U & V \\\hline
y & 7.23 & 6.39 & 7.76 & 6.93 & 2.81 & 2.54 & 0.59 & 0.55 \\ \hline
z & 2.5503 & 2.2658 & 2.5345 & 2.3741 & 1.85 & 1.64 & 0.46 & 0.37 \\ \hline
$\sum{E^{i}_{U/V}}$ & & & & & & & $\sim 1$ & $\sim 1$ \\ [1ex] \hline
\end{tabular}
\noindent % the table is still a bit to wide for this page...
\begin{tabular}{|*{10}{c|}}\hline % important to set 10 into braces. (and every other multi digits number)
A & \multicolumn{3}{c|}{B} & \multicolumn{2}{c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E} \\\cline{2-10} % 2-10, not 2-9, I guess...
& \multicolumn{3}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} & \multicolumn{2}{c|}{x} \\\cline{2-10}
& U & V & W & U & V & U & V & U & V \\\hline
y & 7.23 & 6.39 & X & 7.76 & 6.93 & 2.81 & 2.54 & 0.59 & 0.55 \\ \hline
z & 2.5503 & 2.2658 & X & 2.5345 & 2.3741 & 1.85 & 1.64 & 0.46 & 0.37 \\ \hline
$\sum{E^{i}_{U/V}}$ & \multicolumn{2}{c}{} & & \multicolumn{1}{c}{} & &\multicolumn{1}{c}{} & & $\sim 1$ & $\sim 1$ \\ [1ex] \hline
\end{tabular}
\end{document}
它不会帮助解决水平宽度问题,但你可以使用包摆脱所有这些线booktabs
。这是一个快速解决方案,可能需要进行一些调整。
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\scriptsize\noindent
\begin{tabular}{c*{2}S[table-format=1.4]c*{2}S[table-format=1.4]*{4}S[table-format=1.2]}\toprule
A & \multicolumn{3}{c}{B} & \multicolumn{2}{c}{C} & \multicolumn{2}{c}{D} & \multicolumn{2}{c}{E} \\
& \multicolumn{3}{c}{x} & \multicolumn{2}{c}{x} & \multicolumn{2}{c}{x} & \multicolumn{2}{c}{x} \\\addlinespace
& U & V & W & U & V & U & V & U & V \\\cmidrule(lr){2-4}\cmidrule(lr){5-6}\cmidrule(lr){7-8}\cmidrule(lr){9-10}
y & 7.23 & 6.39 & X & 7.76 & 6.93 & 2.81 & 2.54 & 0.59 & 0.55 \\
z & 2.5503 & 2.2658 & X & 2.5345 & 2.3741 & 1.85 & 1.64 & 0.46 & 0.37 \\\midrule
$\sum{E^{i}_{U/V}}$ & & & & & & & & {$\sim 1$} & {$\sim 1$} \\\bottomrule
\end{tabular}
\end{document}