Верстка в Linux на LaTeX и LyX

Если вы думаете, что версткой и дизайном можно заниматься исключительно на Mac OS X или Windows, то ошибаетесь. Если считаете, что для этого пригодны только продукты от Adobe, Corel и Quark, то ошибаетесь дважды. Проблема не в том, что под Linux нет программных решений DTP. Проблема в другом — многие специалисты, работающие в сфере DTP, не знакомы с миром Linux и даже не подозревают, какие возможности предоставляет софт этой системы для их профессиональной деятельности, сообщает Либератум.

Попробую осветить вопрос DTP в Linux, затронув ключевые продукты по областям применения — растровая графика, векторная графика и собственно верстка.

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

На самом же деле LaTeX — это удобная надстройка над другой системой верстки — TeX, созданной знаменитым ученым, профессором Стэнфордского университета Доналдом Кнутом. Почти 30 лет назад Кнут сделал TeX в ходе работы над своим фундаментальным трудом «Искусство программирования». Изначально TeX был ориентирован на научную среду — ему по плечу была верстка текстов, насыщенных формулами, специальными символами, схемами и так далее. Затем появился LaTeX. Сравнивать TeX и LaTeX можно, лишь сравнив ассемблер с Python. Итак, TeX — это низкоуровневый язык разметки. LaTeX же, грубо говоря, предоставляет более удобный уровень представления верстаемого документа — сам документ, главы, секции, и так далее. Кроме того, функциональность LaTeX расширяется посредством так называемых пакетов.

Приведу небольшой пример. Допустим, есть у вас текст книги на русском языке. Надо быстро и качественно сверстать ее для распечатки на бумаге A4. Берете текст и расставляете в нем команды LaTeX:


\documentclass[a4paper,11pt]{report}
\usepackage[T1,T2A]{fontenc}
\usepackage[koi8-ru]{inputenc}
\usepackage[english,ukrainian,russian]{babel}
\author{(c)2005 Иван Иванов}
\title{Иваниада}
\begin{document}
\maketitle
\tableofcontents
\part[Название первой части]{Название первой части}
\chapter[Название первой главы]{название первой главы}
Текст первой главы.
\part[Название второй части]{Название второй части}
\chapter[Название второй главы]{название второй главы}
Текст первой главы.
\end{document}

Теперь пояснительные комментарии. В documentclass вы задаете класс документа. Наиболее популярные классы таковы: book — книга, report — отчет, article — статья, letter — письмо. Верстку LaTeX берет на себя. Вы можете еще указать разные дополнительные параметры — например, «a4paper,11pt» — размер бумаги A4, печатать 11 пунктом.

Следующие 3 команды usepackage служат для настройки языков, кодировок и пакетов, отвечающих за переносы. Далее устанавливаются значения для author и title, а командой begin начинается блок document, который заканчивается командой end. document здесь выступает в роли ОКРУЖЕНИЯ. Окружение в LaTeX соответствует примерно тому же термину, что и «стиль» в Quark'е. Окружение имеет начальный тэг \begin, после чего в фигурных скобках указывается название окружение. Затем — сам текст, который ты хочешь поместить в окружение. И — замыкающий тэг /end{название окружения}.
Например, в пакете pifont существует окружение itemize для форматирования списка из некоторых элементов, причем каждый элемент предваряется пиктограммой указывающей руки. Пишем:


\begin{dinglist}{43}
\item Nirvana
\item Scorn
\item Guano Apes
\end{dinglist}

Но вернемся к примеру документа. Команда maketitle создает страницу с именем автора и названием документа. Команда tableofcontents автоматически генерирует оглавление на основе логической разбивки документа на части и главы. А разбивка эта осуществляется, как вы догадались, командами \part и \chapter.

При этом обратите внимание на параметры для part [название1]{название2}. Название1, которое заключено в квадратные скобках, отображается в оглавлении. А название2, то есть текст в фигурных скобках, отображается непосредственно на странице конкретной части. Тот же синтаксис касается и названий глав.

Итак, приведенного выше шаблона документа достаточно, чтобы получить в результате готовый PDF, сверстанный по всем современным стандартам. Верстает LaTeX, а вы лишь указываете LaTeX'у, что и каким образом ему надо верстать.

Для преобразования исходного LaTeX-файла в PDF либо Postscript, надо сначала получить файл в промежуточном формате — dvi. Такой файл является результатом обработки LaTeX-файла командой latex: latex -file-line-error-style my_file.tex

Здесь мы обрабатываем LaTeX-файл my_file.tex, и получаем на выходе файл под именем my_file.dvi. Замечу, что параметр file-line-error-style нужен для удобного вывода сообщений об ошибках — с указанием номеров строк, где они возникают.

Теперь можем делать с dvi-файлом все, что заблагорассудится. Можно его просмотреть: xdvi my_file.dvi или dviview my_file.dvi

Можно перегнать в PDF с получением my_file.pdf: dvipdf my_file.dvi
Либо преобразовать в Postscript: dvips -Pcmz my_file.dvi -o my_file.ps

На выходе имеем my_file.ps. А уже для просмотра Postscript и PDF используем Kghostview. Альтернативный вариант преобразования LaTeX в PDF таков: pdflatex my_file.tex

Собственно говоря, LaTeX не является исключительно линуксовой системой верстки, просто исторически сложилось, что именно в UNIX-подобных средах он получил наибольшее распространение. Сам же LaTeX не накладывает каких-либо ограничений на компьютер и систему, в которых работает верстальщик. Одна из современных книг по LaTeX, Latex For Word Processor Users, сверстана Гуидо Гонзато на компьютере с процессором Z80 и памятью 128 килобайт!

В идеале, для работы с LaTeX достаточно хорошего текстового редактора и интерпретатора командной строки вроде Bash. Однако, существует ряд редакторов, которые облегчают LaTeX-разметку. Среди WYSIWYG-редакторов можно выделить LyX. Тем же пользователи, которые предпочитают иметь дело с исходным кодом, подойдут Kile и мой собственный редактор TEA.

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

Завершая тему LaTeX, отмечу, что освоение этой системы верстки полезно не только верстальщикам, но и любому человеку, который, занимаясь научной работой, решит когда-нибудь послать статью в какой-нибудь, пусть даже небольшой университетский журнал. И тут — «новость»! Материалы принимаются в LaTeX. Надо признать, что правила приема статей в таких издания зачастую граничат с абсурдом, однако требование подачи в LaTeX вполне обосновано. Некоторые журналы предоставляют даже свои собственные стили документа для LaTeX.

Главная тема: 
Дистрибутивы: 
Программное обеспечение: