siunitx 表格中,pm 周围缺少空格

siunitx 表格中,pm 周围缺少空格

该示例显示了该问题:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{siunitx}
\usepackage{booktabs,tabularx,multirow}
\sisetup{
    range-phrase = --,
    separate-uncertainty = true,
    retain-zero-uncertainty = true
}
\begin{document}
\num{439 \pm 1} and \num{1.23+-0.02}

\begin{table}[htbp]
\caption{Table}
\begin{tabular}{
S
S}
\toprule
439 \pm 4 & 0.53 \pm 0.04  \\
\bottomrule
\end{tabular}
\label{tab}
\end{table}
\end{document}

在此处输入图片描述

如何使列实现相同的形式S以便周围也\num留出良好的空间?\pmtabular

答案1

这是表格代码的一个疏忽,它必须将数字拆分开才能排版。这里,没有小数标记/部分,周围的间距\pm是错误的,因为它最终排版时前面没有任何空格。目前,修复方法是

\ExplSyntaxOn
\cs_gset:Npn \__siunitx_table_print_marker_aux:w
  #1 \q_nil #2 \q_nil #3 \q_nil #4 \q_nil #5
     \q_nil #6 \q_nil #7 \q_nil #8 \q_stop
  {
    \bool_lazy_and:nnTF
      { \tl_if_blank_p:n {#1#2} }
      { ! \tl_if_blank_p:n {#3} }
      { { } }
      { \exp_not:n {#1#2} }
    \exp_not:n {#3#4#5#6}
    \tl_if_blank:nT {#1#2#3#4#5#6} { { } }
    \exp_not:n {#7#8}
  }
\ExplSyntaxOff

我将在一两天内将一些东西送到 CTAN。

相关内容