多行多列单元格

多行多列单元格

我正在尝试创建一个具有两个多行单元格的 4x2 表,它们分别连接单元格(1,2)(2,2)(1,3)(2,3)

第一个多行单元格应包含 2 行,第二个多行单元格应包含 3 行:

+---+---+---+---+
| A | B | D | G |
+---+   | E +---+
| H | C | F | I |
+---+---+---+---+

这是我的第一次尝试:

\begin{tabular}{||c|c|c|c||}\hline\hline
A & \multirow{2}{*}{B \\ C} & \multirow{2}{*}{D \\ E \\ F} & G \\ \cline{1-1}\cline{4-4}
H &   &    & I \\ \hline\hline
\end{tabular}

我得到的错误(在线multirow)是

! LaTeX Error: Something's wrong--perhaps a missing \item.

并且多行内的换行符(\\)将被忽略。

我也尝试放入tabularmultirow按照如何在表格单元格内添加强制换行符):

\begin{tabular}{||c|c|c|c||}\hline\hline
A & \multirow{2}{*}{\begin{tabular}{c} B \\ C \end{tabular}} &
  \multirow{2}{*}{\begin{tabular}{c} D \\ E \\ F \end{tabular}} & G 
   \\ \cline{1-1}\cline{4-4}
H &   &    & I \\ \hline\hline
\end{tabular}

并且没有错误,但F被放置以下最后两条水平线(即表格中的两行无法容纳第二个单元格中的三行multirow):

+---+---+---+---+
| A | B | D | G |
+---+   |   +---+
| H | C | E | I |
+---+---+---+---+
          F

第三次尝试是传递实际宽度cm而不是{*}multirow这在我的情况下是可行的(因为我将多行单元格分成的块具有相同的宽度),但第三行(F)仍然在表格下方 - 即,表格高度没有增加以容纳多行单元格。

所以,我的问题是:

  • 我怎样才能告诉多行在哪里换行?
  • 我如何tabular为多行单元格腾出空间?

答案1

hhline我提出了这个解决方案。为了更好地相交双线,我加载了和stackengine。多行单元格所需的间距可以通过cellspace包获得,该包定义了一个最小带有以字母 为前缀的限定符的列的单元格的垂直填充S

如果您确实需要换行符,则包中\multirow定义makecell了一个\multirowcell允许换行的命令:

\documentclass{article}
\usepackage{array}

\usepackage{multirow}
\usepackage{cellspace}
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
\usepackage{hhline}
\usepackage{stackengine}
\setstackEOL{\\}


\begin{document}

\begin{tabular}{||Sc|c|c|c||}
  \hhline{|t:====:t|}
  A &
  B & \multirow{2}{*} {\setstackgap{L}{2.05ex}\Centerstack{D\\E\\F}}
  & G \\ %
  \hhline{||-|~|~|-||}
  H & C & & I \\
  \hhline{|b:====:b|}
\end{tabular}

\end{document} 

在此处输入图片描述

相关内容