我在用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}