siunitx:粗体单个数字单元格

siunitx:粗体单个数字单元格

我正在努力在siunitx表格中的单个数字单元格加粗。(关于使所有的列粗体可用这里

我想定义一个简单的宏,可以将其设置为一行中的最大值以使其变为粗体。

快速的 MWE:

\documentclass{standalone}
\usepackage{siunitx}
\usepackage{times}

\newcommand{\maxf}[1]{\ensuremath{\mathbf{#1}}}

\begin{document}


\begin{tabular}{S[table-format=1.2]S[table-format=2.2]}
\sisetup{detect-weight=true,detect-inline-weight=math}
{A} & {B} \\
1.01 & \maxf{11.1}\\
\maxf{2.1} & 1.94 \\
\end{tabular} 

\end{document}

(我使用它times是因为我的文档中的数学字体(CM)和文本字体(Times)略有不同...这只是为了强调需要在数学模式下格式化数字。)

据我了解,下面这行应该使siunitx数学字体中的 listen 变为粗体。

\sisetup{detect-weight=true,detect-inline-weight=math}

但后来我得到了以下信息:

粗体未对齐

... 两列的小数都没有对齐。

如果我尝试:

\newcommand{\maxf}[1]{\ensuremath{\boldmath #1}}

...和boldmath用于第 18 页siunitx文档(以前从未见过此命令),数字不会显示为粗体。


  • 如何定义一个宏(\maxf)以使数学模式下的单个数字单元格变粗并保持小数对齐siunitx
  • 如果这不可能或不方便,有哪些突出显示选项可用?例如,我注意到使用下划线\newcommand{\maxf}[1]{\ensuremath{\underline{#1}}会破坏小数对齐。

编辑,使用下面约瑟夫的代码,我得到以下内容(无粗体):

在此处输入图片描述

编辑3这是因为我使用的是旧版本siunitx(v 2.3)。后来我升级到了版本 2.5,并且可以使用。


编辑2我通过为最大结果的单元格添加阴影来解决我原来的突出显示需求。

\documentclass{standalone}
\usepackage{siunitx}
\usepackage{times}
\usepackage[table]{xcolor}

\newcommand{\maxf}[1]{{\cellcolor[gray]{0.8}} #1}

\begin{document}


\begin{tabular}{S[table-format=1.2]S[table-format=2.2]}
\sisetup{detect-weight=true,detect-inline-weight=math}
{A} & {B} \\
1.01 & \maxf{11.1}\\
\maxf{2.1} & 1.94 \\
\end{tabular} 

\end{document}

在此处输入图片描述

答案1

推荐的方法是使用\bfseries

\documentclass{standalone}
\usepackage{siunitx}
\begin{document}

\sisetup{detect-weight=true,detect-inline-weight=math}
\begin{tabular}{S[table-format=1.2]S[table-format=2.2]}
{A} & {B} \\
1.01 & \bfseries 11.1\\
\bfseries 2.1 & 1.94 \\
\end{tabular} 

\end{document}

注意需要设置检测到的字体外部第一个单元格,因为表格单元格会形成组。

相关内容