siunitx:单元格内的文字句点

siunitx:单元格内的文字句点

今天开始用siunitx练习,有点好玩,但也遇到了一些麻烦。

我有一张统计表,我想在某些单元格中显示文字句点,这意味着没有获得任何估计值。我还有些单元格中的数字可能被括在括号中,还有一些单元格中带有星号。我已经解决了这些问题,因此下面的 mre 不会强调它们。

不允许单元格本身带有“.” 。我从 siunitx 收到“无效值”错误。

一种解决方法是将句点包装在多列中,这样就不会出现错误。但输出也不太正确

\documentclass[11pt,letterpaper,english]{extarticle}
\usepackage{lmodern}
\renewcommand{\sfdefault}{lmss}
\renewcommand{\ttdefault}{lmtt}

\usepackage{siunitx}
\sisetup{
    input-symbols = ()*,
    group-minimum-digits = 9
}

\begin{document}
\begin{tabular}{
  l
  S[table-format=1.3, table-align-text-post=false]
  S[table-format=1.3, table-align-text-post=false]
}
\hline
hello &1.333 &33.222\tabularnewline
goodbye &44.1 & \multicolumn{1}{c}{.} \tabularnewline
\hline
\end{tabular}

\end{document}

但是,正如您所预料的,时间段并不一致。

siunitx 单元格中有句点

我没有充分的理由要求它们对齐,但如果我能做到的话会很有趣:)

答案1

您可以使用\phantom

顺便说一句,您声明了,table-format=1.3但是您的数字有 2 个整数位置,我在中进行了更正table-format=2.3,否则您会收到Overfull hbox警告。

\documentclass[11pt,letterpaper,english]{extarticle}
\usepackage{lmodern}
\renewcommand{\sfdefault}{lmss}
\renewcommand{\ttdefault}{lmtt}

\usepackage{siunitx}
\sisetup{
    input-symbols = ()*,
    group-minimum-digits = 9
}

\begin{document}
\begin{tabular}{
  l
  S[table-format=2.3, table-align-text-post=false]
  S[table-format=2.3, table-align-text-post=false]
}
\hline
hello &1.333 &33.222\tabularnewline
goodbye &44.1 & \multicolumn{1}{l}{\phantom{00}.} \tabularnewline
\hline
\end{tabular}
\end{document}

在此处输入图片描述

答案2

类似于车牌回答:

\documentclass[11pt,letterpaper,english]{extarticle}
\usepackage{lmodern}
\renewcommand{\sfdefault}{lmss}
\renewcommand{\ttdefault}{lmtt}

\usepackage{siunitx}
\sisetup{
    input-symbols = ()*,
    group-minimum-digits = 9
}

\begin{document}

\begin{tabular}{
  l
  S[table-format=2.3, table-align-text-post=false]
  S[table-format=2.3, table-align-text-post=false]
}
\hline
hello   &    1.333  &    33.222             \tabularnewline
goodbye &   44.1    &    {.\hphantom{2}}    \tabularnewline
\hline
\end{tabular}

\end{document}

在此处输入图片描述

相关内容