sansmathfonts 使用 XeLaTeX 编译时使常规文本变为衬线

sansmathfonts 使用 XeLaTeX 编译时使常规文本变为衬线

我有以下文件:

\documentclass{beamer}
\usepackage{sansmathfonts}

\begin{document}
    \begin{frame}{}
        Test $ a\sigma $
    \end{frame}
\end{document}

如果我使用 PDFLaTeX 编译它,我会得到预期的结果:

在此处输入图片描述

但是,使用 XeLaTeX 我得到了以下奇怪的结果:

在此处输入图片描述

如果我删除该行,\usepackage{sansmathfonts}我会得到您所期望的结果,无论是使用 PDFLaTeX 还是 XeLaTeX:

在此处输入图片描述

(请注意“衬线”σ)。

我尝试过明确指定beamer使用 sans 字体,但没有任何改变。此外,如果我使用article并设置,问题仍然存在\renewcommand{\familydefault}{\sfdefault},因此我认为这与 无关beamer

答案1

诸如此类的软件包sansmathfonts通常没有考虑到 XeLaTeX 的字体加载机制。虽然它可能通常可以正常工作,但正如您所发现的那样,一些意外问题是可以预料到的。

在这种情况下,使用 XeLaTeX 中字体的常规方法通常效果更好,即使用加载系统安装的字体fontspec

具体来说,对于数学,有mathspec一个在其上运行的包fontspec,可以详细指定数学字体。

当然,您需要找到一种具有所有必需字体形状的字体,即拉丁字体、希腊字体、斜体字体、无衬线字体。

以 Liberation Sans 为字体的示例:

\documentclass{beamer}
\usepackage{mathspec}
\setmainfont{Liberation Sans}
\setmathfont(Digits,Latin,Greek){Liberation Sans}

\begin{document}
    \begin{frame}{Test of Liberation Sans}
        Test $ a\int_\infty \sqrt{\sigma\alpha\beta\pi} $
    \end{frame}
\end{document}

在此处输入图片描述

相关内容