fontspec 和 beamer 之间的交互有问题?

fontspec 和 beamer 之间的交互有问题?

fontspec 将字体信息传递给 beamer 的方式似乎存在一些问题。以下示例在 XeLaTeX 中编译并显示正确

% !Mode:: "TeX:UTF-8"
\documentclass{article}
\usepackage{unicode-math}
\usepackage{polyglossia}
\setmainfont{XITS}
\setdefaultlanguage{russian}
\begin{document}

This is a test.

Это тест
\end{document}

但是,如果我将文档类替换为

 \documentclass{beamer}

我得到了错误

! polyglossia 软件包错误:当前罗马字体不包含西里尔文!请使用 \newfontfamily 定义 \cyrillicfont。

请参阅 polyglossia 包文档以获取解释。输入 H 可立即获得帮助。...

l.3 \select@language {俄语}

我使用 MiKTeX 2.9 编译,并附带所有当前更新。
如有任何建议,我们将不胜感激

答案1

beamer默认使用sffamily,因此您需要定义\cyryllicfontsf使用\newfontfamily

\documentclass{beamer}
\usepackage{unicode-math}
\usepackage{polyglossia}
\setmainfont{STIX}
\newfontfamily{\cyrillicfontsf}{XITS}

\setdefaultlanguage{russian}
\begin{document}

This is a test.

Это тест
\end{document}

(我已经安装了实际的 STIX 字体,所以我还没有用 XITS 测试过,但它应该可以正常工作。)

如果您想使用无衬线字体,那么 Herbert 的解决方案是正确的。我假设您想让默认的 Beamer 字体使用 XITS。

答案2

还定义无衬线字体:

\documentclass{beamer}
\usepackage{unicode-math}
\usepackage{polyglossia}
\setmainfont{XITS}
\setsansfont{Myriad Pro}% or any other sans serif font
\setdefaultlanguage{russian}
\begin{document}

This is a test.

Это тест

\end{document}

相关内容