如何按小数点对齐数字但仍保持单词居中?

如何按小数点对齐数字但仍保持单词居中?

这个问题的后续内容:如何将数字的小数点对齐?请解释一下代码的含义

我的桌子:

\begin{table}[!htb]
\centering
\caption{question}
\label{tab:q}
\begin{tabular}{lcccccl}
\hline
        & \multicolumn{6}{c}{\textbf{Pooled OLS}}  \\ 
\cline{2-7} 
     & (1)   &  & (2)     &         & (3)    & \multicolumn{1}{c}{}  \\
       & \multicolumn{6}{c}{\textbf{Outcome variable}}   \\ 
\hline
\textit{\textbf{Group 1}}      &                       &                          &                       &                          & \multicolumn{1}{l}{}  &                       \\
\textbf{Treatment}      & 0.0929                & \multicolumn{1}{l}{***}  & 0.0615                & \multicolumn{1}{l}{***}  & 0.0548                & **                    \\
\textbf{}                      & (0.0177)              &                          & (0.0173)              &                          & (0.0177)              &                       \\
\textbf{Base control}       & No                    &                          & Yes                   &                          & Yes                   &                       \\
\textbf{Additional controls}   & No                    & \multicolumn{1}{l}{}     & No                    & \multicolumn{1}{l}{}     & Yes                   &                       \\
\textbf{Observations}          & 4,537                  &                          & 4,537                  &                          & 4,493                  &                       \\ \hline
\textit{\textbf{Group 2}}      &                       &                          &                       &                          & \multicolumn{1}{l}{}  &                       \\
\textbf{Treatment}      & $-$0.0078               & \multicolumn{1}{l}{}     & $-$0.0323               & \multicolumn{1}{l}{***}  & $-$0.0354               & ***                   \\
\textbf{}                      & (0.0125)              &                          & (0.0123)              &                          & (0.01249)             &                       \\
\textbf{Base control}       & No                    &                          & Yes                   &                          & Yes                   &                       \\
\textbf{Additional controls}   & No                    & \multicolumn{1}{l}{}     & No                    & \multicolumn{1}{l}{}     & Yes                   &                       \\
\textbf{Observations}          & 5,401                  &                          & 5,401                  &                          & 5,383                  &                       \\ \hline
\multicolumn{7}{l}{\footnotesize Standard errors are in parentheses.}                                                                                                                                                                        
\end{tabular}
\end{table}

我想将数字与小数点对齐,但保持单词和整数居中。我昨天按照@Steven B. Segletes 的做法添加了

\usepackage{tabularx,stackengine,collcell,booktabs}
\let\endecm\relax
\newcolumntype{D}[1]{>{\collectcell\Decm l{#1}}r<%
  {..\endDecm\endcollectcell}}
\def\decm#1#2#3.#4.#5\endDecm{#3.%
  \stackengine{0pt}{#4}{\rule{#2\wd0}{0pt}}{O}{#1}{F}{F}{L}}
\newcommand\Decm[1]{\setbox0=\hbox{0}\decm#1}

并更改\begin{tabular}{lcccccl}\begin{tabular}{lD{5}cD{5}cD{5}l}

但是YesNo和观察数字并不居中。

答案1

D引用答案中的列的问题(如何将数字的小数点对齐?请解释一下代码的含义) 是指D假定列中的所有条目都是十进制数。

在这里,我修改了该答案,以便首先检查列中的单元格条目D是否包含小数点。如果包含,则按原样处理。如果不包含,则仅将单元格内容显示在宽度等于比指定小数位宽度大 2 位的框中,该框本身与列中的小数条目右对齐。

这种方法并非万能,因为“比指定的小数位宽度大 2 位”的选择有些武断,可能无法很好地呈现所有数据。尽管如此,它还是一种改进。

\documentclass{article}
\usepackage{tabularx,stackengine,collcell,booktabs}
\let\endecm\relax
\newcolumntype{D}[1]{>{\collectcell\Decm l{#1}}r<%
  {..\endDecm\endcollectcell}}
\def\decm#1#2#3.#4.#5\endDecm{\ifx\relax#4\relax
  \makebox[\numexpr2+#2\relax\wd0]{#3}\else
  #3.\stackengine{0pt}{#4}{\rule{#2\wd0}{0pt}}{O}{#1}{F}{F}{L}\fi}
\newcommand\Decm[1]{\setbox0=\hbox{0}\decm#1}
\begin{document}
\begin{tabular}{lD{5}cD{5}cD{6}l}\hline
        & \multicolumn{6}{c}{\textbf{Pooled OLS}}  \\ 
\cline{2-7} 
     & (1)   &  & (2)     &         & (3)    & \multicolumn{1}{c}{}  \\
       & \multicolumn{6}{c}{\textbf{Outcome variable}}   \\ 
\hline
\textit{\textbf{Group 1}}      &                       &                          &                       &                          & \multicolumn{1}{l}{}  &                       \\
\textbf{Treatment}      & 0.0929                & \multicolumn{1}{l}{***}  & 0.0615                & \multicolumn{1}{l}{***}  & 0.0548                & **                    \\
\textbf{}                      & (0.0177)              &                          & (0.0173)              &                          & (0.0177)              &                       \\
\textbf{Base control}       & No                    &                          & Yes                   &                          & Yes                   &                       \\
\textbf{Additional controls}   & No                    & \multicolumn{1}{l}{}     & No                    & \multicolumn{1}{l}{}     & Yes                   &                       \\
\textbf{Observations}          & 4,537                  &                          & 4,537                  &                          & 4,493                  &                       \\ \hline
\textit{\textbf{Group 2}}      &                       &                          &                       &                          & \multicolumn{1}{l}{}  &                       \\
\textbf{Treatment}      & $-$0.0078               & \multicolumn{1}{l}{}     & $-$0.0323               & \multicolumn{1}{l}{***}  & $-$0.0354               & ***                   \\
\textbf{}                      & (0.0125)              &                          & (0.0123)              &                          & (0.01249)             &                       \\
\textbf{Base control}       & No                    &                          & Yes                   &                          & Yes                   &                       \\
\textbf{Additional controls}   & No                    & \multicolumn{1}{l}{}     & No                    & \multicolumn{1}{l}{}     & Yes                   &                       \\
\textbf{Observations}          & 5,401                  &                          & 5,401                  &                          & 5,383                  &                       \\ \hline
\multicolumn{7}{l}{\footnotesize Standard errors are in parentheses.}                                                                                                                                                                        
\end{tabular}
\end{document}

在此处输入图片描述

相关内容