我正在使用 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}
同样也适用于勾选标签,但这只是一个小小的补充