Почти все пользователи нуждаются в какой-либо системе подготовки документов. (Много ли вы знаете энтузиастов компьютерной обработки, которые все еще пользуются ручкой и бумагой? Мы догадываемся, что очень немного). В мире персональных компьютеров обработка слов (word processing) - норма: она включает редактирование и манипуляции с текстом (часто в стиле WYSIWYG - "What-You-See-Is-What-You-Get" - "Что-Вы-Видите-ЕстьТо- Что-Вы-Имеете" - ЧВВЕТЧВИ) и получение печатных копий, содержащих рисунки, таблицы и другой гарнир.
В мире UNIX обработка текстов (text processing)- вещь более естественная, чем классическая концепция обработки слов. Вместо того, чтобы вызывать специальные средства обработки слов, исходный текст можно модифицировать любым текстовым редактором, таким как vi или Emacs. После подготовки текста пользователь форматирует текст специальными программами, преобразующими его к нужному для печати виду. Это в чем-то аналогично программированию на языке вроде Си, и "компилированию" текста в пригодную для печати форму.
В Linux много текстовых
процессоров. Один из них groff
- GNU версия классического форматера
текстов nroff
, первоначально созданного в Bell Labs и до сих пор
используемого во многих UNIX. Другой современный текстовый процессор - TeX,
создан знаменитым в компьютерном мире Дональдом Кнутом (Donald Knuth). Доступны
диалекты TeX, такие как LaTeX.
Текстовые процессоры, такие
как TeX и groff
значительно различаются по синтаксису языков форматирования.
Предпочтение той или иной системы форматирования в значительной мере базируется
на том, какие имеются вспомогательные утилиты и насколько система вам по вкусу.
Например, некоторые люди
считают groff
несколько заумным, поэтому они используют TeX, который
более понятен для хомо сапиенс. Между тем, groff
может давать ясный
ASCII выход, легко читаемый на терминале, в то время как TeX прежде всего предназначен
для вывода на печать. Но существуют многочисленные программы, позволяющие получить
читаемый текст из отформатированных с помощью TeX документов или конвертирующих
TeX, например, в groff
.
Другой текстовый процессор
texinfo
- расширение TeX, используемое для подготовки программной
документации в Free Software Foundation. texinfo
может формировать
печатный документ или гипертекст "Info" для просмотра на экране на основе одного
исходного файла. Файлы Info - это основной формат для документирования, используемый
в GNU, в частности в Emacs.
Текстовые процессоры широко используются в компьютерном мире для подготовки статей, диссертаций, статей для журналов и книг (типографский вариант этой книги был подготовлен с использованием LaTeX). Возможность обрабатывать исходный язык как текстовый файл открывает двери.
Как выглядит язык форматирования? В общем случае он содержит сам текст с "управляющими кодами" для производства заказанных действий, таких как изменение фонтов, установление полей, формирование страниц и т.д.
В качестве примера возьмем следующий текст:
Mr. Torvalds:
We are very upset with your current plans to implement
post-hypnotic suggestion in the Linux terminal driver code.
We feel this way for three reasons:
1. Planting subliminal messages in the terminal driver is not
only immoral, it is a waste of time;
2. It has been proven that ``post-hypnotic suggestions'' are
ineffective when used upon unsuspecting UNIX hackers;
3. We have already implemented high-voltage electric shocks,
as a security measure, in the code for login.
We hope you will reconsider.
Этот текст на языке форматирования LaTeX будет выглядеть следующим образом:
\begin{quote}
Mr. Torvalds:
We are very upset with your current plans to implement {\em post-
hypnotic
suggestion\/} in the {\bf Linux} termi-
nal driver code. We feel this
way for three reasons:
\begin{enumerate}
\item Planting subliminal messages in the ker-
nel driver is not only
immoral, it is a waste of time;
\item It has been proven that ``post-hypnotic sugges-
tions'' are ineffective
when used upon unsuspecting UNIX hackers;
\item We have already implemented high-voltage elec-
tric shocks, as a
security measure, in the code for {\tt login}.
\end{enumerate}
We hope you will reconsider.
\end{quote}
Автор входит в "исходный" текст, приведенный выше, используя любой текстовый редактор, и генерирует форматированный выход, обрабатывая текст с помощью LaTeX. На первый взгляд такой язык может показаться достаточно заумным, но в действительности он очень прост в освоении. Использование текстового процессора обеспечивает поддержку типографских стандартов. Например, все перечисленные в рамках документа страницы будут выглядеть одинаково. Пишущий может сосредоточиться на тексте, а не на том, как это следует оформлять с точки зрения типографских требований.
Процессоры слов типа WYSIWYG привлекательны по многим причинам: они обеспечивают мощный (а иногда и сложный) визуальный интерфейс для редактирования документов. Но этот интерфейс традиционно ограничен желательными и приемлемыми для пользователя формами выдачи. Так, многие процессоры имеют средства подготовки к печати математических формул.
Преимущество текстовых процессоров состоит в том, что они позволяют описывать именно то, что вы хотите. Они позволяют также редактировать исходный текст любым текстовым редактором и затем конвертировать в различные форматы. Платой за такую гибкость является отсутствие тех качеств интерфейса, которые есть у WYSIWYG.
Многие пользователи процессоров слов привыкли видеть отредактированный текст сразу в процессе редактирования. С другой стороны, при использовании текстового процессора пишущий не заботится о том, как будет выглядеть уже отформатированный текст. Пишущий лишь должен иметь представление о том, какие действия произведут вставляемые им команды форматирования.
Есть программы, которые
позволяют посмотреть на графическом дисплее вид отформатированного документа
перед его печатью. Например, программа xdvi
отображает "независимый
от устройства" файл, сгенерированный TeX под X Window. Другое приложение - xfig
,
обеспечивает графический интерфейс WYSIWYG для рисунков и диаграмм, который
в последующем конвертируется в команды текстового процессора, включаемые в документ.
Следует напомнить, что текстовые
процессоры, вроде nroff
, появились задолго до процессоров слов.
Многие предпочитают использовать текстовые процессоры из-за их гибкости и независимости
от графической среды. В любом случае, в Linux имеется процессор слов idoc, а
также скоро ожидается появление коммерческих процессоров слов. Но если вы не
хотите расставаться с процессором слов, к которому вы привыкли в MS-DOS, вы
всегда можете использовать MS-DOS или другую операционную систему в дополнение
к Linux.
Существует и много других
утилит текстовых процессоров. Мощная система METAFONT используется для проектирования
фонтов в TeX. Другие программы включают ispell
- интерактивный
контролер правописания, makeindex
- используется для генерации
индексов в документах, подготовленных в LaTeX. Существует много макропакетов
для groff
и TeX для форматирования документов различных типов и
математических текстов, а также тьма конверторов, транслирующих TeX или groff
во многие другие форматы.