单个单元格加粗,带 dcolumn

单个单元格加粗,带 dcolumn

我在用dcolumn表格,我想用粗体打印单个单元格。我知道有人提出过类似的问题这里, 和这里,并在文档(第 4 页)。

然而,所提出的解决方案似乎不起作用,至少在下面的最小示例中是这样的:

\documentclass[aps,prb,reprint]{revtex4-2}
\usepackage{amsmath,amssymb,times,dcolumn}

\newcolumntype{b}{D{.}{.}{3}}
\newcolumntype{a}{D{.}{.}{6}}

% Bold version
\newcolumntype{B}{>{\boldmath\DC@{.}{.}{3}}c<{\DC@end}}
\newcolumntype{A}{>{\boldmath\DC@{.}{.}{6}}c<{\DC@end}}

\begin{document}
\begin{table}
\begin{tabular}{ab}
  1.134(2) & 1.3(1) \\
  \multicolumn{1}{A}{1.134(2)} & 1.3(1)
\end{tabular}
\end{table}
\end{document}

使用以下方式编译

pdflatex test.tex

给出

! Undefined control sequence.
\@preamble ...hskip 1sp\d@llarbegin \boldmath \DC 
                                                  @{.}{.}{6}\array@row@rst \...
l.15   \multicolumn{1}{A}{1.134(2)}
                                    & 1.3(1)

答案1

如果您使用和@之间的命令正确地隔离代码,则不会出现任何错误,但最终结果似乎并不像您所期望的那样。\makeatletter\makeatother

\documentclass[aps,prb,reprint]{revtex4-2}
\usepackage{amsmath,amssymb,times,dcolumn}

\newcolumntype{b}{D{.}{.}{3}}
\newcolumntype{a}{D{.}{.}{6}}

% Bold version
\makeatletter
\newcolumntype{B}{>{\boldmath\DC@{.}{.}{3}}c<{\DC@end}}
\newcolumntype{A}{>{\boldmath\DC@{.}{.}{6}}c<{\DC@end}}
\makeatother

\begin{document}
\begin{table}
\begin{tabular}{ab}
  1.134(2) & 1.3(1) \\
  \multicolumn{1}{A}{1.134(2)} & 1.3(1)
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

造成这种情况的主要原因是times,它已经过时了超过四分之一世纪。使用 没有什么更好的办法mathptmx,它没有定义粗体数学字体。

使用 NewTX 后结果略好一些。

\documentclass[aps,prb,reprint]{revtex4-2}
\usepackage{newtxtext,newtxmath}
\usepackage{amsmath,dcolumn}

\newcolumntype{b}{D{.}{.}{3}}
\newcolumntype{a}{D{.}{.}{6}}

% Bold version
\makeatletter
\newcolumntype{B}{>{\boldmath\DC@{.}{.}{3}}c<{\DC@end}}
\newcolumntype{A}{>{\boldmath\DC@{.}{.}{6}}c<{\DC@end}}
\makeatother

\begin{document}
\begin{table}
\begin{tabular}{ab}
  1.134(2) & 1.3(1) \\
  \multicolumn{1}{A}{1.134(2)} & 1.3(1)
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

您可以使用 获得相同的结果siunitx,它提供了更多功能。

\documentclass[aps,prb,reprint]{revtex4-2}
\usepackage{newtxtext,newtxmath}
\usepackage{amsmath,siunitx}

\begin{document}

\begin{table}

\begin{tabular}{S[table-format=1.3(1),detect-weight] S[table-format=1.1(1)]}
  1.134(2) & 1.3(1) \\
  \bfseries 1.134(2) & 1.3(1)
\end{tabular}

\end{table}

\end{document}

相关内容