列 (1) 和 (2) 中的“测试列”和“较宽列”/“较窄”之间有多余的空格。我尝试使用多行包使两行之间没有空格,并将文本对齐到底部。我无法让它工作...有什么想法吗?
\usepackage{booktabs}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D..{#1}}
\usepackage{multirow}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\begin{table}[h]
\centering\small
\caption{Test table}\label{table:test}
\begin{tabular}{l *{5}{d{2.4}}}
\toprule
& \mc{Test column} & \mc{Test column} & \multicolumn{3}{c}{XXXXXXX} \\
\cmidrule{4-6}
&\mc{wider column} & \mc{narrow} & \mc{AAAA} & \mc{AAAA} & \mc{AAAA} \\
& \mc{(1)} & \mc{(2)} & \mc{(3)} & \mc{(4)} & \mc{(5)} \\
\midrule
Treatment & -0.115^{***} & -0.333^{***} & -0.220^{***} & -0.573^{***} & -0.228^{**} \\
& (0.005) & (0.006) & (0.006) & (0.009) & (0.009) \\
\bottomrule
\end{tabular}
\end{table}
答案1
multirow
这是使用和的解决方案makecell
。可以使用第一个参数(行数)来微调文本的垂直位置:可以为其赋予一个分数值。
Aldo 我添加了caption
包以便上面的标题和表格之间有更合理的间距:
\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D..{#1}}
\usepackage{multirow, makecell, caption}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\newcommand\mr[2]{\multicolumn{1}{c}{\multirow{#1}{*}{\makecell{#2}}}}
\begin{document}
\begin{table}[h]
\centering\small
\caption{Test table}\label{table:test}
\begin{tabular}{l *{5}{d{2.4}}}
\toprule
& \mr{2.87}{Test column\\wider column} & \mr{2.87}{Test column\\narrow} & \multicolumn{3}{c}{XXXXXXX} \\
\cmidrule(lr){4-6}
& & & \mc{AAAA} & \mc{AAAA} & \mc{AAAA} \\
& \mc{(1)} & \mc{(2)} & \mc{(3)} & \mc{(4)} & \mc{(5)} \\
\midrule
Treatment & -0.115^{***} & -0.333^{***} & -0.220^{***} & -0.573^{***} & -0.228^{**} \\
& (0.005) & (0.006) & (0.006) & (0.009) & (0.009) \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
我刚刚想到了一个替代解决方案...我\cmidrule
用替换\cline
,XXXXX 和 AAAA 之间的间距就消失了,因此无需调整 (1) 和 (2) 的间距。只是另一种方法...
答案3
我的想法是粉碎这两行单元格:
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{caption}
\NewDocumentCommand{\tworowcell}{m}{%
\smash[b]{\begin{tabular}[t]{@{}c@{}}#1\end{tabular}}%
}
\NewDocumentCommand{\tn}{m}{\ensuremath{{}^{#1}}}
\begin{document}
\begin{table}[htp]
\centering
\caption{Test table}\label{table:test}
\sisetup{
table-format=-1.3,
table-space-text-post={\tn{***}},
input-symbols={()},
}
\addtolength{\tabcolsep}{-0.5pt}
\begin{tabular}{ @{} l *{5}{S} @{} }
\toprule
& \tworowcell{Test column \\ wider column}
& \tworowcell{Test column \\ narrow }
& \multicolumn{3}{c}{XXXXXXX} \\
\cmidrule(l){4-6}
& & & {AAAA} & {AAAA} & {AAAA} \\
& {(1)} & {(2)} & {(3)} & {(4)} & {(5)} \\
\midrule
Treatment & -0.115\tn{***} & -0.333\tn{***} & -0.220\tn{***} & -0.573\tn{***} & -0.228\tn{**} \\
& (0.005) & (0.006) & (0.006) & (0.009) & (0.009) \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
您也可以使用dcolumn
,但\tworowcell
应该将其封装在中\multicolumn{1}{c}
。