LaTeX/polyglossia

Материал из Викиучебника — открытых книг для открытого мира

polyglossia — пакет для многоязычной верстки с в системе XeLaTeX. Он используется в качестве замены пакету babel. Основные функции пакета — расстановка переносов и использование заданных пользователем шрифтов и системы письменности при многоязычной верстке, а также определение терминов, например «Глава» и «Содержание».

Рассмотрим документ использующий polyglossia:

\documentclass{article}
\usepackage{xltxtra}

\usepackage{polyglossia}
\setmainlanguage{russian}
\setotherlanguage{english}
\setkeys{russian}{babelshorthands=true}

\setmainfont{Times New Roman}
\setromanfont{Times New Roman} 
\setsansfont{Arial} 
\setmonofont{Courier New} 

\newfontfamily{\cyrillicfont}{Times New Roman} 
\newfontfamily{\cyrillicfontrm}{Times New Roman}
\newfontfamily{\cyrillicfonttt}{Courier New}
\newfontfamily{\cyrillicfontsf}{Arial}

\addto\captionsrussian{%
  \renewcommand{\figurename}{Рис.}%
  \renewcommand{\tablename}{Табл.}%
}

\begin{document}

Привет Мир! \foreignlanguage{english}{Hello world!}

\begin{english}
Hello world!
\end{english}

\selectlanguage{english}
Hello world!

\end{document}

Пакет polyglossia загружается в строке 4, затем идет указание основного и дополнительного языков документа. В строке 7 включается поддержка специальных команд пакета babel например "=. Выбор шрифтов выполняется в строках 9-12. Для некоторых шрифтов необходимо дополнительно указать, что их можно использовать для кириллических символов (например для mscorefonts). Это делается в строках 14-17. Команда \addto\captionsrussian демонстрирует, как работает механизм переопределения терминов в пакете polyglossia. В строках 19-22 переназначаются названия для рисунков и таблиц (по умолчанию — без сокращения). Аналогично можно переназначать название списка литературы, оглавления и т.д.

По умолчанию используется язык указанный в команде \setmainlanguage. Для выбора между языками внутри документа можно использовать встроенную команду \foreignlanguage (строка 26) или окружение имеющее имя соответствующего языка (строки 28-30). Команда \selectlanguage устанавливает новый текущий язык.