![Tabularx:用点对齐表格条目](https://linux22.com/image/424227/Tabularx%EF%BC%9A%E7%94%A8%E7%82%B9%E5%AF%B9%E9%BD%90%E8%A1%A8%E6%A0%BC%E6%9D%A1%E7%9B%AE.png)
我有一张表的以下 MWE:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx, multirow, booktabs}
\usepackage{amsmath}
\begin{document}
\begin{table}[t]
\begin{tabularx}{\linewidth}{l@{\extracolsep{\fill}}*1c@{}*1c@{}*1c@{}*1c@{}*1c@{}*1c@{}*1c@{}*1c@{}}
\toprule
&\multicolumn{2}{c}{col1} &\multicolumn{2}{c}{col2} &\multicolumn{2}{c}{col3} &\multicolumn{2}{c}{col4}\\
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-7} \cmidrule{8-9}
&$a$ &$b$ &$a$ &$b$ &$a$ &$b$ &$a$ &$b$ \\\midrule \\ [-2ex]
title& & & & & & & &\\
type
&$\underset{(9.21)}{0.26^{*}}$
&$\underset{(8.45)}{2.34^{**}}$
&$\underset{(-9.43)}{-1.75}$
&$\underset{(-2.67)}{-2.43^{**}}$
&$\underset{(-2.13)}{-3.17}$
&$\underset{(-4.26)}{-6.58}^{***}$
&$\underset{(0.38)}{0.14}$
&$\underset{(4.12)}{5.32}$\\
\end{tabularx}
\end{table}
\end{document}
这样就生成了所需的表格,其中每个条目包含两个值:一个在上方,一个在下方(括号内)。但是,问题是这两个值没有对齐,如下图蓝色圆圈所示。
理想情况下,我希望用点 (.) 对齐它们,这可能吗?也许可以使用一些快速而简单的技巧,hphantom
例如?
答案1
与问题无关,但您使用的是tabular*
语法tabularx
,无论如何,最好tabular*
在这里使用它。在这里,我使用一个小的辅助宏来拆分每个数字.
并分别设置两半。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,booktabs}
\def\zz#1#2{\zzz#1\relax#2\relax}
\def\zzz#1.#2\relax#3.#4\relax{%
$\underset{\mathstrut\hfill(#1}{\mathstrut\hfill#3}%
\underset{\mathstrut.#2)\hfill}{\mathstrut.#4\hfill}$}
\begin{document}
\begin{table}[t]
\begin{tabular*}{\linewidth}{@{}l@{\extracolsep{\fill}}*{8}{c@{}}}
\toprule
&\multicolumn{2}{c}{col1} &\multicolumn{2}{c}{col2} &\multicolumn{2}{c}{col3} &\multicolumn{2}{c}{col4}\\
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-7} \cmidrule{8-9}
&$a$ &$b$ &$a$ &$b$ &$a$ &$b$ &$a$ &$b$ \\\midrule \\ [-2ex]
title& & & & & & & &\\
type
&\zz{9.21}{0.26^{*}}
&\zz{8.45}{2.34^{**}}
&\zz{-9.43}{-1.75}
&\zz{-2.67}{-2.43^{**}}
&\zz{-2.13}{-3.17}
&\zz{-4.26}{-6.58^{***}}
&\zz{0.38}{0.14}
&\zz{4.12}{5.32}\\
\end{tabular*}
\end{table}
\end{document}
答案2
我想不出一个令人信服的理由来将括号内的数字排版得比其他数字小 30%。
我也会使用tabular*
而不是tabularx
环境。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{booktabs, siunitx}
\newcommand\mcc[1]{\multicolumn{2}{c}{#1}} % handy shortcut macro
\begin{document}
\begin{table}
\sisetup{input-symbols= (), table-space-text-post = {$^{**}$} }
\setlength\tabcolsep{0pt}
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}} l *{8}{S[table-format=-1.2]}}
\toprule
& \mcc{col1} & \mcc{col2} & \mcc{col3} & \mcc{col4}\\
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-7} \cmidrule{8-9}
& {a} & {b} & {a} & {b} & {a} & {b} & {a} & {b} \\
\midrule
\multicolumn{9}{l}{A medium-length subtitle}\\
\addlinespace
Type & 0.26$^{*}$ & 2.34$^{**}$ & -1.75 & -2.43$^{**}$ & -3.17 & -6.58$^{***}$ & 0.14 & 5.32 \\
& (9.21) & (8.45) & (9.43) & (2.67) & (2.13) & (4.26) & (0.38) & (4.12) \\
\bottomrule
\addlinespace
\multicolumn{9}{l}{\footnotesize Absolute values of $t$-statistics shown in parentheses.}
\end{tabular*}
\end{table}
\end{document}