
我对 Latex 还不熟悉,表格制作上有些问题。我必须按照以下格式制作表格(例如,特定线条粗细、列标题下方有双线以及列之间有垂直线)。如何延长使用多列的标题中列之间的垂直线?
如果 booktabs 无法实现这一点,还有哪些软件包可以很好地处理多列和多行?
% \usepackage{amssymb}
% \usepackage{array}
% \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\def\toprule{\specialrule{1.5pt}{0pt}{0pt}}
\def\botrule{\toprule}
\def\headerrule{\hline\hline}
\def\midrule{\specialrule{0.5pt}{0pt}{0pt}}
\begin{table}
\centering
\caption{CAPTION.}
\begin{tabular}{C{2cm}|C{2cm}|C{2cm}|C{2cm}|C{2cm}|C{4cm}C{4cm}}
\toprule
Column A & \multicolumn{3}{c}{Column B} & Column C & Column D \\
\cline{2-4}
& B1 & B2 & B3 \\
\headerrule
blah & \checkmark & \checkmark & \checkmark & blah & blah \\
\midrule
blah & \checkmark & -- & \checkmark & blah & blah \\
\botrule
\end{tabular}
\end{table}
答案1
你没有提供一个可用的例子,但似乎你只是想要
& B1 & B2 & B3 & & \\
所以行不会短结束,并且会绘制垂直规则
答案2
为了好玩,但你可能会喜欢:-)
- 使用
tabularray
包,您可以定义表格序言中的线条粗细 - 您可以绝对定义列宽,或者更好地将其定义为
X
列宽之间的比例(如下面的 MWE 中所做的那样)。
\documentclass{article}
\usepackage{geometry}
\usepackage[skip=1ex,
font=sf, labelfont=bf,
singlelinecheck=false]{caption}
\usepackage{tabularray}
\usepackage{dingbat}
\newcommand\cm{\checkmark}
\begin{document}
\begin{table}[ht]
\centering
\sffamily
\caption{CAPTION.}
\begin{tblr}{hline{1,Z}=1pt,
hline{2,4-Z}=solid,
hline{3} = {1}{-}{},
hline{3} = {2}{-}{},
vline{2-Y} = solid,
colspec={ *{5}{X[c]} X[2,c] }
}
\SetCell[r=2]{h} Column A
& \SetCell[c=3]{c} Column B
& & & \SetCell[r=2]{h} Column C
& \SetCell[r=2]{h} Column D \\
& B1 & B2 & B3 & & \\
blah & \cm & \cm & \cm & blah & blah \\
blah & \cm & -- & \cm & blah & blah \\
\end{tblr}
\end{table}
\end{document}