我尝试在 pgf 图中的所有可能位置使用相同的字体。在论坛上花了很多时间并尝试了各种书面解决方案后,我还是没有找到答案。
非常感谢您的帮助。
问候,Th。
\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont{Arial}
\usepackage{etoolbox}
% change fonts to sans serif then `tikzpicture' environment is started
\BeforeBeginEnvironment{tikzpicture}{
\begingroup
\changeFonts
}
% end scope (for font change)
\AfterEndEnvironment{tikzpicture}{
\endgroup
}
\usepackage{sansmath}
% create a command to switch fonts in `tikzpicture' environments to a
% sans serif font
\newcommand*\changeFonts{
\sffamily\sansmath
}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
10 <> $\mathsf 10$!
\begin{figure}[htbp]
\centering
\begin{tikzpicture}
\begin{axis}[xlabel={Abscissa, $x_\mathsf{10}$}, ylabel={Ordinate, $y$}]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\caption{A figure with a \texttt{pgfplots} axis.}
\end{figure}
\end{document}
答案1
您可以使用以下方法将所有刻度标签字体更改为无衬线字体:
\pgfplotsset{my style/.append style={xticklabel={$\mathsf{\pgfmathprintnumber{\tick}}$},
yticklabel={$\mathsf{\pgfmathprintnumber{\tick}}$} } }
然后添加my style
到轴选项:
begin{axis}[my style, xlabel={Abscissa, $x_\mathsf{10}$}, ylabel={Ordinate, $y$}]