构建非对称表

构建非对称表

我正在尝试构建如下所示的表格。位置X表示表格的条目。如何在 latex 中构建这样的表格?我很高兴开始使用该multirows软件包,如下所示:

   \begin{table}[h]
   \begin{center}
   \begin{tabular}{|c|c|c|c|c|c|c|}
   \hline \\
   \multirow{2}{*}{X} & \multicolumn{2}{c|}{X} & \multicolumn{2}{|c|}{X} & \multicolumn{2}{|c|}{X}\\
   \cline{2-7}
   &X & X & X & X & X & X \\
   \hline \\
   X & & & & & X & X \\
   \hline \\
   X & X & X & & & X & X \\

但是,这里的列线没有连接——上面的代码有问题吗? 在此处输入图片描述

答案1

以下\multirow和的组合\multicolumn或许可以帮助您入门:

在此处输入图片描述

\documentclass{article}
\usepackage{multirow}

\begin{document}

\begin{tabular}{|l|c|c|}
\hline
xxxxxxx & \multicolumn{2}{c|}{x} \\
\hline
\multicolumn{1}{|r|}{xxx} & x &\multirow{2}{*}{x}\\
\cline{1-2}
\multicolumn{1}{|r|}{xxx} & x &\\
\hline
xxx & x &\multirow{2}{*}{x}\\
\cline{1-2}
xxx & x &\\
\hline
\multicolumn{1}{|r|}{xxx} & x &\multirow{2}{*}{x}\\
\cline{1-2}
\multicolumn{1}{|r|}{xxx} & x &\\
\hline
\end{tabular}

\end{document}

答案2

\\在 -command 的两边都有\hline。这是错误的。使用\arraystretch\extrarowheight来增加行高。

如果需要更多列宽,可以使用w数组包中的固定宽度 -columns ( )。此外,您只能在多列中在列定义的右侧wc{1cm}添加垂直规则命令 ( ),即,除非多列跨越第一列:|c|

在此处输入图片描述

\documentclass{article}
\usepackage{array, multirow}

\setlength{\extrarowheight}{2pt}
\renewcommand*{\arraystretch}{1.2}

\begin{document}

   \begin{table}[tbh!]
\centering
   \begin{tabular}{|c|c|c|c|c|c|c|}
   \hline
   \multirow{2}{*}{X} & \multicolumn{2}{c|}{X} & \multicolumn{2}{c|}{X} & \multicolumn{2}{c|}{X}\\
  \cline{2-7}
   &X & X & X & X & X & X \\
   \hline
   X &   &   &   &   & X & X \\
   X & X & X &   &   & X & X \\
   X & X & X &   &   & X & X \\
   X & X & X & X & X & X & X \\
   X & X & X & X & X & X & X \\
   X & X & X & X & X &   &   \\
   X &   &   & X & X &   &   \\
   X &   &   & X & X &   &   \\
\hline

\end{tabular}
\end{table}

\end{document} 

答案3

  • 您已\hline使用 row terminology终止\\。不要这样做!
  • 你的桌子不完整(错过了它的结尾)

这些问题都在 @leandriis 的回答 (+19) 中得到解决。这里的许多表格设计专家通常建议“不要将表格内容锁定在垂直线和水平线的牢笼中”。您可以在Sveinung答案 (+1) 中找到“解放”单元格内容的步骤。朝这个方向迈出的进一步步骤(为了答案的完整性)在下面的 MWE 中,其中删除了所有垂直线,对于真正需要的水平线,使用booktabs包中的规则:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs, multirow}
\newcommand\mcc[1]{\multicolumn{2}{c}{#1}}

\begin{document}  
   \begin{table}[tbh!]
\centering % instead `\begin{center} which introduce additional vertical space
\renewcommand*{\arraystretch}{1.1}
   \begin{tabular}{ *{7}{c} }
   \toprule
\multirow{2.4}{*}{X} & \mcc{XXX} & \mcc{XXX} & \mcc{XXX}\\
   \cmidrule(l){2-3}\cmidrule(l){4-5}\cmidrule(l){6-7}
  & XX & XX & XX & XX & XX & XX \\
   \midrule
XX &    &    &    &    & XX & XX \\
XX & XX & XX &    &    & XX & XX \\
XX & XX & XX &    &    & XX & XX \\
    \addlinespace
XX & XX & XX & XX & XX & XX & XX \\
XX & XX & XX & XX & XX & XX & XX \\
XX & XX & XX & XX & XX &    &    \\
    \addlinespace
XX &    &    & XX & XX &    &    \\
XX &    &    & XX & XX &    &    \\
   \bottomrule
\end{tabular}
    \end{table}
\end{document}

相关内容