书本标签中的阶梯表

书本标签中的阶梯表

我正在寻找排版下表的方法booktabs

HGCS 阶梯表

我不知道如何让步骤突出显示图像中单元之间的差异。使用\cmidrule会生成水平规则,但在规则之间会留下相当多的空间。如果我添加\belowrulesep=0pt \aboverulesep=0pt,顶部、中间和底部规则周围的空间就会变得混乱。如何在 周围获得紧密的间距\cmidrule,而不是其他地方?

此外,我发现关于使用垂直规则的唯一答案booktabs是“不要使用垂直规则”,这在一般情况下是正确的。不过,我认为在这个特定情况下垂直规则是合理的。那么我如何获得这些有限的垂直规则呢?

这是我迄今为止尝试过的:

\documentclass[a4paper,12pt]{article}
\usepackage{booktabs}
\title{HGCS table}
\begin{document}
% \belowrulesep=0pt
% \aboverulesep=0pt
\begin{tabular}{lllllll}
\toprule
   & ich & machen & dorf & das & apfel & pfund \\
\midrule
1  & ik & maken & dorp & dat & appel & pund \\\cmidrule{2-2}
2  & ich & maken & dorp & dat & appel & pund \\\cmidrule{3-3}
3  & ich & machen & dorp & dat & appel & pund \\\cmidrule{4-4}
4  & ich & machen & dorf & dat & appel & pund \\\cmidrule{5-5}
5  & ich & machen & dorf & das & appel & pund \\\cmidrule{6-6}
6  & ich & machen & dorf & das & apfel & pund \\\cmidrule{7-7}
7  & ich & machen & dorf & das & apfel & pfund \\
\bottomrule
\end{tabular}%
\end{document}

答案1

这似乎接近您想要实现的设计:

\documentclass[a4paper,12pt]{article}
\usepackage{booktabs}
\usepackage{array}
\title{HGCS table}
\begin{document}

\setlength\extrarowheight{2pt}
\begin{tabular}{lllllll}
\toprule
Dialects & \multicolumn{6}{c}{Lexical Items}\\\cmidrule{2-7}
   & ich & machen & dorf & das & apfel & pfund \\
\midrule
Low German\\
1  & ik & maken & dorp & dat & appel & pund \\\cline{2-2}
2  & ich & \multicolumn{1}{|l}{maken} & dorp & dat & appel & pund \\\cline{3-3}
3  & ich & machen & \multicolumn{1}{|l}{dorp} & dat & appel & pund \\\cline{4-4}
Middle German & & & & \multicolumn{1}{|l}{}\\
4  & ich & machen & dorf & \multicolumn{1}{|l}{dat} & appel & pund \\\cline{5-5}
5  & ich & machen & dorf & das & \multicolumn{1}{|l}{appel} & pund \\\cline{6-6}
6  & ich & machen & dorf & das & apfel & \multicolumn{1}{|l}{pund} \\\cline{7-7}
High German \\
7  & ich & machen & dorf & das & apfel & pfund \\
\bottomrule
\end{tabular}%
\end{document}

在此处输入图片描述

booktabs我没有使用的规则,而是使用普通的\clines 来表示分隔线的水平部分。对于垂直部分,我使用了 命令,multicolumn以便|在相应单元格的定义中添加 。为了增加表格行之间的垂直距离,我添加了\setlength\extrarowheight{2pt}

答案2

您可以使用 来实现这{NiceTabular}一点nicematrix

此环境类似于经典环境{tabular}(的array),但还在数组的行、列和单元格下构建 PGF/Tikz 节点。在中\CodeAfter,可以使用这些节点绘制您想要的任何规则。

\documentclass[a4paper,12pt]{article}
\usepackage{booktabs}
\usepackage{nicematrix,tikz}
\title{HGCS table}
\begin{document}
\begin{NiceTabular}{lllllll}
\toprule
Dialects & \Block{1-*}{Lexical items} \\
\cmidrule{2-7}
   & ich & machen & dorf & das & apfel & pfund \\
\midrule
Low German \\
1.  & ik  & maken & dorp & dat & appel & pund \\
2.  & ich & maken & dorp & dat & appel & pund \\
3.  & ich & machen & dorp & dat & appel & pund \\
Middle German \\
4.  & ich & machen & dorf & dat & appel & pund \\
5.  & ich & machen & dorf & das & appel & pund \\
6.  & ich & machen & dorf & das & apfel & pund \\
High German \\
7.  & ich & machen & dorf & das & apfel & pfund \\
\bottomrule
\CodeAfter
 \tikz \draw (5-|2) -| (6-|3) -| (7-|4) -| (9-|5) -| (10-|6) 
                    -| (11-|7) -- (11-|last) ;
\end{NiceTabular}
\end{document}

上述代码的输出

相关内容