无衬线字体的条形图

无衬线字体的条形图

我想用无衬线字体(使用 LuaTeX)排版我的条形图。我尝试了很多在手册和互联网上找到的选项。它们都没有解决我的问题——使用与 CM 不同的字体;使用 CM 就可以了!

相同的 MWE 会根据引擎(PDFTeX 与 LuaTeX)在 PDF 中显示不同的结果。

MWE MinionPro、MyriadPro、pdflatex:

\documentclass{scrartcl}
\usepackage{%
  sansmath%
  ,MinionPro%
  ,MyriadPro%
} 
\usepackage{pgfplots}
\pgfplotsset{%
  /tikz/font=\sansmath\sffamily
}
\usepackage{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xbar,
  xlabel={a--d},
  symbolic y coords={a,b,c,d},
  ytick=data,
  nodes near coords, nodes near coords align={horizontal},
  ]
  \addplot coordinates {
    (45,a)
    (20,b)
    (1,c)
    (5,d)
    };
\end{axis}
\end{tikzpicture}
\end{document}

阴谋: 条形图、MinionPro、MyriadPro、pdflatex

MWE MinionPro,MyriadPro,lualatex

\documentclass{scrartcl}
\usepackage{%
  sansmath%
} 
\usepackage{fontspec}
\setmainfont[%
  BoldFont={MinionPro-Bold}%
  ,ItalicFont={MinionPro-It}%
  ,BoldItalicFont={MinionPro-BoldIt}%
  ,Numbers=OldStyle%
]{MinionPro-Regular}

\setsansfont[%
  Scale=MatchLowercase%
  ,BoldFont={MyriadPro-Bold}%
  ,ItalicFont={MyriadPro-It}%
  ,BoldItalicFont={MyriadPro-BoldIt}%
  ,Numbers=OldStyle%
]{MyriadPro-Regular}
\setmathsf{MyriadPro-Regular}
\usepackage{pgfplots}
\pgfplotsset{%
  /tikz/font=\sansmath\sffamily
}
\usepackage{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xbar,
  xlabel={a--d},
  symbolic y coords={a,b,c,d},
  ytick=data,
  nodes near coords, nodes near coords align={horizontal},
  ]
  \addplot coordinates {
    (45,a)
    (20,b)
    (1,c)
    (5,d)
    };
\end{axis}
\end{tikzpicture}
\end{document}

阴谋: 条形图、MinionPro、MyriadPro、lualatex

以下是我已经尝试过(并记下来)的一些 pgfplotsset 选项:

\pgfplotsset{%
%  ,tick label style = {font=\sansmath\sffamily}%
%  ,tick style = {font=\sansmath\sffamily}
%  ,every axis label = {font=\sansmath\sffamily}%
%  ,every axis/.style={font=\sansmath\sffamily}%
%  ,xticklabel={$\pgfmathprintnumber{\sansmath\tick}$}%
  ,/tikz/font=\sansmath\sffamily
%  ,legend style = {font=\sansmath\sffamily}%
%  ,label style = {font=\sansmath\sffamily}%
}

谨致问候 Christoph

答案1

你使用MinionProMyriadPro版本吗字体专家有了pdflatex这些包,您就不需要了sansmath,它已经包含在MdSymbol所需的内容中MyriadPro。以下设置适用于pdflatex

\documentclass{scrartcl}
\usepackage{MinionPro}
\usepackage[sansmath]{MyriadPro}
\usepackage{pgfplots}
\pgfplotsset{%
  /tikz/font=\mathversion{sans}\sffamily
}
\usepackage{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xbar,
  xlabel={a--d},
  symbolic y coords={a,b,c,d},
  ytick=data,
  nodes near coords, nodes near coords align={horizontal},
  ]
  \addplot coordinates {
    (45,a)
    (20,b)
    (1,c)
    (5,d)
    };
\end{axis}
\end{tikzpicture}
\end{document}

这产生了

无衬线图形

答案2

Herbert 解决了我的问题这里使用unicode-math包和\setmathfont。egreg 提供了另一种方法这里通过改变数字的数学代码。

相关内容