第二种方法

第二种方法

首先我要道歉,如果我花足够的时间玩游戏和阅读手册siunitx,我可能能够解决这个问题。但大约一个小时后我还是没有找到答案。

我有一个表格环境和一个 S 列。我希望此列中的所有数字都被 () 包围并以斜体显示(尽管 () 本身不会以斜体显示)。我希望在 的对齐功能siunitx仍在运行的情况下实现这一点。

我尝试过bracket-numbers=true结合[...,open-bracket=(, close-bracket=),...]siunitx 包选项中的定义来使用该选项。即使对于独立数字,\num[bracket-numbers=true]{12345}这似乎也没有提供括号。

对于斜体部分,我可以将我的数字放在列中的 \textit{1.2345} 中,这样可以工作,但在我看来缺乏优雅,例如,它不保持指定的对齐方式,只是将其视为文本。

有谁有解决方案吗?非常感谢

答案1

第二种方法

这种方法避免滥用数字的性质!

\documentclass{article}
\usepackage{siunitx}
\DeclareRobustCommand\tnote[1]{\textsuperscript{\emph{#1}}}
\begin{document}
\begin{tabular}{
  S[math-rm=\mathit]
  S[math-rm=\mathit,table-format=1.3,table-align-text-post = false,
    input-open-uncertainty=,input-close-uncertainty=]
  }
1&(1.23)\tnote{a}\\
2&(2.012)\tnote{b}
\end{tabular}
\end{document}

第一种方法

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{
  S[math-rm=\mathit]
  S[math-rm=\mathit,table-format=2.3,input-symbols=()]
  }
1&(1.23)\\
2&(2.012)
\end{tabular}
\end{document}

这是对 egreg 解决方案的轻微改进。我目前想不出自动包含括号的方法。

(该bracket-numbers选项涉及输出可能产生歧义的情况,因此使用括号来保持其在数学上正确。)

答案2

尝试这个:

\begin{tabular}{S[math-rm=\mathit]
  >{{(}}S[math-rm=\mathit,
          table-format=1.3]<{{)}}}
1&1.232\\
2&2.012
\end{tabular}

相关内容