我使用 fontspec 包,目的是使 pgfplots 图表中的字体一致。有时,由于相应轴的大小,我会有刻度标签。更改“x 刻度标签样式”参数中的字体设置似乎无法提供所需的 sans 字体(参见 MWE 和相应的图)。
\documentclass{standalone}
\usepackage{fontspec}
\setsansfont{Tex Gyre Heros}
\usepackage{pgfplots}
\pgfplotsset{compat=newest,
xticklabel={$\mathsf{\pgfmathprintnumber{\tick}}$},
yticklabel={$\mathsf{\pgfmathprintnumber{\tick}}$},
label style={font={\sffamily}},
x tick scale label style={font={\sffamily}},
}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
xlabel={my x axis},
ylabel={my y axis}
]
\addplot [domain=1e-9:100e-9, samples=20, thick] {x^2};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
我当然不是 LaTeX 字体选择/管理方面的专家。但是,可以在 unicode-math 包文档(第 4.1 章)中找到,可以将定义的字形范围(在本例中为直立数字字形)委托给其他字体。如果选择了像 Fira Math 这样的主数学字体,则可以将直立字形委托给另一种字体(此处为 Tex Gyre Heros)。这会产生所需的结果。
\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{Tex Gyre Heros}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{unicode-math}
\setmathfont{Fira Math}
\setmathfont{Tex Gyre Heros}[range={up}]
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
xlabel={my x axis},
ylabel={my y axis}
]
\addplot [domain=1e-9:1e-7, samples=20, thick] {x^2};
\end{axis}
\end{tikzpicture}
\end{document}