我正在尝试使用 创建一个表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
指令来替换整个文档中的数学字体。但我希望我是错的。
也许您应该搜索问题的答案“如何在数学模式下使用无衬线字体”——答案也适用于此处。