Опубликован: 07.02.2007 | Уровень: для всех | Доступ: платный
Дополнительный материал 6:

Приложение Е. LaTeX в России

Пример: использованная в книге русификация

Для обработки русских текстов вместо стандартной команды \latex используется специальная команда \rlatex. При этом тексты записываются в кодировке cp866 для DOS и Windows и в кодировке koi8-r для UNIX-подобных систем. Подключение дополнительных пакетов не обязательно: и без них русские буквы можно использовать наравне с латинскими (в том числе в названиях команд, счетчиков, меток и др.), переносы учитывают таблицу русских переносов, можно использовать команды \лк, \пк для кавычек и \номер для знака номера. Буква ё является одной из 33 равноправных букв русского алфавита.

Само по себе использование команды \rlatex не меняет оформления текстов (и для английских текстов она дает почти тот же результат, что и команда \latex ). Но можно обычным способом (с помощью \usepackage ) подключить пакет russcorr . Это приведет к следующим изменениям:

  • по умолчанию устанавливается режим \frenchspacing, а значение параметра \righthyphenmin полагается равным 2 ;
  • определены команды \tg, \ctg, \cosec, \arctg, \sh, \ch, \th, \cth, дающие принятые в России названия этих функций;
  • становятся определены команды \varkappa, \eps и \vphi, дающие принятые в русских текстах начертания греческих букв \varkappa, \eps, \vphi ;
  • команды \leqslant и \geqslant дают (даже без подключения пакета \pkg{amssymb}) знаки неравенств \leqslant и \geqslant, принятые в русских текстах;
  • переведены на русский заголовки "Оглавление", "Рис.", "Часть", "Список рисунков", "Список таблиц", "Литература", "Предметный указатель", "Таблица", "Аннотация", "Глава", "Приложение", "Доказательство" (последний заголовок нужен при использовании пакета amsthm);
  • в заголовках разделов документа после номера раздела ставится точка (чего обычный LaTeX не делает); можно заменить эту точку на что-то другое, переопределив команды \postchapter, \postsection и т.п.; кроме того, имеются команды \presection, \presubsection и т.д. которые изначально ничего не добавляют перед номером раздела (подраздела и т.д.), но также могут быть переопределены (например, можно получить знак параграфа перед номерами разделов, если переопределить \presection как \S );
  • точки ставятся также после названий рисунков и таблиц (вместо двоеточий) и после номеров теорем;
  • имеются команды \ralph и \Ralph, являющиеся русскими аналогами команд \alph и \Alph ; при этом буквы е, й, ъ, ы и ь пропускаются;
  • оформление перечней в окружении {enumerate} меняется: элементы верхнего уровня нумеруются цифрами со скобками, а не с точками, на втором уровне используются русские буквы вместо латинских, на третьем уровне элементы вообще не нумеруются, а отмечаются тире; четыре уровня вложенности не разрешаются;
  • добавляется окружение {rlist}, которое нумерует пункты русскими буквами по алфавиту (строчными; чтобы получить прописные, надо использовать необязательный аргумент [u] );
  • приложения (при использовании команды \appendix ) нумеруются прописными русскими буквами вместо латинских;
  • изменено поведение команды \cleardoublepage: оставляемая ей пустая четная страница теперь совсем пуста (не содержит колонтитулов, номера страницы и т.п.).
  • команды \glqq и \grqq задают кавычки - лапки
  • при использовании стилевой опции longtoc в оглавление помещаются не сокращенные, а полные названия разделов;
  • при использовании стилевой опции indentheadings первые абзацы и заголовки разделов печатаются с абзацным отступом;
  • При использовании стилевой опции yo слова с буквой е получают возможность нормально переноситься, даже если в исходном тексте эта буква задана как \"е'.

Наконец, в состав русифицирующего комплекта входит специальный вариант программы makeindex, используемой при подготовке предметного указателя; этот вариант учитывает порядок русских букв при сортировке.

Все необходимые файлы для установки указанного варианта русификации (дополнительные файлы для UNIX, комплект TeX (конкретно — MiKTeX) плюс GhostScript и GSView для Windows, комплект emTeX для DOS) имеются на прилагаемом к книге компакт-диске (программы GSView там может не быть по лицензионным причинам, и ее придется списывать из Интернета, а также доступны по ftp. См. приложение Ж.

Пример: babel для русского языка

В некоторые установки системы TeX (в частности, в некоторых русских версиях Linux) включены средства для обработки русских текстов с помощью пакета babel. (Говоря TeX нически, нужно, чтобы (1) сам пакет был установлен в вашей TeX-системе и (2) таблица переносов для русского языка была включена в формат.) Чтобы выяснить, так ли это, создайте файл \tstbabel.tex следующего содержания:

\documentclass{article}
\usepackage[russian]{babel}
\begin{document}
Test text.
\end{document}

и обработайте его командой latex tstbabel.tex. Если обработка файла прошла успешно (TeX не пожаловался на отсутствие пакета babel или неизвестную стилевую опцию russian ), это значит, что пакет babel с русскими дополнениями установлен. Теперь надо проверить наличие русской таблицы переносов; для этого загляните в получившийся файл tstbabel.log. Его начало должно выглядеть примерно так:

This is TeX, Version 3.14159 (Web2C 7.3.1)
**tstbabel.tex
(tstbabel.tex
LaTeX2e <2001/06/01>
Babel <v3.7h> and hyphenation patterns for english, french,
german, ngerman, russian, nohyphenation, loaded.

Если в списке языков (он идет после слов "hyphenation patterns for") указан русский (russian), то таблица переносов для русского языка включена в формат и можно набирать русские тексты с помощью babel. (Если она в формат не включена, то можно попробовать это исправить. Необходимые действия зависит от версии используемой TeX-системы; для этого даже есть специальные " утилиты", например, программа MiKTeX Options в системе MiKTeX или программа texconfig в системе teTeX.)

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

\usepackage[...]{inputenc}
\usepackage[russian]{babel}

В квадратных скобках вместо {...} нужно указать кодировку, в которой будет набираться русский текст: например, cp866 (DOS-кодировка), cp1251 (Windows-кодировка) или koi8-r (кодировка koi8-r). Эти строки должны находиться в преамбуле до вызова каких-либо пакетов, использующих русские буквы. После этого в тексте можно набирать русские буквы в указанной кодировке. Важное ограничение: русские буквы нельзя использовать в именах команд или меток!

Пакет babel с опцией russian определяет множество командных последовательностей и лигатур для набора различных символов: например, с помощью "<">' или '"','"' можно получить кавычки-" елочки", '---' дает тире. Кроме того, переопределяются команды для набора заголовков, списка литературы и проч. (например, команда \chapter теперь будет печатать слово "Глава", а не " Chapter" — ср. предыдущий раздел). Более подробную информацию можно найти в документации.

Использование пакета babel несовместимо с описанной выше (и использованной в книге) русификацией LaTeX'а, а также с некоторыми другими пакетами — не пытайтесь их соединить! Кроме того, вам могут потребоваться некоторые специальные средства для подготовки предметных указателей, чтения сообщений об ошибках и др.

Пример: babel для французского языка

Предположим, что вам надо подготовить с помощью LaTeX'а текст на французском языке. Тогда файл надо начать так:

documentclass[12pt,a4paper]{article}
usepackage[T1]{fontenc}
usepackage[french]{babel}
(другие команды \usepackage, если нужно)

После этого в тексте будут при необходимости делаться переносы по французским правилам, в том числе и в словах, включающих буквы с диакритическими знаками (" аксанами", как сказал бы любитель французского), невзирая на то, что эти буквы задаются в тексте с помощью команд \', \^ и т.п. Стандартные заголовки (" глава", "список литературы" и т.п.) и дата (проставляемая автоматически или с помощью команды \today ) будут печататься по-французски. Более того, в тексте будут автоматически учитываться различные французские полиграфические тонкости (например, некоторые знаки препинания будут печататься не вплотную к сл" и " (в шрифтах, используемых пакетом bову, а с небольшим отступом, как это во Франции и принято). Кавычки-" елочки", принятые во французских текстах, можно при этом набирать как abel, это лигатуры). Для некоторых других типично французских полиграфических эффектов предусмотрены специальные команды, с которыми можно ознакомиться в документации к пакету.

Кроме французского, аналогичным образом можно обойтись с немецким (вместо french надо написать german ), итальянским и многими другими европейскими языками; впрочем, надо иметь в виду, что далеко не для всех из них будут доступны автоматические переносы (см. предыдущий раздел по поводу того, как выяснить, включена ли в формат нужная вам таблица переносов и как можно попытаться ее добавить). Если вы не уверены, что таблица переносов есть, то лучше вообще запретить переносы, сказав в преамбуле \hyphenpenalty=10000: худшее, что может случиться при использования русского babel 'а без русских переносов, — это то, что в русских словах не будет делаться переносов, а вот при обработке, скажем, французского текста без французской таблицы переносов французские слова переноситься будут, но по английским правилам, что, надо полагать, хуже.

Нина Казачек
Нина Казачек
Василий Майоров
Василий Майоров
Алина Вадяева
Алина Вадяева
Россия
Юлия Адамовская
Юлия Адамовская
Украина, Славянск