我正在寻找排版下表的方法booktabs
:
我不知道如何让步骤突出显示图像中单元之间的差异。使用\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
我没有使用的规则,而是使用普通的\cline
s 来表示分隔线的水平部分。对于垂直部分,我使用了 命令,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}