如何创建一个表格,其中一个列具有可变数量的等宽子列?

如何创建一个表格,其中一个列具有可变数量的等宽子列?

我目前正在写一份实验室报告,并试图制作一个如下所示的表格:

|Number of lightbulbs|Voltage from battery|Voltage in lightbulbs|
|         1          |         2.6 V      |        2.2 V        |
|         2          |         2.8 V      |  1.9 V  |   0.5 V   |
|         3          |         1.2 V      | 1.2 V |0.2 V |0.6 V |

我尝试这样写:

\begin {tabular} {|c|c|c|c|c|c|c|c|}
    \hline
    Number of Lightbulbs & Voltage from Battery & \multicolumn {6}{|c|}{Voltage in Lightbulbs} \\
    \hline
    1 & 2.6 & \multicolumn {6}{|c|}{2.2 V} \\
    \hline
    2 & 2.8 V & \multicolumn {3}{|c|}{2.5 V} & \multicolumn {3}{|c|}{0.5 V} \\
    \hline
    3 & 2.8 V & \multicolumn {2}{|c|}{1.2 V} & \multicolumn {2}{|c|}{0.2 V} & \multicolumn {2}{|c|}{0.6 V} \\
    \hline
\end {tabular}

但是,这最终导致第二行被分为 1/3 和 2/3,而不是 1/2 和 1/2。我该如何解决这个问题?谢谢!

答案1

使用嵌套表,这会很简单:-):

\documentclass[border=3mm]{standalone}
    \usepackage{array,tabularx}
\newcommand{\xmc}[2]{\begin{tabularx}{\hsize}[t]{@{}
                      *{#1}{>{\centering\arraybackslash}X|}@{}}
                        #2
                     \end{tabularx}}

    \begin{document}
\begin{tabular} {|c|c|>{\centering\arraybackslash}p{45mm}@{}}
    \hline
Number of Lightbulbs & Voltage from Battery 
                &   \xmc{1}{Voltage in Lightbulbs}  \\
    \hline
1   &   2.6 V   &   \xmc{1}{2.2 V}                  \\
    \hline
2   &   2.8 V   &   \xmc{2}{2.5 V & 0.5 V}          \\
    \hline
3   &   2.8 V   &   \xmc{3}{1.2 V & 0.2 V & 0.6 V}  \\
    \hline
\end{tabular}
    \end{document}

在此处输入图片描述

编辑:前两行使用新命令xcm对于表格中最右边的垂直线是必要的。如果在主表中确定了,则在最后两行重复。由于这是可见的,我决定采用所呈现的解决方案。

现在我还添加了选项[t]。 如果您使用不同于 1 或使用,tabularx它将保留表中所有行的连接(感谢 Mico 向我指出这个重要细节)。\arraystretch\extrarowheight

相关内容