我有下表,其中的条目是数字或者一个破折号,后面可能跟着一个或多个星号:
\documentclass[notitlepage]{article}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}{lrrrrrr}
\toprule
& \multicolumn{2}{c}{(1)} & \multicolumn{2}{c}{(2)} & \multicolumn{1}{c}{(3)} & \multicolumn{1}{c}{(4)}\\
& Description & & Description & & Description & Description \\
\midrule
VarA & 1.123$^{**}$ & (1.123) & 9.765$^{***}$ & (-22.123) & -3.321 & -4.123 \\
VarB & -32.123$^{*}$ & (12.321) & 4.654 & (3.321) & 6.321 & 4.123 \\
VarC & & & --$^{**}$ & (12.898) & -- & -- \\
\end{tabular}
\end{table}
\end{document}
我想对齐条目,使所有数字都与点对齐。由于虚线后面没有任何点可以对齐,因此它们应该与列居中对齐。可以这样做吗?
答案1
使用改编版本这个答案您可以借助该siunitx
包实现以下对齐:
\documentclass[notitlepage]{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{
detect-all,
table-align-text-pre = false,
table-align-text-post = false,
input-signs = + -,
input-symbols = {*} {**} {***},
input-open-uncertainty = ,
input-close-uncertainty = ,
}
\begin{document}
\begin{table}
\centering
\begin{tabular}{l
S[table-format=-2.3,table-space-text-post = {$^{**}$}]
S[table-format=2.3,table-space-text-pre={*}, table-space-text-post={-*}]
S[table-format=-1.3,table-space-text-post = {$^{***}$}]
S[table-format=-2.3,,table-space-text-pre={*}, table-space-text-post={-*}]
S[table-format=-1.3]
S[table-format=-1.3]
}
\toprule
& \multicolumn{2}{c}{(1)} & \multicolumn{2}{c}{(2)} & \multicolumn{1}{c}{(3)} & \multicolumn{1}{c}{(4)}\\
& {Description} & & {Description} & & {Description} & {Description} \\
\midrule
VarA & 1.123$^{**}$ & (1.123) & 9.765$^{***}$ & (-22.123) & -3.321 & -4.123 \\
VarB & -32.123$^{*}$ & (12.321) & 4.654 & (3.321) & 6.321 & 4.123 \\
VarC & & & {--$^{**}$} & (12.898) & {--} & {--} \\
\end{tabular}
\end{table}
\end{document}
请注意,上面显示的表格比的文本宽度更宽article
。
关于要求的星号对齐方式:这里建议使用两列(一列用于数字右对齐,一列用于星号左对齐)和makecell
包(将--与数字中心对齐)。
\documentclass[notitlepage]{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{makecell}
\usepackage{siunitx}
\sisetup{
detect-all,
table-align-text-pre = false,
table-align-text-post = false,
input-signs = + -,
input-symbols = {*} {**} {***},
input-open-uncertainty = ,
input-close-uncertainty = ,
}
\begin{document}
\begin{table}
\centering
\begin{tabular}{l
S[table-format=-2.3,table-space-text-post = {$^{**}$}]
S[table-format=2.3,table-space-text-pre={*}, table-space-text-post={-*}]
S[table-format=-1.3,table-alignment=right]@{}
@{}l
S[table-format=-2.3,,table-space-text-pre={*}, table-space-text-post={-*}]
S[table-format=-1.3]
S[table-format=-1.3]
}
\toprule
& \multicolumn{2}{c}{(1)} & \multicolumn{3}{c}{(2)} & \multicolumn{1}{c}{(3)} & \multicolumn{1}{c}{(4)}\\
& {Description} & & \multicolumn{2}{c}{Description} & & {Description} & {Description} \\
\midrule
VarA & 1.123$^{**}$ & (1.123) & 9.765 & $^{***}$ & (-22.123) & -3.321 & -4.123 \\
VarB & -32.123$^{*}$ & (12.321) & 4.654 & & (3.321) & 6.321 & 4.123 \\
VarC & & & {\makecell[cc]{--}} & $^{**}$ & (12.898) & {--} & {--} \\
\end{tabular}
\end{table}
\end{document}