在表格中的多列选项下添加附加列时出现问题

在表格中的多列选项下添加附加列时出现问题

问题的第一部分: 我有一张桌子

\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}

相关内容