
我正在嘗試在我的機器上編譯一個基於 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}