\sffamily 与 \pgfplotstable

\sffamily 与 \pgfplotstable

我正在尝试使用 创建一个表pgfplotstable。它工作得很好,只是问自己为什么\sffamily前面的\pgfplotstabletypeset不起作用。

答案1

中的数字pgfplotstable以数学模式排​​版。为了影响它们的输入方式,您需要加载一个更改数学字体的包或使用命令\mathversion。默认情况下,LaTeX 仅定义数学版本normal和。由于您只需要有限数量的符号来排版数字,因此您可以按如下方式bold设置数学版本:sans serif

示例输出

\documentclass{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.8}

\DeclareMathVersion{sansserif}
\SetSymbolFont{operators}{sansserif}{OT1}{cmss}{m}{n}

\pgfplotstableread{
level   dof error1
1   4   2.50000000e-01
2   16  6.25000000e-02
3   64  1.56250000e-02
4   256 3.90625000e-03
5   1024    9.76562500e-04
6   4096    2.44140625e-04
7   16384   6.10351562e-05
8   65536   1.52587891e-05
9   262144  3.81469727e-06
10  1048576 9.53674316e-07
}\mytable

\begin{document}

\begin{minipage}[t]{0.4\linewidth}
  \pgfplotstabletypeset{\mytable}

\end{minipage}
\qquad
\begin{minipage}[t]{0.4\linewidth}
  \sffamily \mathversion{sansserif} \pgfplotstabletypeset{\mytable}
\end{minipage}

\end{document}

\mathversion{sansserif}生效时,所有operator字体符号都设置为cmss,即现代计算机的无衬线版本。(如果使用拉丁现代字体,这将是一个明显的替代方案)。现在我们可以通过 为文本切换到无衬线字体,并通过 为数学lmss切换到无衬线字体。使用和切换回来。\sffamily\mathversion{sansserif}\normalfont\mathversion{normal}

答案2

pgfplotstable依赖 LaTeX 著名的数学模式来排版数字。而这又不适用于\sffamily

话虽如此,我总是对实际答案有点困惑,因为我从未真正了解过数学字体的细节。如果我没记错的话,必须添加一些特殊\usepackage指令来替换整个文档中的数学字体。但我希望我是错的。

也许您应该搜索问题的答案“如何在数学模式下使用无衬线字体”——答案也适用于此处。

相关内容