\bfseries 和表格对齐

\bfseries 和表格对齐

我正在尝试突出显示两个大表中的一些小数点对齐的条目,这两个表排列在两列中。我正在使用 来\bfseries执行此操作,但不幸的是,这似乎影响了对齐。我已阅读文档并\bfseries通过在前面添加 来增强功能\robustify,但结果仍然有些不对齐。这是一个包含表格一小部分的示例:

\documentclass{article}

\usepackage{comment}

\usepackage[left=1.5cm, right=1.5cm]{geometry}
\usepackage{subcaption}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{ragged2e}
\usepackage{etoolbox,siunitx}

\begin{document}

\begin{table}
  \begin{subtable}[b]{0.47\textwidth}
  \resizebox{1\textwidth}{!}
  {%
    \large
    \robustify\bfseries
    \sisetup{detect-weight=true,detect-inline-weight=math}
    \begin{tabular}{S[table-format=1.2(2)]S[table-format=1.2(2)]S[table-format=2.2(2)]S[table-format=2.2(2)]}
    \toprule
        1.68(2) & 2.66(16) & 8.39(12) & 13.11(25)\\
        0.95(1) & 1.38(4)  & 4.64(18) &  9.76(32)\\
        0.80(1) & 1.18(5) & 7.52(31) & 12.64(24)\\
        0.95(1) & 1.32(3) & 3.13(15) & \bfseries 8.68(29)\\
        0.21(0) & 0.30(1) & 5.59(63) & 12.07(23)\\
        0.36(0) & 0.50(1) & \bfseries 1.26(16) &  9.42(57)\\
        0.15(0) &  0.22 (1) & 3.49(98) & 12.19(34)\\
      \cmidrule(l{\dimexpr 0.5em}r{\dimexpr 0.5em}){1-4}
        0.83(1) & 1.22(5) & \bfseries 5.08(26) & \bfseries 10.95(32)\\
    \bottomrule
    \end{tabular}
  }
  \end{subtable}
  \hspace{0.05\textwidth}
  \begin{subtable}[b]{0.47\textwidth}
  \resizebox{1\textwidth}{!}
  {%
    \large
    \robustify\bfseries
    \sisetup{detect-weight=true,detect-inline-weight=math}
    \begin{tabular}{S[table-format=1.2(2)]S[table-format=1.2(2)]S[table-format=2.2(2)]S[table-format=2.2(2)]}
    \toprule
        \bfseries 1.68(2) & \bfseries 2.66(1) & 8.39(12) & 13.11(25)\\
        0.95(1) & 1.38(4)  & 4.64(18) &  9.76(32)\\
        0.80(1) & 1.18(5) & 7.52(31) & 12.64(24)\\
        0.95(1) & 1.32(3) & 3.13(15) & 8.68(29)\\
        0.21(0) & 0.30(1) & 5.59(63) & 12.07(23)\\
        0.36(0) & 0.50(1) & 1.26(16) &  9.42(57)\\
        0.15(0) &  0.22 (1) & 3.49(98) & 12.19(34)\\
      \cmidrule(l{\dimexpr 0.5em}r{\dimexpr 0.5em}){1-4}
        0.83(1) & 1.22(5) & \bfseries 5.08(26) & \bfseries 10.95(32)\\
      \bottomrule
    \end{tabular}
  }
  \end{subtable}
\end{table}


\end{document}

这是我得到的结果,小数点没有对齐。有什么办法可以解决这个问题吗?我使用的是通过 Ubuntu 包管理器安装的 TexLive 2012。

答案1

您可以使用非扩展粗体,但还必须覆盖单元格的设置。

该命令\boldentry将单元格的数字规范和要排版的数字作为参数。

\documentclass{article}

\usepackage{siunitx,booktabs}

\newcommand{\boldentry}[2]{%
  \multicolumn{1}{S[table-format=#1,
                    mode=text,
                    text-rm=\fontseries{b}\selectfont
                   ]}{#2}}

\begin{document}

\sisetup{detect-weight=true,detect-inline-weight=math}
\begin{tabular}{
  S[table-format=1.2(2)]
  S[table-format=1.2(2)]
  S[table-format=1.2(2)]
  S[table-format=2.2(2)]
}
\toprule
1.68(2) & 2.66(16) & 8.39(12) & 13.11(25)\\
0.95(1) & 1.38(4)  & 4.64(18) &  9.76(32)\\
0.80(1) & 1.18(5) & 7.52(31) & 12.64(24)\\
0.95(1) & 1.32(3) & 3.13(15) & \boldentry{2.2(2)}{8.68(29)}\\
0.21(0) & 0.30(1) & 5.59(63) & 12.07(23)\\
0.36(0) & 0.50(1) & \boldentry{1.2(2)}{1.26(16)} &  9.42(57)\\
0.15(0) &  0.22 (1) & 3.49(98) & 12.19(34)\\
\cmidrule(l{\dimexpr 0.5em}r{\dimexpr 0.5em}){1-4}
0.83(1) & 1.22(5) & \boldentry{1.2(2)}{5.08(26)} & \boldentry{2.2(2)}{10.95(32)}\\
\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

相关内容