pgfplots 将数据标签的字体更改为无衬线/MyriadPro

pgfplots 将数据标签的字体更改为无衬线/MyriadPro

我正在使用 pgfplots 制作条形图,我想将“数据标签”的字体更改为无衬线字体(最好是 Myriad Pro),但我没有成功。我正在编译XeLaTeX

我尝试mathastext按照这里的建议使用该包(pgfplots - 如何获取无衬线字体的 y 轴),但我的数据标签显示为衬线。

这是一个最小工作示例: 关于如何将数据标签更改为无衬线字体,您有什么想法吗? 谢谢你!!

\documentclass{article}
\usepackage{fontspec}
\usepackage{pgfplots}
\defaultfontfeatures{Ligatures=TeX}
\setromanfont{Myriad Pro}
\setsansfont{Myriad Pro}
\renewcommand\familydefault{\sfdefault}
\usepackage{mathastext}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
symbolic y coords={
    {Disability},
    {Death},
    {Congenital Anomaly}
}, % name of categorical data
ytick=data,
]
\addplot[
xbar, 
fill={black},  
nodes near coords, % adds data labels on each bar
nodes near coords align={horizontal}, % aligns data labels on each bar
nodes near coords style={font=\large}
] coordinates {
    (10,{Congenital Anomaly})
    (1199,{Death})
    (285,{Disability})
};
\end{axis}
\end{tikzpicture}

\end{document}

输出如下: 衬线数据标签

答案1

您不需要额外的软件包。数字仍为衬线的原因是它们是在数学模式下排版的,即每个数字$...$周围都有衬线,因为这通常是您想要的,而 pgfplots 正在尝试帮助您。但是,您可以通过使用数字打印来关闭此行为,assume math mode这样它就假定它已经在数学模式中并按原样打印数字。示例没有任何字体(请注意,我没有重新定义任何宏,您也不应该这样做)

\documentclass[]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\sffamily

\begin{tikzpicture}
\begin{axis}[
symbolic y coords={
    {Disability},
    {Death},
    {Congenital Anomaly}
}, % name of categorical data
ytick=data,
tick label style={/pgf/number format/assume math mode}
]
\addplot[
xbar, 
fill={black},  
nodes near coords, % adds data labels on each bar
nodes near coords align={horizontal}, % aligns data labels on each bar
nodes near coords style={font=\large,/pgf/number format/assume math mode}
] coordinates {
    (10,{Congenital Anomaly})
    (1199,{Death})
    (285,{Disability})
};
\end{axis}
\end{tikzpicture}
\end{document}

同样也适用于勾选标签,但这只是一个小小的补充

在此处输入图片描述

相关内容