将表格中的一行拆分为两个相等的列

将表格中的一行拆分为两个相等的列

我有这张简单的表格,需要一些帮助:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{table}[]
\resizebox{\textwidth}{!}{%
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
   & Zone A1 & Zone A1 & Zone A1 & Zone A1 & Zone A1 & Zone A1 \\ \hline
Value  & 1       & 2       & 3       & 4       & 5       & 6       \\       \hline
\multicolumn{7}{|c|}{Total}                                        \\     \hline
\multicolumn{3}{|c|}{Val1} & \multicolumn{4}{c|}{Val2}             \\    \hline
\end{tabular}%
}
\end{table}
\end{document}

看起来像这样: 在此处输入图片描述

我怎样才能使行中的列值1值2宽度相等?

谢谢。

答案1

无需任何附加包,并且(几乎)无需更改您现有的表(我仅将您的代码缩减为tabular并更改了相关行):

\documentclass[border=2mm]{standalone}

\begin{document}
\begin{tabular}{|c|c|c|c|c|c|c|}
  \hline
         & Zone A1 & Zone A1 & Zone A1 & Zone A1 & Zone A1 & Zone A1  \\
  \hline
  Value  & 1       & 2       & 3       & 4       & 5       & 6        \\
  \hline
  \multicolumn{7}{|c|}{Total}                                         \\
  \hline
  \multicolumn{7}{|c|}{\hfill Val1\hfill\vline\hfill Val2\hfill\null} \\
  \hline
\end{tabular}
\end{document}

在此处输入图片描述

答案2

这里有一种方法可以做到这一点:使用tabularx使表格的整个宽度具有等间距的列,然后在里面嵌入第二个表格以使底部的列间距均匀。

我已经使用该array包来定义居中X列。

\documentclass{article}
\usepackage{tabularx}
\usepackage{array}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}

\begin{tabularx}{\linewidth}{|C|C|C|C|C|C|C|}
\hline
   & Zone A1 & Zone A1 & Zone A1 & Zone A1 & Zone A1 & Zone A1 \\ \hline
Value  & 1       & 2       & 3       & 4       & 5       & 6       \\       \hline
\multicolumn{7}{|c|}{Total}                                        \\     \hline
\multicolumn{7}{|@{}c@{}|}{\begin{tabularx}{\columnwidth}{C|C}Val1 & Val2 \end{tabularx}}       \\    \hline
\end{tabularx}%

\end{document}

代码输出

正如我在评论中提到的,使用 来\resizebox更改表格大小通常是一种不好的做法,因为它会更改文档的字体大小。因此使用tabularx允许您直接指定表格的宽度。表格中的垂直线通常也是不必要的,因此您可能还想看看使用该booktabs包而不是使用任何垂直线。当然它们有时是合适的,所以我在回答中保留了您的示例。

代码输出

相关内容