next up previous contents
Next: Языки программирования и утилиты Up: Информация о системе Linux Previous: Информация о системе Linux

Редактирование текста и печатание документов

Почти любому пользователю иногда требуется изготовить какие-либо документы. В мире персональных компьютеров существует стандартный подход к изготовлению документов: в среде, реализующей принцип WYSIWYG (сокращение от What You See Is What You Get -- что видим на экране, то и будет на бумаге), готовится текст (если требуется -- то с графиками, таблицами и иными элементами графического оформления), и затем этот текст печатается.

В среде UNIX имеются коммерческие WYSIWYG-редакторы (word processors) таких фирм как, как Corel, Applix, Star Division. Однако более употребительными являются текстовые процессоры (text processors), концепция которых принципиально отличается от WYSIWYG. Собственно текст в таких программах пишется на специальном языке, содержащем команды по форматированию текста. Такой текст может быть набран в любом редакторе, например, vi или emacs. После того, как текст (с соответствующими форматирующими командами) набран, его обрабатывает специальная программа, результат работы которой может быть выведен непосредственно на печатающее устройство. Эта схема напоминает программирование на языке типа C с последующей "трансляцией" текста программы на язык печатающего устройства.

В системе Linux имеется несколько текстовых процессоров. Один из них -- groff, GNU-версия классического текстового процессора troff, разработанного компанией Bell Labs и все еще популярного в мире UNIX. Один из современных текстовых процессоров носит имя TeX. Эта программа написана Дональдом Кнутом (Donald Knuth), широко известным специалистом по теории программирования. Имеются также модификации системы TeX, например -- LaTeX.

Текстовые процессоры (TeX, groff) в основном различаются синтаксисом языка форматирования. Выбор текстового процессора определяется тем, имеются ли в нем нужные вам средства, а также из личных пристрастий.

Многие считают язык, используемый в программе groff, несколько запутанным, и поэтому предпочитают TeX. С другой стороны, groff вырабатывает файл в формате ASCII, и этот файл удобнее читать с экрана; программа TeX, в свою очередь, предназначена в основном для вывода на принтер. Чтобы вывести в формате ASCII документ, обработанный программой TeX, или чтобы преобразовать исходный TeX-файл в формат groff, требуются специальные программы.

Еще один текстовый процессор -- texinfo -- также имеет в своей основе TeX. Эта программа разработана Free Software Foundation и используется для подготовки документации к программному обеспечению. Процессор textinfo может из одного и того же исходного файла сделать как печатный документ, так и гипертекстовый "Info"-документ, который удобно просматривать на экране. Формат "Info" -- основной, используемый в документации к GNU-программам (таким, как emacs).

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

Исходные файлы для текстовых процессоров содержат главным образом собственно текст. Помимо него, имеются также управляющие команды (control codes), которые могут, например, переключать тип или размер шрифта, размеры отступа, формировать списки и т.п.

Рассмотрим, для примера, следующий текст.

Уважаемый г. Торвальдс.

Мы были очень огорчены, узнав о Ваших планах включить в программу драйвера терминала системы Linux, помимо прочего, средства гипноза. У нас есть три аргумента против ваших намерений.

  1. Воздействие на подсознание с помощью драйвера терминала не только аморально, это еще и трата времени.
  2. Доказано, что гипнотические внушения не воздействуют на UNIX-хакеров, если те о них не подозревают.
  3. Мы уже внесли в систему login в качестве защитной меры удар током высокого напряжения.
Очень надеемся, что Вы измените свое решение.

Соответствующий исходный текст в формате LaTeX может выглядеть, например, так:

\begin{quote}
Уважаемый г. Торвальдс.

Мы были очень огорчены, узнав о Ваших планах включить
в программу драйвера терминала системы Linux, помимо
прочего, {\em средства гипноза}. У нас есть три аргумента
против ваших намерений.
\begin{enumerate}
\item Воздействие на подсознание с помощью драйвера
терминала не только аморально, это еще и трата времени.
\item Доказано, что гипнотические внушения не воздействуют
на UNIX-хакеров, если те о них не подозревают.
\item Мы уже внесли в систему {\tt login} в качестве
защитной меры удар током высокого напряжения.
\end{enumerate}
Очень надеемся, что Вы измените свое решение.
\end{quote}

Подобный текст может быть набран в любом текстовом редакторе. Печатный документ получается после того, как исходный текст будет обработан программой LaTeX. На первый взгляд, язык исходных файлов может показаться смутным; в действительности, понять его довольно легко. Используя текстовые процессоры, легко добиться единообразия и стандартизации оформления документа. Так, например, все нумерованные списки в одном документе будут оформлены одинаково, если только автор не изменит какие-либо установки в системе, создающей списки. Целью такого подхода является дать возможность автору концентрироваться на тексте, а не на правилах его оформления. При написании исходного текста в текстовом редакторе (text editor) обычно никто не задумывается о том, как текст будет выглядеть, если его напечатать. После того, как собственно текст готов, в него вносятся детали оформления, имеющие вид форматирующих команд.

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

Еще одно ощутимое преимущество текстовых процессоров заключается в том, что можно точно указать, какой именно стиль оформления (формат) следует использовать. Во многих случаях для текстовых процессоров такой формат указывать необходимо. Текстовые процессоры позволяют редактировать исходный текст с помощью любого текстового редактора, не полагаясь на спецификации формата документа, которые в WYSIWYG-редакторах обычно скрыты за малопрозрачным интерфейсом. Кроме того, исходный текст может быть легко преобразован в исходный текст другого формата. Цена за эту гибкость и эти мощные средства текстовых процессоров -- отсутствие возможности WYSIWYG-редактирования.

Некоторые программы позволяют перед печатью просмотреть текст, обработанный текстовым процессором, на графическом дисплее. Например, программа xdvi позволяет просматривать на экране dvi-файлы (сокращение от DeVice Independent -- т.е. графические файлы, которые выглядят одинаково на любом устройстве), созданные процессором TeX, в системе X Window. Имеются программы типа xfig и gimp, в которых в режиме WYSIWYG возможно рисовать картинки и диаграммы. Потом эти картинки и диаграммы конвертируются в язык текстовых процессоров и могут быть включены в исходный текст документа.

Текстовые процессоры типа troff использовались задолго до появления WYSIWYG-редакторов. Благодаря функциональной гибкости и независимости от типа графических устройств, они все еще предпочитаются многими пользователями.

Для текстовых процессоров имеется множество специальных приложений. Отметим мощную систему METAFONT, создающую шрифты для семейства TeX. Эта система включена в общий комплект средств системы TeX, используемых в системе Linux. Из других программ можно назвать ispell -- интерактивная программа проверки и исправления ошибок английского правописания, makeindex -- программа для составления указателей в системе LaTeX. Имеется еще много средств, созданных на основе процессоров TeX\ и troff и предназначенных для разнообразного форматирования технических и математических текстов. Также можно найти программы, которые транслируют исходные тексты для программ TeX и troff в многочисленные иные форматы.

Относительно новым текстовым процессором является YODL, созданный Карелом Кубатом (Karel Kubat). YODL -- это простой в освоении язык, в котором имеются фильтры для создания различных выходных форматов, таких, как LaTeX, SGML и HTML.gif


next up previous contents
Next: Языки программирования и утилиты Up: Информация о системе Linux Previous: Информация о системе Linux

root
Sun Aug 29 12:01:30 MSD 1999