При создании документов есть основных два подхода. Первый -- интерактивный: текст набирается на экране именно в том виде, в котором будет выведен на печать. Этот принцип называется "WYSIWYG" -- "What You See Is What You Get" -- "что видите, то и получите". Именно этот подход используется в большинстве т.н. "текстовых процессоров", входящих в состав офисных пакетов. Самым известным примером является MS Word. Существуют офисные пакеты и под Linux -- самые известные из них Star Office, Applix Office и KDE Office. Второй подход -- набирать текст в обычном текстовом редакторе (в виде ASCII-файла), вставляя в него специальные управляющие последовательности, определяющие разметку документа, а также служащие для вставки специальных символов, отсутствующих в ASCII. Ярким представителем такого подхода является семейство пакетов на основе TEX, наиболее известный из которых -- LATEX. У обоих подходов есть как достоинства, так и недостатки. Первый удобен для набора небольших текстов, когда сразу буквально "за пару минут" создается то, что надо напечатать. Но при наборе крупных документов возникают проблемы. Во-первых, как сохранить во всем документе единый стиль -- ведь возникает желание просто "выделить вот это жирным шрифтом", "добавить пару пробелов, чтобы оно перескочило на следующую страницу" и т.д. А при малейшем изменении (другой размер бумаги, вставка дополнительного абзаца) результаты всех этих ухищрений и "подгонки по месту" идут прахом. Во-вторых, в текстовых процессорах лишь сравнительно недавно появилась поддержка разного рода перекрестных ссылок, и использование их менее "естественно", чем в том же TEX. С другой стороны, TEX очень хорошо приспособлен для создания больших и очень больших документов -- те же перектрестные ссылки существуют в нем "от рождения". Кроме того, TEX существует практически для всех платформ, и перенос текста с одной на другую не представляет никаких проблем (а зачастую просто ничего не требует). Но для набора документов "содержащих все эти малопонятные значки" и выглядящих для непосвященного как китайская грамота, требуются определенные способности и навык. (Собственно, технология создания документов при этом очень похожа на используемую при разработке программ -- редактирование -> компиляция -> просмотр; при работе с большими документами даже используется та же самая утилита make.) Какой подход выбрать -- зависит от конкретных задач и от конкретного человека. Но есть еще и третий, промежуточный вариант. Вы набираете документ "почти" как в текстовом процессоре, сразу видя выделение разными шрифтами/размерами, математические формулы и секционирование, но редактор "внутри себя" транслирует это все в управляющие последовательности TEX, а для перевода в печатный вид "пропускает" документ через TEX. В Windows для этого служит пакет Scientific Word, а в Unix -- пакет LYX. | ||
Форматы графических изображений делятся на два вида -- растровые и векторные. В первом случае изображение записывается в виде матрицы точек (обычно упакованной), а во втором -- в виде некоторого количества команд типа "эллипс с центром там-то и с такими-то полуосями". Примерами растровых форматов являются GIF, JPG, BMP и XPM, а векторных -- CDR, WMF и PostScript (PS/EPS). У векторных изображений есть огромное достоинство -- они сохраняют качество при масштабировании и поворотах (даже многократных), в то время как у растровых оно резко падает -- при увеличении становятся заметны "ступеньки", а при уменьшении появляются "разрывы" в линиях. При создании документов для печати практически всегда используются векторные изображения (за исключением, например, "снимков с экрана"). Если в Windows есть совершенно необъятное количество форматов (буквально у каждой программы -- свой), то в Unix универсальным векторным форматом является Encapsulated PostScript (EPS). Большинство программ создания/редактирования изображений умеют создавать файлы в формате EPS или как минимум PS. | ||
Как явствует из названия, xfig предназначен для создания векторных изображений. Изображения состоят из объектов, таких, как эллипс, прямоугольник, ломаная, текст и т.д. Можно также вставлять растровые изображения в форматах GIF, JPG, XPM, XBM и векторные в EPS. Для изображений xfig использует собственный формат .fig (изображения .fig являются обычными ASCII-файлами, что обеспечивает переносимость между разными платформами). Xfig умеет экспортировать изображения в несколько векторных форматов (PS/EPS, несколько подвидов LaTeX-картинок, HPGL) и в несколько растровых (включая GIF и JPG). Очень подробная документация по всем аспектам использования и настройки Xfig есть в его дистрибутиве. Она расположена по адресу
Как всегда в таких случаях лучше всего обратиться именно к ней, как к первоисточнику, мы же остановимся на основных приемах использования программы и на некоторых не очень очевидных аспектах. | ||
Система TEX была создана Дональдом Кнутом (Donald Knuth) около двадцати лет назад как средство для удобной подготовки научных документов. С самого начала в TEX закладывались средства для секционирования документов, работы с перекрестными ссылками, а также для набора сложных математических формул. Документы набираются в виде обычных ASCII-файлов, содержащих как текст, так и специальные команды, определяющие разметку документа, служащие для вставки символов, отсутствующих в ASCII и т.д. Эти файлы (они обычно имеют расширение ".tex") транслируются специальной программой в т.н. файлы ".dvi" (DeVice Independent -- независимые от устройства вывода), которые могут потом отображаться на экране или выдаваться на печать.
Собственно, обычно пользуются не системой TEX в чистом виде, а надстройками над ней. Наиболее популярен пакет LATEX, созданный Лесли Лампортом (Leslie Lamport); другой широко распространенный пакет -- AMS-TEX, созданный в Американском Математическом Обществе (American Math Society). TEX -- огромная система, по которой существует море документации и написана масса книг. Мы же коснемся лишь некоторых аспектов использования TEX в Linux. | ||||
Установка В Linux в основном используются два дистрибутива TEX: teTeX и nTeX. В дистрибутиве RedHat имеется teTeX, поэтому его мы и будем рассматривать. teTeX поддерживает как LATEX, так и AMS-TEX. В настоящее время широкое хождение имеют два подвида LATEX: LaTeX 2.09, документы в котором начинаются с "\documentstyle", и более новый LaTeX2e, в котором используется "\documentclass". teTeX поддерживает оба варианта, и все изложение в данном разделе строится на основе LaTeX2e. Пакеты, составляющие teTeX, могут быть установлены непосредственно при инсталляции системы. Это следующие пакеты: tetex, tetex-dvips, tetex-latex tetex-xdvi, tetex-afm, tetex-doc и tetex-dvilj. Все вместе они занимают почти 80М, но без последних двух в принципе можно обойтись, что экономит около 25М. Основные программы Для компиляции .tex-файлов в .dvi используется программа latex. Ей указывается имя .tex-файла. Для просмотра .dvi-файлов на экране служит программа xdvi. Для перевода .dvi -> .ps применяется утилита dvips. Формат ее вызова обычно такой:
Создание шрифтов "на лету" При выводе документов как на экран, так и на принтер используются растровые шрифты. Но все возможные шрифты для всех возможных размеров занимали бы очень много места. Поэтому в дистрибутив входят исходные векторные шрифты, а растровые генерируются из них по мере необходимости. Например, при первом вызове программа xdvi запустит процесс генерации шрифтов, который может продолжаться несколько минут. Если же нужные шрифты уже есть (т.е. были сгенерированы заранее), то ничего делать уже не потребуется и xdvi сразу отобразит файл. Аналогично ведет себя и dvips. Если же в течение 10 дней шрифты не использовались, то они автоматически удаляются, чтобы не занимать место (этим занимается cron-сценарий /etc/cron.daily/tetex.cron) и при надобности будут сгенерированы заново. | ||
Хотя teTeX и содержит кириллические шрифты, он во-первых, "не понимает" тексты, набранные обычнами русскими символами, а во-вторых, не знает правил переноса русских слов. Для русификации teTeX следует установить пакет tetex-russian от АО "УрбанСофт". В ИЯФ его можно взять по адресу ftp://rdist.inp.nsk.su/pub/Linux/contrib/ursoft/RPMS/tetex-russian-2.0-6.i386.rpm Документы на русском должны при этом начинаться с преамбулы вида
Для переключения таблиц переносов в начале английского и русского текста следует использовать команды "\English" и "\Russian" соответственно. Для компиляции файлов надо пользоваться программой rlatex вместо latex. Пример небольшого .tex-файла с русским текстом:
Результат компиляции этого файла приведен ниже.
К сожалению, у пакета tetex-russian есть один существенный недостаток: русские буквы в математических формулах не поддерживаются -- при выводе они попросту пропадают. | ||||||
Для того, чтобы вставить в документ .eps-картинку, надо в преамбуле указать пакет "graphicx" (директивой "\usepackage{graphicx}"), а непосредственно в текст изображения вставляются командой "\includegraphics". Пример:
При этом изображение будет иметь исходный размер. Чтобы изменить ширину и/или высоту, можно указать необязательный параметр "width=ширина" и/или "height=высота". Если указана только ширина или только высота, то второй размер будет автоматически выбран так, чтобы сохранились пропорции. Примеры: \includegraphics[width=5cm]{results.eps} \includegraphics[width=4cm,height=23mm]{results.eps} Вставка изображений в .tex-документы подробно описана в файле входящем в состав пакета tetex-doc. | ||
LYX(произносится "ликс") -- это система подготовки текстов, которая позволяет набирать документы с разбивкой на разделы и подразделы, с перекрестными ссылками и сложными математическими формулами почти так же, как в обычном текстовом процессоре (типа MS Word). Но, хотя LYX и показывает документ на экране почти в режиме WYSIWYG, реально этот пакет является лишь простым интерфейсом к системе LATEX. Подобно тому, как LATEX избавляет человека от забот о внешнем виде документа, позволяя сосредоточиться на содержании, так и LYX избавляет пользователей, не имеющих наклонностей к программированию, от ввода специфичных команд LATEX, позволяя сосредоточиться на смысле вводимого текста. LYX хранит документы в своем собственном формате .lyx, очень похожем на .tex. Он позволяет компилировать документы в .dvi-файлы (прозрачно для пользователя переводя .lyx в .tex), а также импортировать и экспортировать .tex-файлы. К LYX прилагается большое количество документации, доступное интерактивно из меню Help. Файлы документации следует читать именно в том порядке, как они перечислены в меню. Документация сама является .lyx-файлами, которые можно скопировать к себе в директорию и экспериментировать с ними. | ||
Установка LYX является свободно распространяемой программой, и располагается в разделе "пожертвований" -- contrib. Для RedHat 5.x в ИЯФ это директория ftp://rdist.inp.nsk.su/pub/Linux/contrib/libc6/i386/ Там имеется три версии, последняя и наиболее стабильная из которых -- lyx-1.0.1-2.i386.rpm. Кроме того, пакет lyx требует пакет xforms, который есть в той же директории. Запуск Для вызова LYX достаточно набрать команду "lyx". При первом запуске программа создаст в home-директории пользователя поддиректорию .lyx/ для хранения персональных настроек и выполнит процесс начальной конфигурации, который сопровождается выдачей на экран большого количества диагностических сообщений. После этого на экране появится окно программы, в которое при первом старте будет автоматически загружен файл с перечислением основных достоинств LYX.
| ||||
Секционирование и выделение шрифтом
Для ввода заголовков разделов и подразделов, списков, библиографии и т.д. служит меню выбора стиля в левой части панели инструментов -- технология абсолютно идентичная используемой в MS Word. Обычный текст имеет стиль "Standard", разделы -- "Section", подразделы -- "Subsection" и т.д., аналогично LATEX. Для смены начертания используются кнопки . Первые две включают "выделенный" (обычно наклонный) и "жирный" шрифт, а третья служит для пользовательского начертания -- его можно определить при помощи команды Layout -> Character... Перекрестные ссылки и оглавление Для создания перекрестной ссылки надо сначала "пометить" некий раздел текста. Для этого следует поставить курсор сразу после заголовка раздела, выбрать пункт меню Insert -> Label... и в появившемся окне набрать название метки, например -- "sec:multiline". После этого в позиции курсора появится серый прямоугольник, содержащий название метки -- . Теперь можно в любом месте документа поставить ссылку на эту метку -- достаточно вызвать команду Insert -> Cross-Reference... и в появившемся окне выбрать нужную метку. В позиции курсора появится "кнопка" с именем метки, на которую сделана ссылка -- . Если щелкнуть мышью на этой кнопке, то курсор перепрыгнет к соответствующей метке.
Вставить оглавление можно при помощи команды Insert -> Lists & TOC -> Table of Contents. При этом появляется "кнопка" (щелкнув на которой можно посмотреть оглавление). Специальные символы Попытка несколько раз подряд нажать <Пробел> или <Enter> ни к чему не приводит -- пробелы между словами и переносы строк LYX расставляет сам. Но можно вставлять специальные символы "неразбивающий пробел", отображающийся как ("~" в TEX) и "разрыв строки", отображающийся как ("\\" в TEX). Это можно сделать как из меню Insert->Special Character, так и при помощи клавиш <Ctrl+Пробел> и <Ctrl+Enter> соответственно. Вставка математических формул При наборе математических формул используются практически те же приемы, что и в программах MS Equation и MathCad. Чтобы вставить формулу, надо нажать кнопку . При этом появится фиолетовый прямоугольник, который будет увеличиваться по мере ввода формулы, и LYX перейдет в математический режим. Формулы отображаются синим цветом.
Формулу можно набирать или как в обычном .tex-файле, используя символы "^" и "_" для набора верхних и нижних индексов, а "\" -- для специальных символов и функций, или же при помощи специальной панели инструментов, вызываемой командой Math Panel из меню Math. Четыре светлых кнопки в левой верхней ее части служат для ввода символа квадратного корня, дробей, скобок и скобок/стрелок над и под формулой. Шесть кнопок в левой нижней части панели используются для вставки разнообразных спецсимволов -- греческих букв, символов отношений и математических операций и т.д. Выйти из режима ввода формулы можно просто выведя курсор куда-нибудь вне ее, или же нажав <Esc>. Выйти из режима ввода индекса можно или так же выведя курсор вне индекса, или нажав <Пробел> (вообще, <Пробел> в формулах выводит курсор "на уровень выше"). Для редактирования формулы достаточно поместить курсор внутрь нее --
хоть мышью (что обычно проще для "навигации" внутри формулы), хоть
клавишами со стрелками.
Вставка команд LaTeX LYX позволяет вставлять в текст команды LATEX (это нужно, например, для тех команд, аналоги которых в LYX отсутствуют, а также для собственных макросов). Для этого надо набрать команду прямо в тексте, выделить ее, и нажать на кнопку ; команда при этом станет отображаться шрифтом красного цвета. Можно также нажать перед набором команды. При этом можно набирать довольно большие фрагменты на языке LATEX, но при их наборе вместо <Enter> следует нажимать <Ctrl+Enter>. Компиляция, просмотр и работа с файлами Для просмотра того, как будет выглядеть документ после прогонки через LATEX, служат команды View dvi и View PostScript из меню File. При их выборе LYX автоматически производит компиляцию файла во временный файл .dvi (а при надобности -- и в .ps), а затем вызывает программу просмотра -- xdvi или gv. Для того, чтобы из файла .lyx получить .tex, надо воспользоваться командой File -> Export -> as LaTeX.... Аналогично можно получить файлы .dvi и .ps. (Несмотря на "..." после названий команд, LyX не спрашивает имя файла, в который надо экспортировать, а просто использует имя исходного файла, добавляя к нему расширение ".dvi" или ".ps".) Импортировать .tex-файл можно при помощи команды File -> Import -> LaTeX... | ||||||||||||
Для того, чтобы LYX позволял создавать документы на русском языке, требуется выполнить три действия:
Файл конфигурации Настроить шрифты можно непосредственно из LYX -- для этого служит команда Screen Fonts... из меню Options, но лучше это сделать в файле конфигурации, вместе со вторым пунктом. LYX считывает свою конфигурацию из файла lyxrc.defaults в директории /usr/share/lyx/, но свои "персональные" изменения этих настроек можно поместить в файл ~/.lyx/lyxrc. В данном случае достаточно всего двух строк -- для замены компилятора и кодировки шрифтов: \latex_command "rlatex" \screen_font_encoding koi8-* В качестве примера lyxrc можно воспользоваться файлом /usr/share/lyx/lyxrc.example. Преамбула документа Преамбула меняется при помощи команды LaTeX Preamble... из меню Layout. Чтобы эта преамбула автоматически добавлялась к вновь создаваемым документам, следует воспользоваться командой Save layout as default из того же меню. | ||
| ||||