我正在努力在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}
注意需要设置检测到的字体外部第一个单元格,因为表格单元格会形成组。