在 pgfplots 刻度标签中获取 sans 字体

在 pgfplots 刻度标签中获取 sans 字体

我使用 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}

在此处输入图片描述

相关内容