dcolumn 和对齐字符串值

dcolumn 和对齐字符串值

我对 Latex 表和 dcolumn 包有疑问,希望您能帮助我解决此问题。我正在使用 dcolumn 包从小数点开始对齐回归结果。一切看起来都很好,但我还有一行包含字符串值(是、否等)。对于这些字符串,我使用 \multicolumn 命令将它们与列的其余部分居中对齐,但正如您在最小代码及其输出中所见,代码将它们与数字对齐,包括重要性星号,这就是字符串值被推得太靠右的原因。我该如何修改此代码,以便仍然使用相同的数值格式,但“是”、“否”值仅与数字居中对齐,不包括重要性星号?感谢您的帮助!

这是最小代码:

\documentclass[11pt]{article}

\usepackage{amssymb,amsmath,color,booktabs,dcolumn,caption}
\usepackage[left=1in, right=1in, top=1in, bottom=1in]{geometry}


\newcolumntype{d}[1]{D{.}{.}{#1}}
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}


\begin{document}

\begin{table}[h]\centering\small

\caption{Falsification Tests: Non-Fed-Regulated Firms}

\begin{tabular*}{\textwidth}{@{\hskip\tabcolsep\extracolsep\fill}l*{6}{d{2.6}}}
    \toprule
                    &\multicolumn{1}{c}{(1)}         &\multicolumn{1}{c}{(2)}         &\multicolumn{1}{c}{(3)}         &\multicolumn{1}{c}{(4)}         &\multicolumn{1}{c}{(5)}         &\multicolumn{1}{c}{(6)}         \\
\midrule
Post $\times$ Small Non-Fin.&      -0.026         &      -0.042         &      -0.046         &       0.066         &       0.050         &       0.041         \\
                    &      (0.051)         &      (0.055)         &      (0.047)         &      (0.082)         &      (0.083)         &      (0.071)         \\ \addlinespace

log Assets          &                     &      -0.185\sym{***}&      -0.197\sym{***}&                     &      -0.288\sym{***}&      -0.304\sym{***}\\
                    &                     &      (0.059)         &      (0.041)         &                     &      (0.083)         &      (0.084)         \\

Other Controls      &   \multicolumn{1}{c}{{No}}         &\multicolumn{1}{c}{No}         &\multicolumn{1}{c}{Yes}         &\multicolumn{1}{c}{No}         &\multicolumn{1}{c}{No}         &\multicolumn{1}{c}{Yes}         \\

    \bottomrule
    \end{tabular*}

\end{table}

\end{document}

输出结果如下:

最小表

答案1

我可以用S定义的列类型和相关参数来获得你想要的东西siunitx,它有更多的微调可能性。一种简化方法是,S只需将列中的非数字内容括在一对括号中即可将其居中。我还简化了你的 定义\sym和序言的某些部分,并用 tabularx代替tabular*

\documentclass[11pt]{article}

\usepackage{amssymb, mathtools, xcolor, booktabs, dcolumn, caption, siunitx, tabularx}
\usepackage[margin=1in, showframe]{geometry}

\newcolumntype{d}[1]{D{.}{.}{#1}}
\def\sym#1{\ensuremath{^{\mathrlap{#1}}}}

\begin{document}

\begin{table}[h]\centering\small
\sisetup{table-format = -1.3, table-number-alignment = center, table-space-text-pre = (, table-align-text-pre = false, table-space-text-post = {***}}
\setlength{\tabcolsep}{5pt}
    \begin{tabularx}{\textwidth}{X*{6}{S}}
    \toprule
                        & {(1)} & {(2)} & {(3)} & {(4)} & {(5)} & {(6)} \\
    \midrule
    Post $\times$ Small Non-Fin.& -0.026 & -0.042 & -0.046 & 0.066 & 0.050 & 0.041 \\
                        &{(}0.051{)} & {(}0.055{)} & {(}0.047{) }& {(}0.082{)} & {(}0.083{)} & {(}0.071{)} \\ \addlinespace

    log Assets & & -0.185\sym{***}& -0.197\sym{***}& & -0.288\sym{***}& -0.304\sym{***}\\
                        & & {(}0.059{)} & {(}0.041{)} & &{(}0.083{)} & {(}0.084{)} \\
    Other Controls & {No} & {No} & {Yes} & {No} & {No} & {Yes} \\
    \bottomrule
    \end{tabularx}
\end{table}

\end{document} 

在此处输入图片描述

答案2

这个结果是否接近您所期望的结果?

在此处输入图片描述

编辑: 我做了以下改变:

  • 增加整数位数,以补偿重要性星号的宽度
  • 更正\tabcolsep表格主体现在适合表格宽度,这也使得能够将表格字体设置为正常大小
  • 考虑米科在下面评论并定义新命令\mc{...}以缩短写作时间\multicolumn{1}{c}{...}

\documentclass[11pt]{article}
\usepackage{amssymb,amsmath,color,booktabs,dcolumn,caption}
\usepackage[left=1in, right=1in, top=1in, bottom=1in]{geometry}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}% <---
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}

\begin{document}
    \begin{table}[h]
%\small
\setlength\tabcolsep{0pt}% <---
\caption{Falsification Tests: Non-Fed-Regulated Firms}
\label{tab:falsification-test}
\begin{tabular*}{\textwidth}{@{\hskip4pt\extracolsep\fill}l*{6}{d{4.6}}@{\hskip4pt}}% <---
    \toprule
    & \mc{(1)}  & \mc{(2)}  & \mc{(3)}  &  \mc{(4)} &  \mc{(5)} &  \mc{(6)} \\
\midrule
Post $\times$ Small Non-Fin.
    & -0.026    & -0.042    & -0.046    &  0.066    &  0.050    &  0.041    \\
    & (0.051)   & (0.055)   & (0.047)   & (0.082)   & (0.083)   & (0.071)   \\ 
    \addlinespace
log Assets          
    &   & -0.185\sym{***}   & -0.197\sym{***}   &   &  -0.288\sym{***}  & -0.304\sym{***} \\
    &   & (0.059)           & (0.041)   &           & (0.083)   & (0.084)   \\
Other Controls      
    & \mc{{No}} & \mc{No}   & \mc{Yes}  & \mc{No}   & \mc{No}   & \mc{Yes}  \\
    \bottomrule
\end{tabular*}
    \end{table}
\end{document}

相关内容