如何在 LaTeX 中使用多行?

如何在 LaTeX 中使用多行?

我如何编码一个看起来像这样的表格?我不是最擅长 LaTeX 的人,似乎无法理解\multirow。在发布之前,我查看了其他示例,但它们使用了它\multicolumn,这让我更加困惑。

桌子

\begin{center}
\begin{tabular}{ |c|c|c|c|c|} 
 \hline
 TextA & TextB & TextC & TextD & TextE\\
 \hline
 A & TextF & TextG & TextH & TextI\\
 B & TextJ & TextK & TextL & TextM\\
 C & \multirow{2}*{TextF} & TextG & TextH & TextI\\
 \cline{3-3}
 & TextJ & TextK \\
\hline
\end{tabular}
\end{center}

我正在尝试类似的事情。当我尝试在多行内进行多行时,我开始遇到问题?我不确定这里的过程。我希望将 TextG 拆分成 2 个,将 TextH 和 TextI 拆分成 3 个单元格,但不确定如何进行。那么 TextJ 和 TextK 会是拆分的 TextG 单元格的内容吗?

答案1

在此处输入图片描述

我扩展了您的表格代码(并且对其进行了更正),使该表格模仿您所展示的问题表格。注意:multirow放置单元格的行中的单元格必须显示但应该为空(请参阅下面的 mwe):

母语:

\documentclass{article}
\usepackage{multirow}

\begin{document}
\begin{center}
\renewcommand\arraystretch{1.3}
\begin{tabular}{|c|c|c|c|c|}
 \hline
 Text A     & Text B    & Text C    & Text D    & Text E    \\
 \hline
 A          & Text F    & Text G    & Text H    & Text I    \\
 \hline
 B          & Text J    & Text K    & Text L    & Text M    \\
 \hline
 \multirow{3}*{Text N}
            & \multirow{3}*{Text O}
                        & Text P    & Text Q    & Text R    \\
 \cline{3-5}
            &           & \multirow{2}*{Text S}
                                    & Text T    & Text U    \\
 \cline{4-5}
            &           &           & Text V    & Text Z    \\
\hline
\end{tabular}
    \end{center}
\end{document}

答案2

您可以使用 来制作这样的{NiceTabular}表格nicematrix

在 中{NiceTabular},您可以使用命令 水平和垂直合并单元格\Block。对于行,您可以指定逻辑行数(而不是像 那样的物理行数\multicolumn)。

使用键hvlines,绘制所有规则,但块(由 构造\Block)除外。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\begin{center}
\renewcommand\arraystretch{1.3}
\begin{NiceTabular}{ccccc}[hvlines]
 Text A     & Text B    & Text C    & Text D    & Text E    \\
 A          & Text F    & Text G    & Text H    & Text I    \\
 B          & Text J    & Text K    & Text L    & Text M    \\
 \Block{3-1}{Text N}
            & \Block{3-1}{Text O}
                        & Text P    & Text Q    & Text R    \\
            &           & \Block{2-1}{Text S}
                                    & Text T    & Text U    \\
            &           &           & Text V    & Text Z    \\
\end{NiceTabular}
\end{center}
\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

答案3

只需快速评论一下,您应该始终在多行中提供中央括号。即,从上面的例子来看:

\multirow{3}*{Text N}

实际上应该是:

\multirow{3}{*}{Text N}

这是因为缺少{*}括号会破坏latexdiff,例如:latexdiff 因对 \multirow 的更改而产生无效输出

相关内容