我正在使用classicthesis
LyX 中的包来排版我的论文。我有一个用 制作的图表pgfplots
。它使用与文本其他地方相同的数学字体,这与我的其他图表(从 Matlab 导入)不一致,其中 Arial 用于刻度和轴标签。所以我的问题是,我如何更改图表中使用的文本的字体系列pgfplots
(即标题字体不应更改)?最小的 TeX 代码将是:
\documentclass[12pt,a4paper]{report}
\usepackage[latin1]{inputenc}
\usepackage[sc,osf]{mathpazo}
\usepackage[euler-digits]{eulervm}
\usepackage{pgfplots}
\pgfplotsset{compat=1.3}
\begin{document}
\begin{figure}
\centering
\pgfplotsset{every axis/.append style={
thick,
tick style={semithick}}}
\begin{tikzpicture}
\begin{axis}[
height=8cm,
width=15cm,
xlabel = {$x$},
ylabel = {$\phi(x)$},
domain = 0:1,
xtick={0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0},
ytick={0.0,0.1,0.2,0.3,0.4,0.5},
grid=major,
no markers,
cycle list name=linestyles
]
\addplot {0.5-abs(x-0.5)};
\end{axis}
\end{tikzpicture}
\caption{Solution of Eikonal equation on a 1D domain $\Omega=[0;1]$}
\end{figure}
\end{document}
因此,我希望所有刻度数字和x
标签\phi(x)
都采用 Arial 格式,而底部标题保留为 Palatino 格式。
答案1
仅使用\pgfplotsset
和\sffamily
可能对您来说不够,因为您的数字和标签处于数学模式。可以使用包来实现sansmath
,例如
\usepackage{helvet}
\usepackage[eulergreek]{sansmath}
\pgfplotsset{
tick label style = {font=\sansmath\sffamily},
every axis label = {font=\sansmath\sffamily},
legend style = {font=\sansmath\sffamily},
label style = {font=\sansmath\sffamily}
}
不过,如果您使用 ,您可能仍需要处理希腊字母eulervm
。没有该包,\sansmath
效果很好。或者,省略标签的无衬线样式,并在这个特定位置手动执行,例如
xlabel = {$\mathsf{x}$},
ylabel = {$\phi\mathsf{(x)}$},
总之,我用你的代码得到了所有无衬线字体的标签,而标题仍然保留了衬线字体:
答案2
这更像是一个扩展的评论而不是答案,但我认为它可能对其他人有用。
遵循手册第 75 页pgfplots
(修订版 1.17(2020/02/29))
\pgfplotsset{
xticklabel={$\mathsf{\pgfmathprintnumber{\tick}}$},
yticklabel={$\mathsf{\pgfmathprintnumber{\tick}}$},
}