我正在尝试使用 booktabs 在 LaTeX 中复制下表:
但是,我很难画出垂直线。以下是我目前所得到的:
\begin{tabularx}{\textwidth}{l | c c c c c c c c c c c c}
\toprule
& \ce{NH4^{+}} & \ce{Na+} & \ce{K+} & \ce{Mg^{2+}} & \ce{Zn^{2+}} & \ce{Cu^{2+}} & \ce{Fe^{2+}} & \ce{Fe^{3+}} & \ce{Ca^{2+}} & \ce{Ba^{2+}} & \ce{Pb^{2+}} & \ce{Ag^{+}} \\
\midrule
\ce{NO3^{-}} & L & L & L & L & L & L & L & L & L & L & L & L \\ \cmidrule(r){12-13}
\ce{Cl-} & L & L & L & L & L & L & L & L & L & L & T & T \\
\ce{Br-} & L & L & L & L & L & L & L & L & L & L & T & T \\
\ce{I-} & L & L & L & L & L & L & L & L & L & L & T & T \\
\bottomrule
\end{tabularx}
由此得出:
有一个用红色圆圈突出显示的小间隙,我不想出现这种情况。
我如何 a) 像在原始表格中那样制作垂直线以及 b) 防止由于“局部”水平线而导致的小间隙,最好使用booktabs
。
答案1
booktabs
不适用于垂直线。因此,我会将它们去掉,只\multicolumn
在需要分隔线的地方使用一些 s。这可能看起来像这样。
% arara: pdflatex
\documentclass{article}
\usepackage{booktabs}
\usepackage{mhchem}
\begin{document}
\begin{tabular}{l *{12}c}
\toprule
& \ce{NH4^{+}} & \ce{Na+} & \ce{K+} & \ce{Mg^{2+}} & \ce{Zn^{2+}} & \ce{Cu^{2+}} & \ce{Fe^{2+}} & \ce{Fe^{3+}} & \ce{Ca^{2+}} & \ce{Ba^{2+}} & \ce{Pb^{2+}} & \ce{Ag^{+}} \\
\midrule
\ce{NO3^{-}} & L & L & L & L & L & L & L & L & L & L & L & L \\ \cline{12-13}
\ce{Cl-} & L & L & L & L & L & L & L & L & L & L & \multicolumn{1}{|c}{T} & T \\
\ce{Br-} & L & L & L & L & L & L & L & L & L & L & \multicolumn{1}{|c}{T} & T \\
\ce{I-} & L & L & L & L & L & L & L & L & L & L & \multicolumn{1}{|c}{T} & T \\ \cline{10-11}
\ce{SO4^{2-}} & L & L & L & L & L & L & L & L & \multicolumn{1}{|c}{T} & T & T & T\\
\bottomrule
\end{tabular}
\end{document}
请注意,您必须减小尺寸,因为它大于文本宽度。您可以旋转它或使用您在此主页上找到的其他技巧。tabularx
不使用X
列时,使用是没有用的。正如您在 MWE 中看到的那样,行以 结尾\textwidth
,但表格内容不是。
答案2
正如其他答案所述,垂直规则根本不符合 的精神booktabs
。但是,如果您确实想使用垂直规则(与 的规则兼容booktabs
),则可以{NiceTabular}
使用nicematrix
。
此外,使用该环境可以轻松绘制分离规则。该环境{NiceTabular}
在单元格、行和列下创建 PGF/Tikz 节点,您可以使用这些节点在 中使用 Tikz 绘制您想要的任何规则\CodeAfter
。
\documentclass{article}
\usepackage{booktabs}
\usepackage{mhchem}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{NiceTabular}{l|*{12}c}
\toprule
& \ce{NH4^{+}} & \ce{Na+} & \ce{K+} & \ce{Mg^{2+}} & \ce{Zn^{2+}} & \ce{Cu^{2+}} & \ce{Fe^{2+}} & \ce{Fe^{3+}} & \ce{Ca^{2+}} & \ce{Ba^{2+}} & \ce{Pb^{2+}} & \ce{Ag^{+}} \\
\midrule
\ce{NO3^{-}} & L & L & L & L & L & L & L & L & L & L & L & L \\
\ce{Cl-} & L & L & L & L & L & L & L & L & L & L & T & T \\
\ce{Br-} & L & L & L & L & L & L & L & L & L & L & T & T \\
\ce{I-} & L & L & L & L & L & L & L & L & L & L & T & T \\
\ce{SO4^{2-}} & L & L & L & L & L & L & L & L & T & T & T & T\\
\bottomrule
\CodeAfter
\tikz \draw (3-|last) -| (6-|12) -| (last-|10) ;
\end{NiceTabular}
\end{document}
您需要多次编译(因为 PGF/Tikz 节点)。