如何在 XeLaTeX 下的 Beamer(使用 EB Garamond)中设置数学中的内衬数字

如何在 XeLaTeX 下的 Beamer(使用 EB Garamond)中设置数学中的内衬数字

我正在使用 EB Garamond 与 XeLaTeX 和 Beamer,如下所示。(我实际上不确定这是否都是必要的 - 接受建议。):

\usepackage[T1]{fontenc}  % not sure why
\usepackage[urw-garamond]{mathdesign} % use URW Garamond rather than Computer Modern in math when EB Garamond is missing a character
\usepackage{fontspec,xltxtra,xunicode}
\defaultfontfeatures{Mapping=tex-text} % not sure why
\setromanfont[Mapping=tex-text]{EB Garamond}

(我之前使用字体册应用程序在 Mac 上将 EB Garamond 加载为系统字体。)

EB Garamond 默认使用旧式数字。我可以通过各种方式轻松将常规文本中的内联数字更改为内联数字,例如,通过在文档顶部插入以下内容:\addfontfeatures{Numbers=Lining}。但是,我尝试过的所有方法都对、等中的数学运算没有任何影响;$$旧式\[\]数字仍然存在。这是 Beamer 的问题——该问题不会发生在 article 类中。

如何在数学模式下切换到内联数字(不诉诸\mbox)?下面是一个完整的最小工作示例。

谢谢!

\documentclass[12pt]{beamer}

\usepackage[T1]{fontenc}
\usepackage[urw-garamond]{mathdesign}
\usepackage{fontspec,xltxtra,xunicode}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont[Mapping=tex-text]{EB Garamond}

\usefonttheme{serif}

\begin{document}
\begin{frame}
text (default, oldstyle): 1234567890\\
\addfontfeatures{Numbers=Lining}
text (lining): 1234567890\\
math (why is this oldstyle?): $1234567890$
\end{frame}

\end{document}

答案1

我找到了一个解决方案。它很简单,很明显,虽然它不是一个完整的解决方案,但对我来说已经足够好了。解决方案是从 移动Numbers=Lining\addfontfeaturesdefaultfontfeatures如下所示:

\defaultfontfeatures{Mapping=tex-text, Numbers=Lining}

通过将内衬数字设为默认值,它们会渗透到数学模式中。(我应该先尝试一下,但我没有完全理解我在序言中所说的内容——我只知道除了旧式/内衬问题外,它是有效的。)

这不是一个完整的解决方案,因为它会影响整个文档的数学模式。我仍然不知道如何在数学模式下在内联数字和旧式数字之间来回切换。在文档中添加额外的调用\addfontfeature不会\defaultfontfeature影响数学模式。但是,无论如何,到处使用内联数字是我想要的。

相关内容