LaTeX/Использование разных языков

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

Для написания в LaTeX документов на языках, отличных от английского, необходимо указать:

  1. как расставлять переносы в словах выбранного языка;
  2. как использовать правила типографского набора для выбранного языка (например, во французском языке перед каждым символом двоеточия (:) ставится обязательный пробел);
  3. как вводить специальные символы, особенно для языков с системой ввода (арабский, китайский, японский, корейский).

Удобно, когда есть возможность вставлять специальные символы выбранного языка непосредственно с клавиатуры, а не использовать громоздкий код (например, вместо \"{a} просто ввести ä). Для этого нужно настроить внутреннюю кодировку символов, подробности см. в Специальные символы.

Для некоторых языков требуются специальные шрифты с соответствующим набором кодирования, см. Кодировка шрифта.

Некоторые из методов, описанных в этой главе, пригодятся при наборе имён неанглоязычных авторов для библиографического списка.

В этом разделе собраны советы о том, как в LaTeX написать документ на любом другом языке, кроме английского. Если у Вас есть подобный опыт использования языка, который не указан в списке, пожалуйста добавьте несколько замечаний.

Необходимые условия[править]

Для многих отличных от английского языков часто необходимо использовать специальные символы. Для этого нужно установить внутреннюю кодировку и кодировку шрифта.

Для большинства языков на латинице оптимальна следующая конфигурация (проверьте, что ваш документ сохранён в кодировке UTF-8):

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}


Для получения дополнительной информации см. Кодировка шрифта и Специальные символы.

Пакет babel[править]

Пакет babel, созданный Йоганнесом Браамсом (Johannes Braams), отвечает за

  • правила расстановки переносов;
  • новые команды, упрощающие ввод специальных символов.

Чтобы подключить пакет babel, добавьте в преамбулу документа:

\usepackage[язык]{babel}

В качестве аргумента укажите нужный Вам язык.

По возможности эту строчку необходимо добавить сразу же после команды \documentclass. В этом случае для всех остальных загружаемых пакетов будет использоваться выбранный язык. Список языков, подключаемых в установленной у Вас системе LaTeX, отображается при каждой компиляции документа. Если установленный Вами формат LaTeX не поддерживает расстановку переносов выбранного языка, то пакет babel будет продолжать свою работу, отключив расстановку переносов. Это отрицательно скажется только на внешнем виде документа.

Можно выбрать несколько языков набора текста:

\usepackage[языкА,языкВ]{babel}

В этом случае основным языком будет указан последний язык из перечисленных в списке (т.е. языкВ). Для смены основного языка используйте команду

\selectlanguage{языкА}

Для вставки небольшого кусочка текста на другом языка также можно использовать команду

\foreignlanguage{языкВ}

Если нужно вставить большой кусок текста на другом языке, используйте окружение:

\begin{otherlanguage}{языкВ}
Текст на языкеВ. Данное окружение переключает все определения, связанные с выбранным языком: подписи к рисункам, таблицам и т.д.
\end{otherlanguage}

Окружение otherlanguage* набирает основной текст согласно правилам другого языка, но при этом использует основной язык для названий вспомогательных конструкций (подписи к рисункам и т.д.). Окружение hyphenrules переключается только правила расстановки переносов. Чтобы запретить расстановку переносов, в качестве аргумента команды укажите nohyphenation.

Кириллица[править]

Пакет babel, начиная с версии 3.7, поддерживает кодировку T2* и вёрстку текстов на русском, болгарском и украинском языках с использованием кириллических символов. Поддержка кириллицы основана на стандартных механизмах LaTeX с дополнительным использованием пакетов fontenc и inputenc. Пакеты AMS-LaTeX необходимо подключить перед пакетами fontenc и babel. Чтобы использовать кириллицу в математических формулах, перед пакетом fontenc подключите пакет mathtext:

\usepackage{amsmath,amsthm,amssymb}
\usepackage{mathtext}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,bulgarian,ukrainian,russian]{babel}

Вообще говоря, пакет babel автоматически выберет кодировку шрифта по умолчанию: для русского, болгарского и украинского языков это будет T2A. Однако для многоязыковых документов, в которых используются языки, основанные на кириллице и латинице, имеет смысл явно указать латинскую кодировку шрифтов. Пакет babel сам переключит нужную кодировку шрифта при смене языка в тексте документа.

На современных операционных системах в качестве внутренней кодировки кириллических текстов лучше всего использовать Unicode (utf8 or utf8x), а не KOI8-RU (koi8-ru).

Дополнительно к подключению правил расстановки переносов, переводу автоматически создаваемых текстовых строк и активации некоторых специфичных для языка типографских правил (например, \frenchspacing – обязательный пробел перед двоеточием во французском языке), пакет babel представляет несколько команд для вёрстки текста согласно стандартам русского, болгарского и украинского языков.

Для указанных языков обеспечивается специфическая пунктуация: кириллическое тире для текста (оно слегка уже латинского тире и окружено крошечными пробелами), тире для обозначения прямой речи, кавычки, команды для более простой расстановки переносов:

Сочетание символов Действие
"| Запрещает лигатуру (т.е. написание нескольких символов языке одним знаком) в этом месте.
"- Дефис, разрешающий перенести остаток слова.
"--- Кириллическое длинное тире в обычном тексте.
"--~ Кириллическое длинное тире в составных именах (фамилиях).
"--* Кириллическое длинное тире для обозначения прямой речи.
"" Похоже на действие для "-,, но не генерирует знака переноса. Используется для составных слов с дефисом (например, x-""y), или некоторых других знаков(например, и/или).
"~ Отмечает составное слово без разрыва.
"= Отмечает составное слово с разрывом, разрешая перенос в словах-компонентах.
", Узкий пробел для инициалов, разрешая переносить следующую за ними фамилию.
"‘ Немецкая открывающая двойная кавычка (,,).
"’ Немецкая закрывающая двойная кавычка (“).
"< Французская открывающая двойная кавычка (<<).
"> Французская закрывающая двойная кавычка (>>).

Для подключаемых с помощью пакета babel русского и украинского языков определены команды \Asbuk и \asbuk, которые, аналогично командам \Alph and \alph, переключают регистр букв русского или украинского алфавита (в зависимости от текущего языка документа). Для болгарского языка команды \enumBul, \enumLat, \enumEng переключают регистр для болгарского, латинского, английского языка, соответственно.