Работа в системе LaTeX

         

Еще об изогнутых стрелках


Кроме конструкции @/.../, изгиб стрелки можно задавать конструкцией @( направление_выхода,направление_входа), где направление_выхода и направление_входа — это буквы или пары букв, значение которых показано на следующем рисунке:

Пример:

$\xymatrix{ A\ar@(ul,dl)[]_f\ar[r]^g&B }$

Заодно показано, как с помощью "пустого" указателя направления [] и @(...)-конструкции можно напечатать стрелку, ведущую из формулы в нее же.



Начертания стрелок


В следующей таблице собраны некоторые начертания стрелок (часть из них стрелками, строго говоря, не являются, но в диаграмме могут быть полезны), которые можно получить с помощью @{...}-конструкции.

@{-->}
@{=>}
@{.>}
@{>->}
@3{->}
@{<->}

@{->>}
@{<=>}
@{|->}
@{^{(}->}
@{-^{>}}
@{-_{>}}
@{-}
@{=}
@3{-}

Если того, что приведено в таблице, недостаточно, читатель может попробовать скомпоновать еще что-нибудь в этом роде по аналогии (вероятность, что это сработает, отлична от нуля) или обратиться к документации.



Некоторые общие правила


Синтаксис Xy-pic'а весьма сложен, и мы не будем пытаться изложить его полностью (автор должен признаться, что в полном объеме он его и не знает). Вместо этого приведем несколько приемов, наиболее, на наш взгляд, полезных на практике.



Оптимизация и предупреждение ошибок


Пакет Xy-pic заставляет TeX работать буквально на пределе возможностей; файлы, в которых используются Xy-pic'овские конструкции, обрабатываются довольно медленно. Для ускорения работы полезно включить в преамбулу команду \CompileMatrices: в этом случае при первом запуске LaTeX'а информация о ваших \xymatrix будет записана в специальные файлы, а при последующих запусках обрабатываться будут именно они, что сэкономит TeX'у время на развертывание (части из) чудовищного количества макроопределений.

Иногда синтаксис Xy-pic'а вступает в конфликт с синтаксисом других LaTeX'овских команд, что приводит к весьма загадочным сообщениям об ошибках. Чтобы избежать этого, при пользовании Xy-pic'ом полезно применять следующие меры предосторожности:

в аргументе команды \xymatrix каждую из формул, соединяемых стрелками, и каждую надпись при стрелке стоит заключать в фигурные скобки (автор поленился это сделать в вышеприведенных примерах, но в них формулы были очень просты, что снижает шанс нарваться на неприятность);если в вашей формуле присутствует что-то еще, кроме одной-единственной команды \xymatrix, возьмите, от греха подальше, всю эту команду в фигурные скобки, вот так: {\xymatrix{....}} не пытайтесь определять собственные сокращенные обозначения для того, что может быть в аргументе команды \xymatrix: по \tex'ническим причинам эти макросы могут не сработать.

Еще одно замечание: пакет Xy-pic (как и подавляющее большинство LaTeX'овских стилевых пакетов) распространяется бесплатно; тем не менее, если вы пользуетесь им в своем документе, то авторы этого пакета очень просят вас отразить это обстоятельство в сноске к статье или в выходных данных книги.

Будем надеяться, что описанные выше возможности Xy-pic'а достаточны для набора ваших диаграмм. Как мы уже отмечали, этот пакет предоставляет гораздо большие графические возможности, но если нужна сложная графика, разумнее освоить программу metapost, подготавливающую рисунки в формате PostScript, и включать в текст полученные с ее помощью графические файлы так, как описано в приложении Б.





Д. Пакет Xy-pic


Как мы отмечали вранее, возможностей пакета amscd для печати "коммутативных диаграмм" хватает не всегда: бывают нужны стрелки наклонные, изогнутые и т.д. Для печати таких диаграмм можно воспользоваться стилевым пакетом Xy-pic.

Этот пакет — большой и сложный, и в настоящем приложении мы рассмотрим только те его возможности, что относятся непосредственно к коммутативным диаграммам (обо всем прочем можно почитать в оригинальной документации, распространяющейся в электронном виде вместе с пакетом).



Пример с комментариями


Чтобы можно было пользоваться пакетом Xy-pic для набора коммутативных диаграмм, надо подключить стилевой пакет xy с опциями matrix, arrow и curve. Иными словами, надо написать в преамбуле

\usepackage[matrix,arrow,curve]{xy}

Объяснить, как набирать с помощью Xy-pic'а коммутативные диаграммы, удобно на примере.

Рассмотрим следующую диаграмму:

Ей соответствовал такой исходный текст:

$$ \xymatrix{ && M'\ar@{o->}[dl]^e \ar@/_1pc/@{-->}[ddll]_u\\ &amp; K\ar[rr]^f \ar[dr]^h && L \ar[ul]_a \ar[dl]_g\\ L'\ar@{o->}[ur]_d \ar@/_1pc/@{-->}[rrrr]_v && M\ar[rr]^p \ar[ll]_c && K'\ar@{o->}[ul]_b } $$

Разберем его шаг за шагом.

Вся диаграмма записывается в аргументе команды \xymatrix.

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

:
стоит в третьей позиции верхней строки,
и
— во второй и четвертой позициях средней строки,
,
и
— в первой, третьей и пятой позициях нижней строки. Строки разделяются командами \\, элементы строки — символами &. Если в каких-то узлах решетки ни одной формулы нет, надо оставить пустое место; символы & в необходимом количестве присутствовать обязаны.

После каждой из формул (и до следующего & или \\) следуют обозначения для всех стрелок, выходящих из этой формулы. Рассмотрим эти обозначения повнимательнее.

Каждое обозначение для стрелки состоит из пяти элементов (не все эти элементы обязательны).

Первый (обязательный) элемент обозначения для стрелки — команда \ar.

Второй элемент — обозначение для изгиба стрелки (если стрелка прямая, его можно опустить). Оно имеет вид @/.../, где на месте точек записывается указание о том, как именно эту стрелку надо изогнуть. Это указание состоит из символа ^ или _, за которым следует длина в TeX'овских единицах, указывающая степень изогнутости (в нашем примере у всех изогнутых стрелок эта длина равна 1pc).
Длину можно и не указывать, написав просто @/^/ или @/_/, — тогда стрелке буден придан некоторый изгиб "по умолчанию". В любом случае символ ^ или _ указывает, в какую сторону стрелка изгибается: если _, то вправо, если ^ то влево (если смотреть от начала стрелки к ее концу).
Третий элемент — указание на начертание стрелки (если стрелка " обычная", его можно опустить). Оно имеет вид @{...}, где на месте точек ставится условное обозначение, более или менее имитирующее требуемую форму. В нашем примере присутствуют пунктирные стрелки, для которых это обозначение имеет вид @{-->}, и стрелки с кружочком в начале, обозначаемые как @{o->}.
Четвертый (обязательный) элемент обозначения для стрелки указывает ее направление. Каждая стрелка рассматривается как идущая из одного узла решетки в другой. Для задания направления (или, если угодно, точки назначения) стрелки необходимо поместить в квадратные скобки комбинацию из букв u (вверх), d (вниз), r (вправо) и l (влево). Например, [ddll] означает, что пункт назначения стрелки находится на нашей решетке на два шага вниз и на два шага влево от той формулы, из которой стрелка выходит.
Пятый и последний элемент (необязательный) определяет надпись при стрелке. Он состоит из символа ^ или _ и текста надписи (если в надписи больше одного символа, ее надо, как водится, взять в фигурные скобки). Знак ^ указывает, что надпись должна быть слева от стрелки (если смотреть от начала к концу), знак _ — что справа. При одной стрелке могут быть надписи с обеих сторон.

Сдвинутые стрелки


Стрелки можно сдвигать параллельно себе. Для этого используется конструкция @<...>, где на месте точек стоит длина в TeX'овских единицах, указывающая величину сдвига. Если эта длина положительна, то сдвиг будет влево (если смотреть от начала к концу стрелки), если отрицательна, то вправо:

$\xymatrix{ A\ar@<1ex>[dr]^f \ar@<-1ex>[dr]_g\\ &B }$


Управление расположением надписей


По умолчанию надпись при стрелке, соединяющей две формулы, располагается посередине между центрами этих формул. Если размеры этих двух формул различны, надпись при этом оказывается слишком близко к одной из них, что нехорошо. В таком случае можно дать указание, чтобы надпись располагалась в середине именно стрелки: поставить между ^ или _ и надписью знак - (минус):M

$\xymatrix{ A\times B\times C\ar@{.>}[dr]^-{f_1}\\ &D }$

Заодно мы продемонстрировали еще одно возможное начертание стрелки.

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

(скажем, (0.25) означает, что надпись должна быть на четверти пути из начала в конец):

$\xymatrix@1{ A\ar[rr]^(.25){f}&&B }$

Заодно мы применили констукцию, рекомендуемую авторами пакета для ситуаций, когда вся "диаграмма" укладывается в одну строчку: поместили @1 между \xymatrix и открывающей фигурной скобкой; утверждается, что в этом случае диаграмма будет выглядеть более удачно.

Наконец, можно сделать так, чтобы надпись была не сбоку от стрелки, а разрывала стрелку; для этого надо вместо ^ или _ написать ^|^, как в следующем примере:

$\xymatrix{ A\ar@/^/[rd]|{f}\\ &B }$


Что делать?


Но все-таки, что же делать бедному автору, если ему нужно использовать LaTeX для обработки текстов не на английском языке? Главный совет — спросить у знакомых, чем они пользуются, и попытаться воспользоваться теми же самыми средствами. Для языков на латинской основе может пригодиться пакет babel — ниже мы скажем о нем несколько слов в разд. Е.6. С русским дело сложнее — даже при использовании пакета babel могут потребоваться действия, выходящие за рамки обычного подключения пакета, поскольку во многих распространенных комплектах (teTeX, MiKTeX и др.) в готовых форматах не предусмотрена обработка русских переносов.

В предисловии к русскому переводу книги [6] приводится список из 12 различных вариантов русификации LaTeX'а (и это не полный список, как сказано в том же предисловии). Нет никакой возможности описать их все, к тому же с большинством из них автор и не знаком. Вместо этого мы в трех следующих разделах кратко опишем следующие три вещи: вариант русификации, который использовался при подготовке этой книги (его можно найти на приложенном к книге диске), русификацию LaTex'а с помощью пакета babel, и использование того же пакета babel для подготовки текстов на западноевропейских языках, отличных от английского.



Правда жизни


В основном тексте книги не раз говорилось, что LaTeX позволяет автору подготовить текст книги на домашнем компьютере, а затем послать его коллегам или в издательство, где его напечатают без проблем и в том самом виде, как автор хочет.

Настало время признаться, что сказанное несколько идеализирует реальность, даже если речь идет об английских текстах, и грубо приукрашивает ее, если речь идет о русских.

Прежде всего, не все издательства вообще знают про TeX. В этом случае автор должен принести готовый оригинал-макет в каком-нибудь известном издательству формате. Чаще всего используется формат PostScript. Теоретически такой файл достаточно передать побайтно в фотонаборное устройство или PostScript-принтер, и текст будет напечатан в нужном виде. На практике, однако, возможны осложнения. В одном популярном московском издательстве не только не умели работать с TeX-файлами, но и PostScript-файл умудрились напечатать с непреднамеренным изменением масштаба, причем разным для разных страниц! (Что не так удивительно, если учесть, что в современных системах с дружественным интерфейсом не всегда легко предвидеть последствия того или иного движения мыши.)

" Патриотически" настроенным читателям будет приятно узнать, что эти проблемы отнюдь не ограничиваются Россией: в одном широко известном американском издательстве на компьютере было установлено несколько версий LaTeX'а, причем сотрудники издательства этого не осознавали и удивлялись, почему обработка одних и тех же файлов иногда дает слегка разные результаты. Проблема тут в том, что время от времени в LaTeX и стилевые пакеты к нему вносятся улучшения (исправляются старые ошибки и вносятся новые).

Вот еще одна, совсем свежая, история. В первоначальной версии этой книги объяснялось, что для двойных акцентов в математических формулах (типа

) надо использовать команду \Hat, а не \hat, поскольку команда \hat ставит акценты со сдвигом, и был пример плохого двойного акцента. При обработке текста книги с новой версией пакета {amsmath} выяснилось, что авторы этого пакета о нас позаботились и изменили команду \hat, из-за чего пример ее ошибочной работы пришлось создавать искусственно.

Впрочем, надо отдать должное разработчикам LaTeX'а и макропакетов к нему: по сравнению с другими "программными продуктами" количество версий (LaTeX обновляется раз в год, а раньше — раз в полгода) невелико, а различия между ними незначительны. (Plain TeX меняется еще реже и меньше.)



babel для французского языка


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

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

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

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


  1)   Хотя и не всех: например, некоторых букв, использующихся в латышском или литовском языках, в кодировке T1 нет.


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'а, а также с некоторыми другими пакетами — не пытайтесь их соединить! Кроме того, вам могут потребоваться некоторые специальные средства для подготовки предметных указателей, чтения сообщений об ошибках и др.



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


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

равноправных букв русского алфавита.

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

по умолчанию устанавливается режим \frenchspacing, а значение параметра \righthyphenmin полагается равным
;определены команды \tg, \ctg, \cosec, \arctg, \sh, \ch, \th, \cth, дающие принятые в России названия этих функций;становятся определены команды \varkappa, \eps и \vphi, дающие принятые в русских текстах начертания греческих букв
;команды \leqslant и \geqslant дают (даже без подключения пакета \pkg{amssymb}) знаки неравенств
и
, принятые в русских текстах;переведены на русский заголовки "Оглавление", "Рис.", "Часть", "Список рисунков", "Список таблиц", "Литература", "Предметный указатель", "Таблица", "Аннотация", "Глава", "Приложение", "Доказательство" (последний заголовок нужен при использовании пакета 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. См. приложение Ж.



Русскоязычные беды


С русскими текстами дела обстоят еще хуже. Если вы подготовите файл с русским текстом и пошлете его своему коллеге, у которого используется другая операционная система или просто другая русификация LaTeX'а, почти наверняка у него возникнут проблемы и текст не напечатается или напечатается не так.

Прежде чем описывать это бедственное положение более подробно, попытаемся хотя бы немного оправдаться и объяснить, отчего так получается.

Естественно, что Дональд Кнут прежде всего заботился об англоязычных авторах. Если мы хотим использовать TeX для текстов на других языках, возникает несколько проблем.

Нужны буквы, которых нет в английском языке. Например, в немецком языке нужны буквы с умлаутами (типа "a), а в скандинавских языках используется буква o — и мудрый Кнут заранее предусмотрел ее в разработанных им шрифтах (буквы же с умлаутами можно собирать из обычных букв и диакритических знаков). Хуже обстоит дело с русским (а также, например, греческим) языком, где нужны не отдельные новые буквы, а целый алфавит.Даже если нужные буквы есть, возникает проблема переносов. В разных языках правила переноса различны, и потому таблица переносов для английского языка будет давать неверные результаты при обработке (скажем) немецких текстов.Наконец, в разных странах разные типографские традиции, и потому сверстанный по англо-американским канонам текст на другом языке кажется странным. (В частности, названия разделов документа для разных языков разные — но есть и гораздо более тонкие различия.)

Эти проблемы решались постепенно. Начальный вариант TeX'а использовал шрифты из

символов и предусматривал только английские переносы. Затем Кнут добавил возможность хранить таблицы переноса для нескольких языков. Впрочем, это не решало проблем с переносом иноязычных слов, поскольку буквы с диакритическими знаками не были полноценными буквами с точки зрения алгоритмов переноса. К счастью, байт оказался восьмибитовым, и поэтому TeX нически несложно было перейти к шрифтам из
символов.
В эти
символов уже помещались буквы большинства языков на латинской графической основе1), и для LaTeX'а была разработана соответствующая кодировка (T1), в которой уже все буквы полноценные. (Не торопитесь, впрочем, завидовать европейцам: не успели они порадоваться достигнутой стандартизации, как оказалось, что символ для европейской денежной единицы вставить в T1 некуда, и он, в отличие от более удачливого доллара, был добавлен в кодировку TS1).

Параллельно TeX приспосабливался к русскому языку. Прежде всего нужно было нарисовать русские буквы, которые были бы по внешнему виду аналогичны буквам из кнутовских шрифтов. Это было сделано, причем несколькими способами (см. приложение В).

Тем не менее мечты о стандартизации (" Чтобы использовать русские буквы, подключите такой-то стандартный стилевой пакет") пока остаются мечтами. Помимо субъективных причин (все привыкли к своим любимым вариантам русификации и не хотят переучиваться), есть и объективные проблемы.

Первая связана с невозможностью соединить в одном шрифте все желательные символы, поскольку шрифты более чем с 256 символами TeX (без серьезных переделок) не использует, а свободных мест в кодировке T1 нет. Более того, даже если отказаться от символов европейских языков, но хотеть разместить все известные буквы кириллического типа, то и тогда оказывается недостаточным 256 символов. Поэтому есть несколько стандартизованных кодировок, включающих русские и другие кириллические буквы (T2A, T2B,...), не говоря уже о других, не стандартизованных, вариантах.

Вторая связана с тем, что существует несколько способов представления русских букв в файлах. Наиболее распространены три: koi8-r (обычно она используется в UNIX-подобных системах), cp866 (DOS) и cp1251 (Windows). Поэтому само понятие совместимости становится спорным: если DOS-пользователь приносит своему Windows-собрату дискету с файлом в кодировке cp866, должен ли этот файл обрабатываться LaTeX'ом в системе Windows без дополнительного перекодирования или после перекодирования в cp1251? Должна ли одна и та же программа обрабатывать тексты в разных кодировках (а может, даже и тексты, разные части которых записаны в разных кодировках)? Этого можно достичь, применяя dirty tricks(сделав русские буквы "активными символами" — читатели книги [2] нас поймут) — но тогда нельзя использовать русские буквы в именах команд.И т.д. и т.п.


Дополнительная информация


Описанных команд достаточно для полного цикла работы с системой LaTeX. Но есть и другие полезные возможности.

Программа ps2pdf преобразует PostScript-файлы в файлы в формате PDF. Это удобно, если ваши читатели испытывают трудности с чтением PostScript-файлов, но умеют читать PDF-файлы. Программа ps2pdf использует Ghostscript и вызывается командой типа ps2pdf test.ps test.pdf Файлы в PDF-формате (не все, но большинство) можно просматривать программой gv (ghostview). Она же позволяет сохранить (save) файл в формате PostScript. Это же можно сделать с помощью программы Acrobat Reader фирмы Adobe (которая также распространяется бесплатно, но с некоторыми ограничениями). Наконец, есть программа pdf2ps, которая также использует Ghostscript и переводит PDF-файлы в PostScript-файлы.Имеются программы, позволяющие вырезать отдельные страницы (psselect), сливать (psmerge), изменять масштаб и собирать по несколько страниц на одну (psnup и более изощренная pstops), переставлять страницы для брошюровки (psbook) и многое другое. Они распространяются свободно и обычно также входят в дистрибутив UNIX-подобной операционной системы.

Например, команда

pstops "2:0L@0.7(21cm,0)+1L@0.7(21cm,14.85cm)" text.ps text2.ps создает файл text2.ps, каждая страница которого представляет собой две уменьшенные с коэффициентом
страницы файла text.ps (меняя числа, можно регулировать уменьшение и сдвиг). Команда psselect 5-26 text.ps text2.ps помещает в text2.ps страницы
--
файла text.ps (можно оставить все страницы, начиная с пятой, если написать 5-). Более подробные сведения об этих и других программах можно получить, сказав (например) man pstops.

Учтите, что эти программы работают не для любых PostScript-файлов (но обычно работают с файлами, выдаваемыми программойdvips). Зато они, к слову сказать, совсем маленькие (и написаны на языке C без всяких системно-зависимых хитростей).

Файлы, относящиеся к TeX'у (включая документацию), в основном сосредоточены в специальной директории. В системе Linux это обычно директория /usr/share/texmf, в системе FreeBSD это может быть директория /usr/local/share/texmf.
Кроме того, TeX может помещать создаваемые им файлы (например, файлы шрифтов) в директорию типа /var/lib/texmf.Для проверки наличия файлов (в тех местах, где их будут искать TeX-программы) может быть полезна программа kpsewhich: например, в ответ на команду kpsewhich graphicx.sty может быть выдано сообщение типа /usr/share/texmf/tex/latex/graphics/graphicx.sty с полным адресом этого файла.Имеется программа mpost (иногда \mp, но часто mp обозначает другую программу), полезная для изготовления PostScript-рисунков. Полное название этой программы, сообщаемое при ее вызове, — metapost.Есть несколько наборов программ (\NetPBM и ImageMagick, например), позволяющих преобразовывать графические файлы из одних форматов в другие. Например, чтобы преобразовать pcx-файл picture.pcx в формат PostScript (точнее, Encapsulated PostScript) с помощью программы convert, входящей в пакет ImageMagick, достаточно сказать convert picture.pcx picture.eps Существует также (свободно распространяемый) графический редактор gimp, который умеет читать и записывать файлы различных форматов.

DOS-подобные системы


В системе DOS можно использовать пакет emTeX(автор — Eberhard Mattes). Он был написан довольно давно и включает в себя различные версии программ, рассчитанные на процессор 8086, 80286 и 80386 и выше. Его можно использовать с большим или меньшим успехом и в Windows в режиме DOS-эмуляции или в DOS-окне (возможно, потребуется что-то перенастраивать по части управления дополнительной памятью). Предупреждение: при одновременной установке emTeX и других TeX-систем на одном компьютере может произойти путаница (будут вызываться не те программы).

На прилагаемом компакт-диске имеются как исходные файлы (взятые с сервера CTAN, см.Ж), так и полный комплект установленных файлов вместе с добавлениями, сгенерированными форматами и др. Поэтому в оригинальные файлы можно не заглядывать, а воспользоваться этим комплектом. Как это сделать, описано в файле emtex.dos/readme.em.

Учтите, что этот комплект рассчитан на процессоры не ниже 386 и к тому же занимает довольно много места (несколько десятков мегабайтов), поскольку никакого отбора мы не делали и включили даже то, что вряд ли понадобится. На крайний случай — если ваш компьютер медленный и памяти мало — можно попробовать воспользоваться инсталляционной программой Виктора Хименко, которая написана в 1996 году и предназначена для установки emTeX'а и его русификации. Эта программа и соответствующие файлы из тогдашнего emTeX'а находятся в директории

/justincase/emtexrus.old/1996

Впрочем, это мы сообщаем лишь на крайний случай: во-первых, в этой программе есть ошибка, и она может отказываться работать на быстрых компьютерах или не находить нужных файлов. Во-вторых, изготовленные с помощью версии 1996 года dvi-файлы используют другие имена шрифтов и потому не будут обрабатываться теперешними dvi-драйверами.



Где взять дополнительные пакеты: архив CTAN


Мы старались включить в прилагаемый компакт-диск (содержимое и ISO-образ которого можно найти на сервере ftp.mccme.ru, директория pubtex) все необходимое для первоначальной установки LaTeX'а (об одном исключении см. выше в разделе о GSView). Но через некоторое время вам скорее всего понадобится какой-то стилевой пакет или вспомогательная программа, которой на диске нет. (Или новая версия одного из пакетов.)

Стандартное место хранения TeX-материалов — архивы CTAN (Comprehensive TeX Archive Network). Главный сервер этой сети в настоящее время ftp.dante.de, см. также www.dante.de; в случае чего информацию об этой сети легко отыскать с помощью поисковых машин в Интернете.

Все материалы по TeX'у (за исключением материалов по использованной в книге русификации, которые можно найти на ftp.mccme.ru), помещенные на прилагаемый компакт-диск, были взяты именно из CTAN.

Большое количество русскоязычных материалов (версии русских шрифтов, разные вспомогательные пакеты) имеется на сервере Воронежского университета ftp.vsu.ru.

  1)   Здесь под "пакетами" имеются в виду не пакеты макроопределений, а "packages" в смысле инсталлятора типа RedHat или "ports" в смысле FreeBSD.
  2)   Все эти файлы написаны по-русски в кодировке koi8-r (типичной для UNIX), так что прежде всего нужно будет научиться читать и редактировать такие файлы (для чего необходимо подключить шрифты системы X Window System в этой кодировке и/или консольные шрифты). В разных версиях UNIX эти шрифты устанавливаются по-разному, и описание этого процесса мы не приводим, но без русских экранных шрифтов трудно воспользоваться русским TeX'ом.


Изготовление PostScript-файлов


Теперь следует опробовать работу с PostScript-файлами. Начнем с их создания: находясь все в той же директории, где лежат файлы test.tex и test.dvi, дайте команду

dvips -o test.ps test.dvi

Она выдаст на экран сообщение наподобие следующего:

This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) ` TeX output 2002.07.21:2137' -> test.ps <texc.pro> [1]

в котором [1] выдается при обработке первой страницы (для более длинных файлов страниц будет, естественно, больше). При этом создается файл test.ps.

Ради любопытства можно заглянуть в него с помощью команды less: там написано что-то вроде

%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software <...> userdict /end-hook known{end-hook}if %%EOF

(когда мы провели эксперимент, в этом файле оказалось

строк).


Теперь следует опробовать работу с PostScript-файлами. Начнем с их создания: находясь все в той же директории, где лежат файлы test.tex и test.dvi, дайте команду

dvips -o test.ps test.dvi

Программа dvips выдает на экран сообщение наподобие следующего:

This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) ' TeX output 2002.07.25:0115' -> test.ps <texc.pro>. [1]

в котором [1] выдается при обработке первой страницы (для более длинных файлов страниц будет, естественно, больше). При этом создается файл test.ps.

Ради любопытства можно заглянуть в него с помощью текстового редактора: там написано что-то вроде

%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software <...> userdict /end-hook known{end-hook}if %%EOF

(когда мы провели этот эксперимент, в файле оказалось 149 строк).



Как проверить наличие LaTeX'а


Скорее всего, TeX уже входит в состав имеющегося у вас комплекта. Обычно это система teTeX, и в дальнейшем мы описываем именно ее (для системы Linux, в других системах детали могут отличаться). Чтобы убедиться в том, что TeX установлен, запустите команду tex: должно появиться что-то вроде

This is TeX, Version 3.14159 (Web2C 7.3.1) **

То же самое должно появляться при запуске команды latex. (Прервать выполнение команды tex обычно можно при помощи одной из клавиш Control-C и Control-D; если появляется вопросительный знак, то можно нажать клавишу x и затем Enter.)

Если этого не происходит, скорее всего, это означает, что при установке системы (из "дистрибутива") вы не заказали установку системы TeX. В этом случае можно попытаться повторить инсталляцию, выбрав соответствующие пакеты1), или добавить эти пакеты в систему. Например, в дистрибутиве системы Linux фирмы RedHat для этого применяется программа rpm. Заново устанавливать TeX, минуя принятую систему инсталляции, мы не советуем. Лучше попытаться разыскать и установить отдельные недостающие пакеты, следуя инструкциям к использованному вами дистрибутиву.

Не всегда по умолчанию устанавливается комплект TeX-документации. Советуем вам проверить и при необходимости доустановить его (скорее всего, он есть на дисках, с которых вы устанавливали операционную систему). Искать документацию следует прежде всего в директории типа /usr/share/texmf/doc (в ней должно быть много поддиректорий, относящихся к разным частям системы: amstex, bibtex, context и т.д.)

Кроме того, для работы с LaTeX'ом вам понадобится X Window System (графическая подсистема UNIX, которая рисует на экране окна, курсор от мыши и т.п.). Скорее всего, она тоже уже установлена, а если нет, попросите знатоков это сделать. Если она есть, можно попробовать полный цикл обработки файла в LaTeX'е.



Обработка файла с помощью LaTeX'а


После того, как файл test.tex создан, надо дать команду

latex test.tex

На экране должно появиться примерно следующее:

This is TeX, Version 3.141519 (Web2C 7.3.1) (test.tex LaTeX2e <2000/06/01> (/usr/share/texmf/tex/latex/base/article.cls Document Class: article 2000/05/19 v 1.4b Standard LaTeX document class (/usr/share/texmf/tex/latex/base/size10.clo)) No file test.aux [1] (test.aux) ) Output written on test.dvi (1 page, 236 bytes). Transcript written on test.log

(Такое сообщение появляется при первом запуске; при втором файл test.aux уже есть и на его отсутствие не жалуются.) При этом должны образоваться (помимо test.aux) еще файлы test.dvi и test.log. Последний файл должен содержать примерно то же самое, что было выведено на экран.


После того, как файл test.tex создан, надо дать команду

rlatex test.tex

На экране должно появиться примерно следующее:

This is TeX, Version 3.14159 (MiKTeX 2 UP 1) (test.tex This is Russified LaTeX2e [2000/07], based on LaTeX2e 2000/06/01 (C:\texmf\tex\latex\base\article.cls Document Class: article 2000/05/19 v1.4b Standard LaTeX document class (C:\texmf\tex\latex\base\size10.clo)) No file test.aux. (C:\texmf\tex\latex\base\t1cmr.fd) [1] (test.aux) ) Output written on test.dvi (1 page, 284 bytes). Transcript written on test.log.

(Такое сообщение появляется при первом запуске; при втором файл test.aux уже есть и на его отсутствие не жалуются.) При этом должны образоваться (помимо test.aux) еще файлы test.dvi и test.log. Последний файл должен содержать примерно то же самое, что было выведено на экран.



Печать PostScript-файла


Печать осуществляется командой

lpr test.ps

Правда, для этого должна быть настроена система печати. В многопользовательских системах настройка принтеров — задача системного администратора, который должен сообщить пользователям, как печатать файлы. (А задача пользователей — " достать" системного администратора настолько, чтобы он наладил бесперебойную работу принтеров.) На домашнем компьютере вы сами себе системный администратор, и печать придется настраивать самому или с помощью друзей. К сожалению, это очень по-разному делается в разных версиях UNIX и даже в разных дистрибутивах. В современных дистрибутивах Linux (типа RedHat или Mandrake) при настройке печати могут помочь специальные графические оболочки (например, printtool в RedHat Linux).

Подчеркнем, что вовсе не обязательно иметь PostScript-принтер, чтобы печатать PostScript-файлы. На самом деле годится почти любой принтер (который работает с операционными системами, отличными от Windows; избегайте неполноценных "Windows-only" принтеров). Система печати автоматически обрабатывает ваш файл с помощью программы Ghostscript, так что вам (если все настроено правильно) не о чем беспокоиться.



Ж. Откуда взять TeX?


До сих пор мы старательно уходили от разговора о том, как на практике воспользоваться системой LaTeX, — прежде всего потому, что это зависит от того, какая операционная система установлена на вашем компьютере и какая версия TeX'а выбрана. В этом приложении мы попытаемся сказать что-то более конкретное, имея в виду пользователей разных операционных систем.



Просмотр dvi -файла на экране


Описанные действия можно было произвести и без графической системы (" на консоли", как иногда говорят). Но следующее действие уже требует работающей системы X. Получив доступ к командной строке (часто это можно сделать, выбрав пункт меню "New shell", или " Xterminal", или "xterm", или еще что-то в таком роде), надо запустить программу xdvi командой

xdvi test.dvi

При этом должно появиться новое окно, в котором показана (возможно, не полностью) страница сверстанного текста. Справа от нее, скорее всего, будут разные "кнопки", назначение которых в основном понятно из названий. Клавиши Page Up и Page Down переходят на предыдущую и следующую страницу (пока, впрочем, страница только одна, и они не действуют), стрелки позволяют перемещаться по странице (что можно делать и с помощью мыши). Из других полезных возможностей: нажав на клавишу с цифрой, а затем на s, можно получить на экране изображение, уменьшенное в соответствующее число раз (по сравнению с максимально возможным, когда одна точка в шрифтах соответствует одной точке экрана) — так что 1s дает изображение максимального размера. Аналогично, набрав число и потом нажав клавишу g, можно перейти на страницу с заданным номером. Еще одно полезное свойство: нажатие на кнопку мыши может действовать как лупа.

Многие другие возможности можно узнать из документации (в частности, с помощью команды man xdvi). Выйти из программы можно, нажав клавишу q.



Просмотр и печать dvi-файла


Чтобы просмотреть файл test.dvi на экране, нужно дать команду

yap test.dvi

При этом должно появиться новое окно, в котором показана (возможно, не полностью) страница сверстанного текста. Клавиши Page Up и Page Down переходят на предыдущую и следующую страницу (пока, впрочем, страница только одна, и они не действуют), стрелки позволяют перемещаться по странице (что можно делать и с помощью мыши). Клавиши

и
позволяют менять масштаб. Еще одна полезная возможность: набрав число и потом нажав клавишу g, можно перейти на страницу с заданным номером. Выйти из программы yap можно, нажав клавишу q.

С помощью меню File

Print можно также напечатать dvi-файл, если он не содержит вставок в формате PostScript. Если же такие вставки есть, нужно преобразовать dvi-файл в формат PostScript, после чего напечатать его с помощью программы GSView, как описано ниже.

Более подробно использование программы yap описано в документации.



Просмотр и печать PostScript-файла


На практике, естественно, читать PostScript-файл невооруженным глазом не надо, а надо просматривать его с помощью программы GSView. Вызвать ее можно либо с помощью меню Start

Programs (тогда придется открывать файл с помощью клавиши " O" или пункта меню File
Open), иногда достаточно щелкнуть мышью на файле test.ps в Windows Explorer или какой-нибудь файловой оболочке типа Far. (Если на машине установлены программы фирмы Adobe, они могут показывать на экране PostScript-файлы своим способом.)

При запуске программы GSView появится окно с сообщением, что программа не зарегистрирована; это не мешает работе программы, но может быть устранено с помощью регистрации (платной). После запуска программы в ее окне будет изображена первая (в данном случае и единственная) страница вашего файла. В этой программе также можно использовать клавиши Page Up и Page Down (или клавиши "

" и "
") для движения по страницам, клавиши "
" и "
" для изменения масштаба. Нажав клавишу P или выбрав в меню File
Print, можно напечатать файл (рекомендуем в диалоге печати установить " Windows GDI printer" — тогда можно будет устанавливать параметры печати обычным для Windows способом).

Отметим в заключение, что в комплект MiKTeX 2.0 входят разные полезные программы для обработки PostScript-файлов (программа psselect позволяет вырезать из файла отдельные страницы, программа pstops помещать несколько листов на один с уменьшением или без, программа psbook — печатать буклеты и т.п.), только вместо команды man надо читать файлы с документацией).

Кроме того, в него входят различные программы обработки графических файлов в разных форматах, которые могут вам пригодиться при подготовке иллюстраций для включения в текст (коллекция программ NetPBM).



Просмотр PostScript-файла


На практике, естественно, читать PostScript-файл невооруженным глазом не надо, а надо просматривать его с помощью команды gv (или ghostview). Дайте команду

gv test.ps

и убедитесь, что на экране появляется окно, в котором изображена первая (в данном случае и единственная) страница вашего файла. В этой программе также можно использовать клавиши Page Up и Page Down (переключаться между страницами можно также с помощью мыши и списка страниц слева). Увеличение регулируется в меню сверху. Есть и много других пунктов меню, которые можно опробовать. В частности, средней кнопкой мыши можно пометить некоторые избранные страницы, а затем записать их в файл (это будет PostScript-файл только с избранными страницами) с помощью кнопок меню. Можно также и напечатать избранные страницы, но в этом случае программа запрашивает, какова команда печати, поэтому лучше опробовать печать отдельно.



Русификация TeX'а в UNIX


Сейчас получают все большее распространение русифицированные варианты системы Linux и других UNIX-подобных систем. Хочется надеяться, что скоро в их состав будет входить готовая к использованию и хорошо работающая русификация TeX'а вместе с соответствующей документацией. (А если быть совсем оптимистами, то можно надеяться, что эти русификации будут совместимы друг с другом хотя бы в той же степени, что и разные версии исходного англоязычного LaTeX'а.) Может быть, когда вы читаете эту книгу, такое уже случилось (всегда хочется надеяться на лучшее), тем более что многое в этом направлении уже делается (группой CyrTUG и ее последователями, российскими производителями дистрибутивов UNIX и т.п.) Тогда вам не понадобится ни этот раздел, ни прилагаемый к книге компакт-диск.

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

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

В прилагаемом к книге компакт-диске в директории tetex.unix содержатся все необходимые для русификации материалы, собранные в архив texkoi.tar.gz (его можно найти в ftp://ftp.mccme.ru/pub/tex рядом с текстами этой книги; он занимает около мегабайта). Спишите этот архив на жесткий диск и разархивируйте его с помощью команды

tar xzvf texkoi.tar.gz

(которую нужно давать в той же директории, где лежит архив). Появится директория texkoi; в этой директории есть файл README, содержащий краткое описание русификации (более подробное описание имеется в файле DETAILS), а также файлы INSTALL.root и INSTALL.user.
Первый из них описывает действия, которые должен предпринять системный администратор, чтобы установить русскую версию LaTeX'а для всех пользователей, второй — что надо делать пользователю, не имеющему прав системного администратора, чтобы установить русскую версию LaTeX'а для себя2).

Установка русских дополнений совсем проста, если у вас установлена система Linux в версии RedHat 6.0 и выше (или другая система, совместимая по расположению TeX-файлов) и вы можете получить полномочия системного администратора ( root). В этом случае достаточно:

получить полномочия root'а (например, с помощью команды su);находясь в директории texkoi (полученной при распаковке архива), дать команду sh install.shВажно только до этого проверить (как это сделать, см. выше), что оригинальный LaTeX уже установлен, иначе попытки русификации ничего хорошего не дадут (и сильно затруднят последующую русификацию).

Если на втором шаге возникают сообщения об ошибках, значит, в вашей версии Linux файлы расположены несколько иначе и придется разбираться подробнее. Прочтите тогда внимательно сам файл install.sh и комментарии к нему в файле INSTALL.root.

Имеется также аналогичный файл installbsd.sh, который может помочь при установке русификации в системе FreeBSD и аналогичных (где TeX лежит в других директориях).

Проверьте, прошла ли русификация успешно. Для этого создайте тестовый файл testrus.tex, в котором будут русские буквы:

\documentclass{article} \begin{document} This is a test file. Это — тестовый файл. \end{document} (заметим в скобках, что можно сделать это с помощью примитивного редактора xreditor, который входит в состав русификации и должен к этому моменту быть уже установлен; кроме него, имеются программы reditor-dos2unix и reditor-unix2dos, которые преобразуют тексты из DOS-кодировки (cp866, иногда называемой " альтернативной") в UNIX-кодировку (\mbox{koi8-r}) и обратно).

Затем дайте команду

rlatex testrus.tex Она должна выдать на экране текст

This is TeX, Version 3.141519 (Web2C 7.3.1) (testrus.tex This is Russified LaTeX2e [2000/07], based on LaTeX2e 2000/06/01 (/usr/share/texmf/tex/latex/base/article.cls Document Class: article 2000/05/19 v 1.4b Standard LaTeX document class (/usr/share/texmf/tex/latex/base/size10.clo)) No file testrus.aux (/usr/share/texmf/tex/latex/base/t1cmr.fd)[1] (testrus.aux) ) [1] (testrus.aux) ) Output written on testrus.dvi (1 page, 284 bytes).Transcript written on testrus.log. (или аналогичный) и создать файл testrus.dvi. При просмотре этого файла на экране с помощью программы xdvi ( dvi-драйверы не требуют специальной русификации и используются обычным образом) должны быть видны русские буквы, программа dvips должна создавать PostScript-файл, при просмотре и печати которого видны русские буквы и т.п.

Если все это прошло успешно, то русификация готова к использованию (о некоторых ее возможностях см. приложение E).


Создание файла


Прежде всего надо создать файл (скажем, test.tex) такого содержания:

\documentclass{article} \begin{document} This is a test file. \end{document}

Обратите внимание, что буквы здесь только латинские. Это существенно: сначала мы хотим проверить работу исходного LaTeX'а, а не его русской версии. Такой файл надо создавать с помощью текстового редактора. Этих редакторов много (emacs, pico, joe, jed, старинный редактор vi и многие другие). Есть также программа Midnight Commander (mc), которая напоминает знакомую многим программу Norton Commander или Volkov Commander; в нее встроен текстовый редактор (вызывается клавишей F4). Так или иначе, если вы вообще работаете с UNIX, то скорее всего каким-то текстовым редактором пользоватся уже умеете. На всякий случай содержимое файла можно проверить командой less test.tex (ее работу можно завершить клавишей q).


Прежде всего надо создать файл (скажем, test.tex) в кодировке DOS (cp866) такого содержания:

\documentclass{article} \begin{document} This is a test file. Это — тестовый файл. \end{document}

Такой файл надо создавать с помощью текстового редактора (отметим, что WordPad, Notepad и Write годятся не всегда). Например, можно применять редактор, встроенный в файловую оболочку типа Far (он обычно вызывается нажатием на клавишу F4); можно использовать программы типа Norton Commander или Volkov Commander в DOS-окне.

Если вы почему-либо используете текстовый редактор Microsoft Word, необходимо сохранить файл в формате типа "текст MS-DOS с концами строк" (в разных версиях Microsoft Word этот формат может называться по-разному). Проверьте, что полученный файл действительно текстовый и действительно в кодировке cp866. Это можно сделать, дав команду type test.tex в DOS-окне.

Существуют многие другие (freeware или shareware) программы-редакторы, которые на практике применяются для подготовки TeX-файлов ( WinEdt, Quickpad, WinEdit, UltraEdit, Aditor и т.д.) — их можно найти в Интернете, но пользуясь ими, важно осознавать последствия своих действий (в какой кодировке записывается файл и др.).



UNIX-подобные системы


К их числу относятся популярная ныне система Linux, другая популярная система FreeBSD (обе они являются свободно распространяемыми), система Solaris фирмы Sun Microsystems и многие другие.



Установка программ работы с PostScript-файлами


Установка GhostScript 7.05.

Начните установку, перейдя в директорию 'miktex.win\gs705' и запустив программу gs705w32.exe. В появившемся окне нажмите кнопку Setup.

В следующем окне "GNU Ghostscript Setup" укажите директорию, куда нужно установить программу Ghostscript (директория, имя которой содержит пробелы, типа "Program Files", не рекомендуется), и место, куда нужно поместить ярлыки (shortcuts) для программы Ghostscript и документации к ней. После этого нажмите кнопку Install.

Установка GSView.

Лицензия, по которой распространяется программа GSView, не позволяет записать ее на компакт-диск, прилагаемый к книге, хотя и разрешает записать ее на компакт-диск, продаваемый (или раздаваемый) отдельно. Поэтому, если на имеющемся у вас диске программы {gsv43w32.exe (в директории 'miktex.win\gsview43') не оказалось, спишите эту программу из Internet'а (она по нынешним меркам небольшая — меньше двух мегабайтов), например, с сервера ftp.mccme.ru, где в директории pubtex лежит эта книга и материалы к ней.

Для установки GSView зайдите в директорию 'miktex.win\gsview43' и запустите программу gsv43w32.exe. Диалог:

Select Language - Выберите язык для программы установки (например, English [английский])

GSView Install - Трижды нажмите кнопку Next. После этого выберите директорию для установки GSView (можно оставить то, что предлагают) и нажмите Next. Наконец, укажите место, куда нужно поместить ярлыки для программы GSView и документации к ней, и нажмите кнопку Finish.

Когда установка будет завершена, нажмите кнопку Exit для выхода из программы установки.

После установки можно опробовать полный цикл обработки файла в LaTeX'е.



Windows-подобные системы


В этом разделе речь пойдет о том, как можно использовать LaTeX в рамках Windows. Прежде всего надо иметь в виду, что появляются все новые и новые системы Microsoft Windows, так что приведенные здесь рекомендации могут не вполне подходить к тому, что установлено на вашем компьютере (мы надеемся, что они более или менее применимы к Windows 95/98/ME и Windows NT/2000/XP).

Существуют версии TeX для Windows, называемые fpTeX и MiKTeX. Обе они распространяются бесплатно, и выбор между ними — дело вкуса. Мы опишем установку и использование системы MiKTeX.

Заметим сразу же, что можно попробовать использовать и систему emTeX(о которой мы скажем несколько слов ниже) в режиме DOS-окна или DOS-эмуляции, хотя просмотр файлов на экране может быть менее удобным (а для просмотра PostScript-файлов все равно понадобятся программы Ghostscript и GSView).

В отличие от UNIX, стандартный комплект Windows не включает в себя TeX'а и — надо полагать — не будет его включать в обозримом будущем (а в необозримом будущем не будет самой системы Windows). Поэтому нужно устанавливать не только русские добавления, но и весь TeX (несколько десятков мегабайтов), и надо иметь либо быстрый доступ к Интернет, либо компакт-диск. Для удобства читателей мы поместили комплект MiKTeX 2.0 (не самый новый, но вполне действующий) и русификацию, использованную при подготовке этой книги, в директорию miktex.win на прилагаемом к ней компакт-диске. В этой директории есть файл readme, описывающий установку комплекта MiKTeX 2.0 с русскими добавлениями (а также Windows-версий программы Ghostscript). Прочтите его (скажем, в DOS-окне), даже если обычно вы не читаете инструкций — заодно убедитесь, что вы можете читать текстовые файлы в кодировке cp866 (с которой придется иметь дело).

Установка состоит из четырех этапов.

Подготовка: распаковка файла с русскими добавлениями.Установка MiKTeX 2.0 с помощью Setup Wizard (эта процедура аналогична установке других Windows-программ). При этом надо указать, что будут использоваться русские добавления (как именно это сделать, написано в файле readme).
Мы предполагаем, что в системах типа Windows NT/2000/XP вам доступны права администратора.Модификация переменной окружения PATH.Установка русских добавлений ( для этого нужно запустить установочный bat-файл из командной строки).Программы Ghostscript и GSView устанавливаются обычным для Windows способом.

Русские добавления к MiKTeX Установка системы MiKTeX с русскими добавлениями

Опишем процесс установки более подробно.

Помимо дистрибутива MiKTeX 2.0 (он находится в директории miktex.win\miktex20'), используются файлы zcmiktex.zip, unzip.exe (программа разархивирования) и test.tex (тестовый файл для проверки работы установленной системы).

Разархивируйте файл zcmiktex.zip с сохранением структуры поддиректорий. Проще всего это сделать с помощью программы unzip.exe, списав ее вместе с zcmiktex.zip в какую-либо директорию и запустив в этой директории команду unzip.exe zcmiktex.zip Полученную директорию zcmiktex поместите в любое место жесткого диска (например, в 'C:\') и запомните ее адрес (например, 'C:\zcmiktex').Начните установку MiKTeX\ с помощью SetupWizard, перейдя в директорию 'miktex.win\miktex20\2.0' и запустив программу setupwiz.exe. Появится ряд экранов с вопросами: Shared vs. Private Installation

[только для Windows NT/2000/XP и т.п.] Выберите "Install a shared MiKTeX environment".

Installation Directory

Укажите директорию 'C:\zcmiktex\texmf' (с очевидными изменениями, если для zcmiktex было выбрано другое место). Предлагаемую по умолчанию директорию не используйте.

Component Selection

Если на диске достаточно места (необходимо примерно 100Mb), рекомендуется выбрать все компоненты. В любом случае необходимы LaTeXe и LaTeXe Packages, AMSLaTeX & AMS Fonts, MetaPost и PSUtils.

Program Folder

Можно оставить то, что предлагается по умолчанию.

Local TEXMF Tree

Выберите "Create local TEXMF tree "и укажите

C:\zcmiktex\localtexmf в качестве имени директории для генерируемых файлов (с очевидными изменениями, если для zcmiktex было выбрано другое место).



Additional TEXMF Directory Trees

Выберите " Incorporate preexisting TEXMF directory trees" и нажмите Next. На следующем экране нажмите Add и укажите директорию 'C:\zcmiktex\zctexmf' (с очевидными изменениями, если для zcmiktex было выбрано другое место).

После этого нажмите Next; начнется процесс установки. В конце будет предложено модифицировать переменную окружения PATH. От этого нужно отказаться.

Закончите установку.Добавьте C:\zcmiktex\texmf\miktex\bin и C:\zcmiktex\zctexmf\miktex\bin в переменную окружения PATH (с очевидными изменениями, если при установке вы указали другие имена). В Windows 95/98 это можно сделать, добавив в файл autoexec.bat строку типа SET PATH=C:\zcmiktex\texmf\miktex\bin;C:\zcmiktex\zctexmf\miktex\bin;%PATH% после других строк с PATH. В Windows NT/2000/XP нужно модифицировать переменную окружения PATH с помощью Control Panel
System
Advanced
Environment Variables. В Windows ME можно попробовать использовать программу msconfig.exe.{Перезагрузите компьютер!Перейдите в директорию 'C:\zcmiktex\zctexmf' (с очевидными изменениями, если было выбрано другое место для zctexmf) и введите в командной строке install C:\zcmiktex\localtexmf C:\zcmiktex\zctexmf (с очевидными изменениями, если нужно). После localtexmf и zctexmf не должно быть символа '\'.Установите обновления к MiKTeX 2.0. Для этого перейдите в директорию 'miktex.win\miktex20\2.0-updates' и запустите программу mt20up1.exe. Проверьте, что в появившемся окне правильно указана директория, куда был установлен MiKTeX 2.0 (Installation Directory; если там что-то другое, это может быть признаком ошибки при выполнении вами предыдущих пунктов!), после чего нажмите кнопку Install. В конце работы программы нажмите кнопку Close.