Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 10
Текст из файла (страница 10)
е. файл second.log, который можно изучить после завершенияработы программы latex.После следующего сообщения выполнение программы приостанавливается,так как она встретила ошибку.! LaTeX Error: Environment eqution undefined.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help....l.50 \begin{eqution}% пропущена буква ‘а’ в слове equation?Первая строка этого сообщения начинается с восклицательного знака и называется строкой индикации ошибки.
Она содержит описание ошибки. В данномпримере ответ прост — процедуры с именем eqution не существует. Тем не менеев следующих строках сообщения предлагается для объяснения причины ошибкиобратиться к учебникам по LATEX’у или нажать клавишу H и затем Return(или Enter), чтобы получить подсказку на экране.Предпоследние две строки сообщения называют строками локализации ошибки, причём первая заканчивается ошибочной командой \begin{eqution}. Перед40Глава 1.
Пособие для начинающихэтой командой указывается номер строки 50 во входном файле, где эта ошибка находится. Признаком номера строки (по-английски: line) служит буква l сточкой на конце. Вслед за строкой локализации ошибки latex выводит знак вопроса в начале новой строки и ждёт реакции пользователя. В ответ можно либонажать клавишу Enter, чтобы проигнорировать ошибку, либо ввести букву H10 ,чтобы получить рекомендацию относительно дальнейших действий (на английском языке!).
Другие возможные варианты: ввести букву X, чтобы немедленнопрекратить исполнение программы; ввести букву I, чтобы затем набрать исправленный вариант команды (но входной файл потом всё равно придётся исправлять); ввести Q или R, чтобы компилятор больше не останавливался, встретивновые ошибки. В любом случае информация о всех ошибках будет записана вфайл second.log. Его можно использовать для последующего анализа ошибок.Нужно только иметь в виду, что одна действительно существующая ошибка часто вызывает несколько сообщений о наведённых ошибках.
Именно так обстоитдело в нашем примере: из-за одной пропущенной буквы в строке 50 компиляторзафиксирует 4 ошибки в строках 51 и 52, хотя там их нет. Наведённые ошибкиможно смело игнорировать, нажимая клавишу Enter.В приложении B приведено описание многих ошибок и способов их устранения.1.14.Ходит информация по кругуВходной файл является всего лишь вершиной айсберга информации, которую перерабатывает LATEX.
Рис. 1.2 показывает потоки данных при работе компилятораlatex. Большие тексты, такие как наша книга, удобно разбивать на несколькофайлов. Например, исходный текст каждой главы может составлять отдельныйфайл. Однако всегда какой-то файл является главным, или корневым. Именнос него начинается компиляция документа. На рисунке он назван jobname.tex.Корневой файл может состоять из команд \input{chapter} или \inсlude{chapter}, каждая из которых как бы дословно переписывает содержание файла chapter.tex в корневой файл. Дробление больших текстов на небольшие части имеетмного достоинств, которые мы обсудим в разделе 3.8.Информацию, необходимую для своей работы, latex получает, считывая форматный файл с расширением fmt, содержащий в бинарном виде команды, составляющие формат («ядро») LATEX’а, файлы с описанием класса (они имеютрасширение cls) и пакетов (sty).
Классы и пакеты, в свою очередь, могут инициировать загрузку дополнительных файлов, например clo или def.Информацию о шрифтах latex получает из файлов определения шрифтов,имеющих расширение fd. Они сопоставляют декларации переключения шрифтов (раздел 1.11) конкретным шрифтам. Далее latex загружает метрическиефайлы шрифтов с расширением tfm, где записаны ширина и высота всех литер.Собственно шрифты, т. е. изображения литер, программа latex не использует.10Подразумевается, что ввод буквы завершается нажатием клавиши Enter.1.14.
Ходит информация по кругу41Рис. 1.2. Потоки информации при работе компилятора latexПри отсутствии какого-либо файла метрики tfm он автоматически будет созданиз файла mf, где записана программа генерации шрифта.Программа latex считывает информацию также из служебных файлов, которые сама же создаёт при каждой компиляции документа.Файлы с расширением aux, главный из которых имеет имя jobname.aux, содержат информацию, необходимую для перекрёстного цитирования формул, таблиц, рисунков и вообще любых объектов, имеющих номер.В файл jobname.toc записывается информация для формирования оглавления; он создаётся, если исходный текст содержит команду \tableofcontents.Файлы jobname.lot и jobname.lof соответственно содержат список таблиц ирисунков, размещаемых процедурами table и figure.
Эти списки печатаютсякомандами \listoftables и \listoffigures (раздел 3.10).Файл jobname.bib используется для автоматической нумерации ссылок нацитируемую в тексте литературу из библиографической базы данных, содержащейся в файлах с расширением bbl. Работу с библиографической базой данныхвыполняет программа bibtex, распространяемая в составе системы LATEX. Однако список литературы можно составить и без программы bibtex; его печатаетпроцедура thebibliography. В любом варианте latex автоматически перенумерует все ссылки при внесении изменений в текст документа (глава 13).Файл jobname.idx содержит список входов в алфавитный указатель.
Он является входным для программы makeindex, которая записывает отсортированный список в файл jobname.ind. Команда \printindex вставляет его в печатныйдокумент в виде полностью сформатированного алфавитного указателя. Файлjobname.glo содержит список входов в глоссарий (словарь терминов). Его также можно отсортировать с помощью программы makeindex, которая запишетрезультат в файл jobname.gls (глава 14).42Глава 1. Пособие для начинающихПрограммы bibtex и makeindex могут загружать дополнительную информацию для своей работы — так называемые файлы стилей с расширениями bst иist, которые являются аналогами пакетных файлов sty, используемых программой latex.Компилятор latex производит несколько файлов.Файл jobname.dvi содержит смакетированный текст печатного документав формате DVI.
Название формата происходит от слов «DeVice Independent»,что должно было бы означать независимость изображения документа от разрешения печатного устройства. На деле же, конечно, качественное изображениеневозможно получить на выходном устройстве с малым разрешением, но чемвыше разрешение устройства, тем выше качество изображения, причём один итот же документ DVI одинаково пригоден для воспроизведения на совершенноразных устройствах, поскольку не содержит растровых изображений. Например,в dvi-файле записаны координаты литер на каждой странице, но не сами изображения букв.
Предполагается, что литеры будут подставлены обозревателемдокументов DVI непосредственно перед показом документа на экране или припечати на принтере сообразно разрешению выходного устройства.Файл jobname.log (не показан на рисунке) содержит протокол работы компилятора, в том числе всю информацию, которая появляется на экране: загруженные файлы, номера страниц, сообщения об ошибках и т. п.При каждой новой компиляции исходного файла latex обновляет информацию, записанную в служебные файлы, и затем проверяет, совпадают ли новыеверсии служебных файлов со старыми.
В случае несовпадения latex печатаетпредупреждение:LaTeX Warning: Label(s) may have changed.Rerun to get cross-references right11 .Не найденные перекрёстные ссылки изображаются в печатном документе двумявопросительными знаками. Если в текст добавлена новая глава, то при первойкомпиляции информация о ней будет только записана в файл jobname.toc, илишь при следующем проходе она будет включена в оглавление. Однако на завершающей стадии работы над текстом в него вносится обычно очень незначительная правка, которая не меняет содержание служебных файлов.
Поэтому припоследней компиляции проблем, как правило, не возникает. Если же компилятор всё-таки выдал предупреждение, достаточно пропустить входной файл черезlatex ещё раз.Аналогичным образом работает компилятор pdflatex. Он создаёт из исходного текста печатный документ формата PDF. Как видно из сравнения рисунков 1.2и 1.3, существенное отличие состоит в том, что pdflatex загружает шрифты ивнедряет их в выходной файл jobname.pdf. Программа pdflatex может внедрить в документ pdf как растровые шрифты pk (которые при необходимости автоматически генерируются из mf-файлов), так и векторные шрифты PostScriptПредупреждение LATEX’а: Возможно, метки изменились.
Запустите ещё раз для полученияправильных ссылок.111.14. Ходит информация по кругу43Рис. 1.3. Потоки информации при работе компилятора pdflatex(pfb), TrueType и OpenType (ttf). Чтобы уменьшить размер документа PDF,можно отключить внедрение векторных шрифтов, если есть уверенность, что накомпьютере получателя документа имеются все необходимые шрифты.Ещё одно отличие состоит в том, что pdflatex внедряет в выходной файлjobname.pdf рисунки. На рис.
1.3 перечислены форматы графических изображений, с которыми pdflatex умел обращаться на момент издания нашей книги:pdf, png и jpg.Откомпилированный документ можно напечатать на принтере или просмотреть на экране монитора. Способы визуализации файлов dvi и pdf представленына рисунках 1.4 и 1.5 соответственно.Печать и вывод на экран дисплея документов DVI осуществляют специальныепрограммы — DVI-обозреватели.