我希望在使用 pgfplotstable 显示的表格中将某些数字加粗。手动的和这个答案
建议使用
every row 2 column 1/.style={ %Row number just for example
postproc cell content/.style={
@cell content/.add={$\bf}{$}
}
},
但是,当我这样做时,数字会变得不对齐,因为加粗的数字太宽了。
在阅读了一些有关排版的知识后,我得出结论,我想要的是使用带有表格图形的字体来显示数字,并使用双面功能使粗体具有相同的宽度。
我在看这是针对普通表格的答案,它显示了我想要的内容。但是当我尝试时:
every row 4 column 1/.style={ %Row number just for example
postproc cell content/.style={
@cell content/.add={\fontseries{b}\selectfont}{}
}
},
没有任何变化。它甚至没有将其变为粗体。
最小可验证示例:
\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstabletypeset[
precision=5, fixed zerofill=true,
every row 2 column 1/.style={
postproc cell content/.append style={
@cell content/.add={$\bf}{$}
}
}
]{
a b
5 1.23
6 1.6311
7 4.231
9 2.10144
}
\end{document}
答案1
您遇到的问题以及该\fontseries
命令对您不起作用的原因在于 pgfplotstables 格式化了所有数字数学模式-- 就像它们位于$
符号之间一样。
\fontseries
不会影响数学模式中使用的字体。您可以改为更改数学模式中使用的字体(针对该单元格)。它基于回答有关制作 pgfplotstables 用途的类似问题\sffamily
可以声明普通字体的版本,该版本为粗体 ( b
),而非粗体扩展 ( bx
)
使用
\DeclareMathVersion{tabularbold}
\SetSymbolFont{operators}{tabularbold}{OT1}{cmr}{b}{n}
在序言中。
然后,您可以使用以下方式切换到其中的一个部分\mathversion{tabularbold}
,例如
every row 2 column 1/.style={
postproc cell content/.append style={
@cell content/.add={\mathversion{tabularbold}}{}
}
}
完整示例:
\documentclass{article}
\usepackage{pgfplotstable}
\DeclareMathVersion{tabularbold}
\SetSymbolFont{operators}{tabularbold}{OT1}{cmr}{b}{n}
\begin{document}
\pgfplotstabletypeset[
precision=5, fixed zerofill=true,
every row 2 column 1/.style={
postproc cell content/.append style={
@cell content/.add={\mathversion{tabularbold}}{}
}
}
]{
a b
5 1.23
6 1.6311
7 4.231
9 2.10144
}
\end{document}