如何正确对齐此表中的不确定性符号,并控制水平列对齐?

如何正确对齐此表中的不确定性符号,并控制水平列对齐?

我正在尝试使用以下代码创建一个具有不确定性的表:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{table}[!ht]
  \begin{center}
    \label{tab:table1}
    \begin{tabular}{l|r|r}
      \textbf{First Column Name} & \textbf{Second Column Name} & \textbf{Third Column Name} \\
                                 & Sub Name 2                  & Sub Name 3                 \\
      %
      \hline
      Row 1                   &   1.00\, $\pm$\, 0.02  &  -                       \\
      Row 2                   &   1.55\, $\pm$\, 0.05  &  50\%    \,$\pm$\, 5\%   \\
      \hspace{2mm}Sub Row 3   &   1.20\, $\pm$\, 0.15  &  -12.2\% \,$\pm$\; 1.2\% \\
      Row 4                   &   10.0\, $\pm$\, 1.1   &  -                       \\
      Row 5                   &   -                    &  -85\%   \,$\pm$\, 2\%   \\
      \hspace{2mm}Sub Row 6   &   2.6 \, $\pm$\, 0.9   &  -20.0\% \,$\pm$\, 0.1\% \\
    \end{tabular}
  \end{center}
  \caption{My caption text.}
\end{table}

\end{document}

生成以下表格:

在此处输入图片描述

我在格式方面遇到了几个问题:

  1. 如何控制列内数字的对齐?我希望 ± 符号在列内全部对齐。
  2. 有没有办法使列标题(“第二列名称”和“子名称 2”)居中,同时使该列中的数字保持右对齐?
  3. 我应该使用什么代码让“第二列名称”换行(但“子名称 2”仍保留在单独的行中)。目前,该列比需要的要宽得多。

我曾尝试过以下几个答案(例如这里) 推荐了这个siunitx包,但在每一列中,我并不总是在每一行中都有相同的小数位数,并且很难让它工作。这个包真的是最好的方法吗,或者可以对这个例子进行一些简单的调整以使其工作?谢谢。

答案1

借助该siunitx包,您可以根据小数点分隔符以及 对齐数字\pm。只要用一对 包围它们,列标题和其他文本就会自动相对于数字居中。{}对于列标题,我使用了包\thead中的命令makecell\thead您可以在其中手动添加换行符。

为了避免重复%,我将其放在相应的列标题内。

此外,我删除了该9pt选项,因为这不是该类的有效选项article。(可用选项为:10pt、11pt、12pt)。我还用命令替换了center环境\centering,因为前者添加了可能不需要的空白。最后,我更正了命令的位置\label

在此处输入图片描述

\documentclass{article} % 9pt is not a  valid class option of the article class
\usepackage{amsmath}

\usepackage{siunitx}
\sisetup{input-uncertainty-signs=\pm, 
         separate-uncertainty=true}
        
\usepackage{makecell}
\renewcommand{\theadfont}{\normalsize\bfseries}

\begin{document}

\begin{table}[!ht]
\centering % replaced the center environment with centering to avoid additional vertical white space
    \begin{tabular}{l|S[table-format=2.2(3)]|S[table-format=-2.2(4)]}
      \thead{First Column Name}  & {\thead{Second Column\\ Name}} & {\thead{Third Column Name}} \\
                                 & {Sub Name 2}                   & {Sub Name 3 in \%}                \\
      %
      \hline
      Row 1                   &   1.00 \pm  0.02  &  {-}           \\
      Row 2                   &   1.55 \pm  0.05  &  50    \pm 5   \\
      \hspace{2mm}Sub Row 3   &   1.20 \pm  0.15  &  -12.2 \pm 1.2 \\
      Row 4                   &   10.0 \pm  1.1   &  {-}           \\
      Row 5                   &   {-}             &  -85   \pm 2   \\
      \hspace{2mm}Sub Row 6   &   2.6  \pm  0.9   &  -20.0 \pm 0.1 \\
    \end{tabular}
  \caption{My caption text.}
      \label{tab:table1} % label must be placed after caption!
\end{table}

\end{document}

相关内容