我正在尝试在我的计算机上编译基于模板 Babel 的演示文稿。但我无法显示西里尔字母。
问题是它不会产生任何有用的输出。构建过程似乎没有任何错误就结束了,但没有显示文本。
我也尝试使用 pdflatex 构建它,并且成功了。通常我使用 XeTeX。
有什么办法可以解决这个问题吗?并不是我需要过多使用 XeTeX,而是我在这上面浪费了几个小时,我很好奇。
这是MWE:
\documentclass{beamer}
\usepackage{lmodern}
\usepackage[english,russian]{babel}
% Стиль презентации
\usetheme{Warsaw}
\begin{document}
\title{Все что вы хотели знать о сферическом коне в вакууме, но боялись спросить}
\author{Олень Северный}
\institute{Научно исследовательский институт физико-матетматических проблем}
\date{Москва, 2010}
% Создание заглавной страницы
\frame{\titlepage}
% Автоматическая генерация содержания
\frame{\frametitle{Содержание}\tableofcontents}
\end{document}
答案1
您正在使用该lmodern
包将文档字体设置为拉丁现代,但不支持西里尔字母。计算机现代解码西里尔字母和希腊字母。
对于 XeLaTeX,添加
\usepackage{fontspec}
\setmainfont[
Ligatures=TeX,
Extension=.otf,
BoldFont=cmunbx,
ItalicFont=cmunti,
BoldItalicFont=cmunbi,
]{cmunrm}
\setsansfont[
Ligatures=TeX,
Extension=.otf,
BoldFont=cmunsx,
ItalicFont=cmunsi,
]{cmunss}
就在之前\usepackage[english,russian]{babel}
,假设cm-unicode
已经安装到你的 TeX 发行版中。
对于 LuaLaTeX 来说,只需添加
\usepackage{fontspec}
\setmainfont{CMU Serif}[Ligatures=TeX]
\setsansfont{CMU Sans Serif}[Ligatures=TeX]
如果你想使用老版本的 pdfLaTeX,只需添加常用的
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
(在所有情况下都删除该\usepackage{lmodern}
线)。
请注意,对于 pdfLaTeX,在您指定字体编码(T2A)后会自动选择正确的字体,但对于 LuaLaTeX 和 XeLaTeX,您必须明确设置它们,这很遗憾。
答案2
我已经编译了背面。希望对你有帮助。
\documentclass{beamer}
\usepackage{lmodern}
\usepackage[english,russian]{babel}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
% Стиль презентации
\usetheme{Warsaw}
\begin{document}
\title{Все что вы хотели знать о сферическом коне в вакууме, но боялись спросить}
\author{Олень Северный}
\institute{Научно исследовательский институт физико-матетматических проблем}
\date{Москва, 2010}
% Создание заглавной страницы
\frame{\titlepage}
% Автоматическая генерация содержания
\frame{\frametitle{Содержание}\tableofcontents}
\end{document}