我想将表格中的十进制值与粗体打印的值对齐。仅凭这一点,这没有问题。我们可以使用siunitx
包并\robustify\bfseries
按照描述执行操作,例如siunitx:粗体单个数字单元格。
但是,我希望将粗体值的小数点保留为正常粗细。这样整体上会给人更美观的印象。到目前为止,我使用了一种粗略的解决方法(r@{.}l
),其中整数和小数部分是它们自己的列。
是否有可能通过其他包达到我想要的格式siunitx
,还是我必须继续使用我粗略的解决方法?
答案1
软件包siunitx
提供了可用于设置非粗体小数分隔符的选项output-decimal-marker
。示例基于这个答案约瑟夫·赖特引用的问题。
\documentclass{standalone}
\usepackage{etoolbox,siunitx}
\newrobustcmd*{\bftabnum}{%
\bfseries
\sisetup{output-decimal-marker={\textmd{.}}}%
}
\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 & \bftabnum 11.1\\
\bftabnum 2.1 & 1.94 \\
\end{tabular}
\end{document}
答案2
告诉siunitx
你小数点必须用普通字体。上面是链接消息中的例子,下面我添加了句号用普通字体的设置。
\documentclass[varwidth]{standalone}
\usepackage{etoolbox,siunitx,booktabs}
\robustify\bfseries
\begin{document}
\sisetup{
detect-weight=true,
detect-inline-weight=math,
}
\begin{tabular}{S[table-format=1.2]S[table-format=2.2]}
\toprule
{A} & {B} \\
\midrule
1.01 & \bfseries 11.1\\
\bfseries 2.1 & 1.94 \\
\bottomrule
\end{tabular}
\sisetup{
detect-weight=true,
detect-inline-weight=math,
output-decimal-marker=\textnormal{.},
}
\begin{tabular}{S[table-format=1.2]S[table-format=2.2]}
\toprule
{A} & {B} \\
\midrule
1.01 & \bfseries 11.1\\
\bfseries 2.1 & 1.94 \\
\bottomrule
\end{tabular}
\end{document}