РуЛиб - онлайн библиотека > Титаренко Иван > Графика. Дизайн. Мультимедиа > Руководство пользователя GNU troff > страница 2

Читаем онлайн «Руководство пользователя GNU troff» 2 cтраница

гибкий язык, была написана новая версия roff под названием «nroff». Программа имела сложный синтаксис, но послужила основой для всех будущих версий.

Для фотонаборной машины CAT от Graphic Systems Оссанна написал собственную версию nroff. Ее назвали «troff».

Фактически это была одна и та же программа, за некоторыми исключениями: nroff предназначалась для вывода на построчные принтеры и символьные терминалы.

Позднее началась работа над препроцессорами. Программы транслировали определенные части документа в troff, очень естественно применяя конвейеры Unix.

Так, препроцессор «eqn» позволял описывать математические формулы простым, интуитивно понятным способом, а «tbl» форматировал таблицы. Препроцессор «refer» (и аналогичная программа «bib») обрабатывал цитаты в документе с помощью библиографической базы данных.

К сожалению, программа troff Оссанны была написана на языке ассемблера PDP‐11, она специально создавалась для фотонаборной машины CAT. Оссанна переписал программу на C, хотя теперь она состояла из 7000 строк кода без комментариев и все еще зависела от CAT. Поскольку машины CAT больше не поддерживались производителем, потребовались правки кода. Прежде чем это удалось сделать, Оссанна умер от сердечного приступа в больнице.

Тогда же Брайан Керниган взял на себя задачу переписать troff. Его версия создавала независимый от устройства код, постпроцессоры читали и транслировали его в соответствующие команды принтеров. Кроме того, новая версия troff (названная ditroff) имела несколько расширений.

Благодаря дополнительным возможностям появились наборы препроцессоров. Препроцессор «pic» обеспечивал функции рисования, а препроцессор «grap» работал с графами.

Джеймс Кларк начал работу над GNU‐реализацией ditroff в начале 1989 г. Первая версия groff 0.3.1 была выпущена в июне 1990 г. В этой версии появились следующие модификации: добавлены препроцессоры «soelim», «pic», «tbl» и «eqn», также постпроцессоры для символьных устройств, POSTSCRIPT, TeX DVI и оконной системы X Windows.

Программа GNU troff устранила необходимость в отдельной программе nroff, добавились макросы «me» и собственная реализация «man».

Начиная с 1999 года у groff появились сопровождающие (пакет несколько лет оставался сиротой). В результате добавили новые функции и программы, такие как «grn», препроцессор для изображений гремлинов и устройство вывода HTML и XHTML.

Основные возможности

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

Поскольку groff применяет сложные средства низкого уровня, чтобы упростить форматирование и для рутинной работы были созданы программы‐макросы. Макросы можно собирать вместе в «пакеты». Доступно несколько пакетов макросов, наиболее распространенными считаются «man», «mdoc», «me», «ms» и «mm».

Хотя groff предоставляет множество функций, необходимых для форматирования документа, некоторые операции, например, рисование, будет сложно реализовать простыми средствами. Поэтому были написаны программы‐препроцессоры, работающие с собственными командами управления. Препроцессоры способны отличать свои команды от других запросов с помощью маркеров.

Для передачи данных препроцессорам используются потоки Unix. Также для создания документа может применяться любое количество препроцессоров, поэтому препроцессоры объединяются в один конвейер. Чтобы работать с groff, пользователю не нужно создавать конвейер, но необходимо указать добавляемые препроцессоры.

В настоящее время groff включает препроцессоры для создания таблиц («tbl»), оформления уравнений («eqn»), рисования («pic» и «grn»), обработки библиографии («refer»), вывода формул химических структур («chem»). Ассоциированная программа, полезная при работе с препроцессорами, называется «soelim».

В качестве дополнительного пакета имеется бесплатная реализация препроцессора создания графиков «grap».

Уникальным для «groff» является препроцессор «preconv», он позволяет обрабатывать документы в различных входных кодировках.

Существуют и другие препроцессоры, но, к сожалению, бесплатных реализаций нет.

Groff создает независимый от устройств код, он может быть передан в постпроцессор для работы с конкретным устройством. В настоящее время groff поддерживает постпроцессоры для устройств POSTSCRIPT, символьных терминалов, оконной среды X Windows (для предварительного просмотра), подготовки файлов формата TeX DVI, также обеспечивает поддержку принтеров HP LaserJet 4 и Canon LBP (CAPSL), вывод HTML, XHTML и PDF.

О документе. Большая часть руководства взята из существующих документов, в первую очередь это страницы руководства groff Джеймса Кларка и замечания Эрика Оллмана к пакету макросов «me». Раздел пакета макросов