在复杂表中组合多列和多行

在复杂表中组合多列和多行

我正在尝试创建一个表格,表格中的每个框合并为两列宽和两行高。
我目前有下面的代码控制两列,但尽管我努力了几个小时(并尝试在这个网站上回答类似的问题),我还是没能将其与两行合并。

\documentclass[12pt]{book}
\usepackage{multirow,array,booktabs}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}

\begin{document}
\begin{center}
\begin{tabular}{ |c|c|c|c|c|c|c|c|c| }
\hline
\multicolumn{2}{|c|}{ } & S & M & T & W & T & F & S \\
\hline
\multicolumn{2}{|c|}{T} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{S} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{O} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{R} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{F} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{I} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{S} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{J} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{M} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{Cl.} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{T} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{Ch.} & & & & & & & \\
\hline
\multicolumn{2}{|c|}{H} & & & & & & & \\
\hline
\end{tabular}
\end{center}
\end{document}

答案1

这里有两种可能性。由于您没有提供 MWE,因此很难知道您正在做什么以及您还应该或可以做什么。

一种可能性是使用multirow,其语法如下:

 \multirow{nrows}[bigstruts]{width}[fixup]{text}

在下面的示例中我没有使用可选参数。

另一个想法是在主表中嵌入一个“迷你表”,我已经使用以下命令完成了:

  \newcommand{\minitab}[1]{% note the use of `@{}` to skip out on the normal column sep used in tables; remove if desired
    \begin{tabular}{@{}>{\centering}p{3cm}@{}}#1\end{tabular}
  }

那么,比较一下这两个选择的不同之处:

\documentclass[landscape]{article}
\parindent 0pt % just for this example
\usepackage[showframe]{geometry}% just to help visualize the page layout

\usepackage{multirow}
\usepackage{array}
\newcolumntype{D}{@{}>{\centering}p{3cm}@{}}
\newcolumntype{C}{@{}>{\centering}p{1.5cm}@{}|}

\newcommand{\minitab}[1]{%
  \begin{tabular}{@{}>{\centering}p{3cm}@{}}#1\end{tabular}
}

\begin{document}

\begin{tabular}{ |D|*{8}C }
\hline

% using a 'mini table'
\minitab{ONE\\ ONE} & TWO & THREE & FOUR & FIVE & SIX & SEVEN & EIGHT & NINE \tabularnewline

% using 'multirow'
\multirow{2}*{ONE}  & TWO & THREE & FOUR & FIVE & SIX & SEVEN & EIGHT & NINE \tabularnewline
                    & TWO & THREE & FOUR & FIVE & SIX & SEVEN & EIGHT & NINE \tabularnewline

\hline
\end{tabular}

\end{document}

通常情况下,我会建议加载booktabs并跳过\hline,但不可能知道您要做什么,因此我将它们保留在此示例中。

相关内容