如何绘制一条仅跨越部分表格单元格的水平线?

如何绘制一条仅跨越部分表格单元格的水平线?

在表格中,如何绘制一条仅穿过部分单元格的水平线?我的意思是绘制像此表格区域Foo中的线:Bar

+----+-----+
|Foo |1 |2 |
|    |1 |2 |
|    +--+--+
|    |1 |2 |
|    |1 |2 |
+----+-----+
|Bar |1 |2 |
|    |1 |2 |
|    +--+--+
|    |1 |2 |
|    |1 |2 |
+----+--+--+

答案1

除了像 xport_is_sleeping 建议的那样使用嵌套表格之外,您还可以使用\cline{2-3}绘制从第 2 列开始到第 3 列结束的部分线条,并使\multirow单词FooBar线条居中(如果您愿意的话):

替代文本

\documentclass{article}
\usepackage{array,multirow}
\begin{document}
\begin{tabular}{|c|cc|}\hline
\multirow{4}{*}{Foo} & 1 & 2 \\
    & 1 & 2 \\\cline{2-3}
    & 1 & 2 \\
    & 1 & 2 \\\hline
\multirow{4}{*}{Bar} & 1 & 2 \\
    & 1 & 2 \\\cline{2-3}
    & 1 & 2 \\
    & 1 & 2 \\\hline
\end{tabular}
\end{document}

制作表格时,您还应始终使用大批该包提供了各种附加功能和改进(最显著的是垂直和水平线的连接)。

答案2

这是一个使用的解决方案booktabs并摆脱垂直规则的解决方案,在我看来,这会带来更漂亮的结果。看看booktabs文档,它为基本的表格设计提供了一些见解。

的好处booktabs是:表格间距更好,并且\toprule\midrule\bottomrule\midrule其他两个更窄,看起来很漂亮。

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{table}\centering
\begin{tabular}{lll}
\toprule
Foo & 1 & 2 \\
    & 1 & 2 \\\cmidrule{2-3}% That's the rule you're looking for.
    & 1 & 2 \\
    & 1 & 2 \\
\midrule
Bar & 1 & 2 \\
    & 1 & 2 \\\cmidrule{2-3}% This too. The numbers designate the columns covered.
    & 1 & 2 \\
    & 1 & 2 \\
\bottomrule
\end{tabular}
\caption{1 and 2 in relation to Foo and Bar.}
\end{table}

\end{document}

输出

答案3

嵌套表可以完美地解决这个问题。

替代文本


\documentclass{article}
\begin{document}
\begin{tabular}{|c|@{}c@{}|}\hline
Foo
&
\begin{tabular}{cc}
1 & 2 \\
1 & 2 \\\hline
1 & 2 \\
1 & 2 \\
\end{tabular}
\tabularnewline\hline
Bar
&
\begin{tabular}{cc}
1 & 2 \\
1 & 2 \\\hline
1 & 2 \\
1 & 2 \\
\end{tabular}
\tabularnewline\hline
\end{tabular}

\end{document}

答案4

{NiceTabular}您可以使用轻松地制作表格nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{|c|cc|}
\Hline
\Block{4-1}{Foo} & 1 & 2 \\
    & 1 & 2 \\
\Hline
    & 1 & 2 \\
    & 1 & 2 \\
\Hline
\Block{4-1}{Bar} & 1 & 2 \\
    & 1 & 2 \\
\Hline
    & 1 & 2 \\
    & 1 & 2 \\
\Hline
\end{NiceTabular}

\end{document}

上述代码的输出

相关内容