siunitx,“mode=text”的功能改变了吗?

siunitx,“mode=text”的功能改变了吗?

升级我的 MikTeX 安装(几天前)将我的siunitx软件包更新到版本 v2.8(2020/02/20)。今天,我观察到@the egreg 的回答现在产生的结果与之前产生的结果不同。

以下 MWE

\documentclass[11pt]{standalone}
\usepackage{siunitx}
    \sisetup{detect-weight,
             table-format=2.2}
\usepackage{etoolbox}
\renewrobustcmd{\bfseries}{\fontseries{b}\selectfont}
\newcommand{\B}{\bfseries}    % <-- schortcut

\begin{document}
\begin{tabular}{ |S[mode=text] | S |} 
    12.34   &   12.34   \\
\B  12.34   &\B 12.34   \\
\end{tabular}
\end{document}

应该返回第一列和第二列中数字的不同对齐方式,但它们是相同的。在第一列中,粗体数字的数字宽度应该与其上方的罗马数字的宽度相同。第二列的情况也如下所示。

在此处输入图片描述

我是否遗漏了什么?

答案1

在新版 latex 中,\bfseries 的处理方式已经发生改变。如果你想要切换到 b 而不是 bx,你可以这样做:

\documentclass[11pt]{standalone}
\usepackage{siunitx}
    \sisetup{detect-weight,
             table-format=2.2}
\usepackage{etoolbox}

\DeclareFontSeriesDefault[rm]{bf}{b}
\newcommand\B{\bfseries}

\begin{document}
abc \textbf{ab}
\begin{tabular}{ |S[mode=text] | S |}
    12.34   &   12.34   \\
\B  12.34   &\B 12.34   \\
\end{tabular}
\end{document}

在此处输入图片描述

请注意,这也会影响表格外的粗体字体。如果不希望出现这种情况,则应将开关集成到 \B 命令中,这样该命令就应该变得健壮

相关内容