当我将 tabularx 更改为非十进制时,会发生对齐问题

当我将 tabularx 更改为非十进制时,会发生对齐问题

我有以下代码,当我有小数时它会对齐,但当我输入 0 时它却无法对齐。

代码如下

\documentclass{article}   
\usepackage{tabularx}
    \usepackage{booktabs}
    \usepackage{multirow}
    \usepackage{ragged2e}
    \newcolumntype{L}{ >{\RaggedRight}X }
    \usepackage{siunitx}
    \usepackage{makecell}
    \renewcommand\theadfont{\normalfont\bfseries}
    \setlength\parindent{0pt}
    \newcolumntype{Y}{ >{\Centering}X}
    \usepackage[justification=centering]{caption}
    \setlength\parindent{0pt}
    \newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
    \newcolumntype{C}{>{\Centering\arraybackslash}X}
    \renewcommand\theadfont{\normalfont\bfseries}
    \newcommand\mc[1]{\multicolumn{2}{c}{#1}}
    \setlength\parindent{0pt}
    \usepackage[round,sort,comma]{natbib}
    \usepackage{indentfirst}
    \noindent 
    \newcolumntype{Y}{ >{\Centering}X} 
    \begin{tabularx}{\textwidth}{@{} lYY S[table-format=1.4] @{}}  

    \toprule 

    \thead[lc]{Category }& \thead{Passive Total Return} & {\thead{Value Weighted\\ Return Index}} & {\thead{Equal Weighted\\ Return Index}} \\

    \midrule  

    Momentum & 0 & 0 & 0 \\ \addlinespace

    Size & 0 & 0.72 & 0.72 \\ \addlinespace  

    Value & 0 & 0.37 & 1.00 \\ \addlinespace  

    \bottomrule  

    \end{tabularx}
    \enddocument

这看起来像下面这样,完美对齐。在此处输入图片描述

但是,在更改为个位数后,我的代码仅对齐零,而第二行则不同,我觉得这很奇怪。它看起来如下:在此处输入图片描述

有人可以提供一些建议吗?

谢谢

答案1

第四列有小数对齐,但两个表中第三列的对齐效果很差,0 未居中,而是位于该列数字条目的“单位列”中。使用小数对齐列指定两列会更加一致S

请注意,如果小数对齐列中有一个整数(例如示例中的 0),它将与其他行中小数点左侧的“单位”对齐,而不是居中。

答案2

像这样?

在此处输入图片描述

在 MWE 中,以下是 David Carlisle 的评论和回答。附加值与主题无关:

  • 只需定义一次新命令即可
  • 对于具有数字的列的相等宽度,使用技巧:列标题\multicolumn与修改后的X列类型一起使用

完整的 MWE 是:

\documentclass{article}
\usepackage{booktabs,makecell,tabularx}% for tables
\usepackage{ragged2e}
    \renewcommand\theadfont{\normalfont\bfseries}
    \newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
    \newcolumntype{C}{>{\Centering\arraybackslash}X}
    \newcommand\mcxh[1]{\multicolumn{1}{C}{\thead{#1}}}
\usepackage{siunitx}

     \setlength\parindent{0pt}

\begin{document}
    \begin{tabularx}{\textwidth}{l *{3}{S[table-format=1.2]}}
    \toprule
\thead[l]{Category}
            &   \mcxh{Passive\\ Total Return} 
                &   \mcxh{Value Weighted\\ Return Index}  
                        &   \mcxh{Equal Weighted\\ Return Index}    \\
    \midrule
Momentum    & 0 & 0     & 0     \\ 
Size        & 0 & 0.72  & 0.72  \\ 
Value       & 0 & 0.37  & 1.00  \\ 
    \bottomrule
    \end{tabularx}
\end{document}

相关内容