Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

TROFF ( / т я г ɒ е / ), сокращение от «Текстовод Roff», является основным компонентом системы обработки документов , разработанного AT & T Corporation для Unix операционной системы. troff и связанный с ним nroff были разработаны на основе оригинального roff .

В то время как nroff был предназначен для вывода на терминалы и линейные принтеры, troff был предназначен для вывода на системы набора , в частности, Graphic Systems CAT , который был представлен в 1972 году. Оба использовали один и тот же базовый язык разметки, и обычно можно было использовать один исходный файл. используется nroff или troff без изменений.

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

Для различных стилей документов созданы обширные пакеты макросов . Типичное распределение Troff включает меня макросы для форматирования научных работ, человека и mdoc макросов для создания Unix страницы человека , мв макросов для создания монтируемых на прозрачных пленки , а мс и мм макросы для писем, книг, технических записок и отчетов.

История [ править ]

TROFF « происхождение s может быть прослежена до форматирования текста программы под названием СТОК , которая была написана Jerome H. Saltzer для MIT » s CTSS операционной системы в середине 1960-х годов. (Название якобы произошло от фразы « Я убегу от документа» .)

Боб Моррис портировал ее на архитектуру GE 635 и назвал программу roff (сокращение от сток ). [ необходима цитата ] Он был переписан как rf для PDP-7 , и в то же время (1969) Дуг Макилрой переписал расширенную и упрощенную версию roff на языке программирования BCPL .

Первая версия Unix была разработана на PDP-7, которая находилась в Bell Labs . В 1971 году разработчики хотели получить PDP-11 для дальнейшей работы над операционной системой. Чтобы оправдать стоимость этой системы, они предложили внедрить систему форматирования документов для патентного отдела Bell Labs. [1] Эта первая программа форматирования была повторной реализацией roff Макиллроя , написанной Джо Ф. Оссанной .

Когда им понадобился более гибкий язык, была написана новая версия roff под названием nroff ( более новая «roff» ), которая легла в основу всех будущих версий. Когда у них появился фотонаборный аппарат Graphic Systems CAT , Оссанна модифицировала nroff для поддержки нескольких шрифтов и пропорционального интервала . Названный troff , от слова « наборщик roff» , его сложный продукт поразил производителя наборного устройства и смутил рецензентов , которые думали, что рукописи, использующие troff, публиковались и раньше. [2] [3] Таким образом, имя troff произносится/ Т я г ɒ е / , а не * / т г ɒ е / .

Вместе с troff появился nroff (фактически это была одна и та же программа), предназначенная для вывода на строчные принтеры и символьные терминалы . Он понимал все, что делал troff , и игнорировал неприменимые команды, например, изменение шрифта .

Ossanna в TROFF была написана на PDP-11 ассемблере и произведенной продукции специально для CAT фотонаборной . Он переписал его на C , хотя теперь он состоял из 7000 строк кода без комментариев и все еще зависел от CAT. Поскольку CAT стал менее распространенным и больше не поддерживался производителем, необходимость сделать его поддержкой других устройств стала приоритетной. Оссанна умерла до того, как эта задача была завершена, поэтому Брайан Керниган взял на себя задачу переписать troff . В новой переписанной версии был получен аппаратно-независимый код, который постпроцессорам было очень легко читать и переводить в соответствующие коды принтера. Кроме того, эта новая версия troff(часто называемый ditroff для независимого от устройства troff ) имел несколько расширений, которые включали функции рисования. [4] Документация программы определяет выходной формат ditroff , который используется многими современными клонами troff, такими как GNU groff .

TROFF набор инструментов ( в том числе предварительно - и пост-процессоров) в конце концов называется WorkBench Архивариус в (DWB) , и находился под непрерывным развитием в Bell Labs , а затем в спин-офф Unix System Laboratories (USL) через 1994 г. В то время , SoftQuad взял на себя обслуживание, хотя Брайан Керниган продолжал улучшать troff самостоятельно. Таким образом, используются как минимум следующие варианты оригинального troff Bell Labs :

  • SoftQuad DWB, основанный на USL DWB 2.0 с 1994 г .;
  • DWB 3.4 от Lucent Software Solutions (ранее USL);
  • troff, Plan 9 издание.

Хотя troff был вытеснен другими программами, такими как Interleaf , FrameMaker и LaTeX , он все еще широко используется. Он остается средством форматирования документации UNIX по умолчанию .

Программное обеспечение было переписано в Грофф для GNU системы , начиная с 1990 г. Кроме того, в связи с открытыми источниками в Ancient UNIX систем, а также современных наследниках , такие как ditroff на основе открытых источников-версию , найденной на OpenSolaris и Plan 9 от Bell Labs , существует несколько версий AT&T troff (CAT и ditroff-based [5] ), доступных под различными лицензиями с открытым исходным кодом.

Макросы [ править ]

Troff включает в себя наборы команд, называемых макросами , которые запускаются перед началом обработки документа. Эти макросы включают настройку верхних и нижних колонтитулов страниц, определение новых команд и общее влияние на формат вывода. Аргумент командной строки для включения набора макросов является -m имя , которое привело ко многим наборы макросов быть известным в качестве базового файла с ведущим м .

Стандартные наборы макросов с ведущими буквами m :

  • man для создания справочных страниц [6] [7]
  • mdoc для семантически аннотированных страниц руководства , которые лучше адаптированы для преобразования mandoc в другие форматы. [8] [9] mandoc - это сочетание, которое поддерживает оба набора ручных команд. [10]
  • мне за создание научных статей [11]
  • мм для создания меморандумов [12]
  • ms для создания книг, отчетов и технической документации [13]

Более полный список доступных макросов обычно приводится на tmac(5) странице руководства . [10]

Препроцессоры [ править ]

По мере развития troff , поскольку есть несколько вещей, которые не могут быть легко выполнены в troff , было разработано несколько препроцессоров . Эти программы преобразуют определенные части документа во входные данные troff , естественным образом вписываясь в использование «конвейеров» в Unix - отправка выходных данных одной программы в качестве входных данных для другой (см. Конвейеры и фильтры ). Обычно каждый препроцессор переводит только те разделы входного файла, которые специально отмечены, а остальную часть файла пропускает без изменений. Встроенные инструкции предварительной обработки написаны на простом языке программирования для конкретных приложений, который обеспечивает высокую степень мощности и гибкости.

  • Препроцессор eqn позволяет задавать математические формулы простым и интуитивно понятным способом. [14]
  • tbl - это препроцессор для форматирования таблиц.
  • см (а подобная программа нагрудник ) обрабатывает цитаты в документе , в соответствии с библиографической базой данных.

Три препроцессора предоставляют troff возможности рисования, определяя предметно-ориентированный язык для описания изображения.

  • pic - это процедурный язык программирования, обеспечивающий различные функции рисования, такие как круг и прямоугольник . [15]
  • ideal позволяет рисовать изображения декларативно , получая изображение путем решения системы одновременных уравнений на основе векторов и преобразований, описываемых его входными данными. [16]
  • grn описывает изображения через графические элементы, нарисованные в абсолютных координатах, на основе формата файла gremlin, определенного ранней графической рабочей станцией. [17]

Еще больше препроцессоров позволяют рисовать более сложные изображения, генерируя выходные данные для pic .

  • grap рисует диаграммы , такие как диаграммы разброса и гистограммы . [18]
  • Chem рисует диаграммы химического строения . [19]
  • dformat рисует структуры данных на основе записей . [20]

Реализации [ править ]

  • groff - это бесплатная замена troff и nroff в проекте GNU .
  • unroff - расширяемая замена troff, написанного на схеме
  • Семейная реликвия troff основана на troff от OpenSolaris . Он включает поддержку шрифтов OpenType , улучшенную поддержку шрифтов Type 1 , поддержку Unicode , новый алгоритм форматирования абзацев и режим совместимости с groff .
  • mandoc - это специализированный компилятор / форматировщик только для пакетов макросов man и mdoc .
  • Neatroff [21] - это новая реализация troff, включающая поддержку расширенных функций шрифтов и двунаправленного текста.

См. Также [ править ]

  • Настольная издательская система
  • DocBook
  • groff замена GNU troff / nroff
  • nroff
  • SGML
  • TeX
  • Писец (язык разметки)

Ссылки [ править ]

  1. ^ Керниган, BW (октябрь 2019). Unix: история и мемуары . Kindle Direct Publishing. п. 42. ISBN 9781695978553.
  2. ^ JF Оссанна. Руководство пользователя Nroff / Troff . CSTR # 54, Bell Labs, 1976. Отредактировано Б.В. Керниганом, 1992.
  3. Перейти ↑ McIlroy, MD (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (технический отчет). CSTR. Bell Labs. 139.
  4. BW Kernighan. Независимый от наборщика TROFF . CSTR # 97, Bell Labs, 1981, исправлено в марте 1982 г.
  5. ^ Обратитесь к странице из ditroff -> постскриптума нейтрализатора OpenSolaris:dpost(1) -  illumos и OpenSolaris User Commands Reference Manual из последнихоснове Sun OpenSolaris
  6. ^ "Написание и форматирование страниц руководств UNIX с помощью макросов -man" . home.fnal.gov . Дата обращения 7 мая 2019 .
  7. ^ man(7)  -  Руководство по Linux Miscellanea
  8. ^ mdoc(7)  -  Руководство по разной информации FreeBSD
  9. ^ "Указатель - расширенная документация Mandoc" . Mandoc . Дата обращения 7 мая 2019 .
  10. ^ a b groff_tmac(5)  -  Руководство по форматам файлов Linux
  11. ^ groff_me(7)  -  Руководство по Linux Miscellanea
  12. ^ groff_mm(7)  -  Руководство по Linux Miscellanea
  13. ^ groff_ms(7)  -  Руководство по Linux Miscellanea
  14. ^ BW Керниган и Лоринда Л. Черри. Система набора математики . CSTR # 17, Bell Labs, май 1974 г.
  15. BW Kernighan. PIC - язык графики для набора текста (пересмотренное руководство пользователя) . CSTR # 116, Bell Labs, декабрь 1984 г.
  16. ^ CJ Ван Вик. IDEAL Руководство пользователя . CSTR # 103, Bell Labs, декабрь 1981 г.
  17. ^ grn - препроцессор groff для файлов gremlin [1] .
  18. JL Bentley и BW Kernighan. GRAP - язык для набора графиков (учебник и руководство пользователя) . CSTR # 114, Bell Labs, август 1984 г.
  19. JL Bentley, LW Jelinski и BW Kernighan. CHEM - программа для набора диаграмм химического строения . CSTR # 122, Компьютеры и химия, Bell Labs, апрель 1986 г.
  20. ^ JL Бентли. DFORMAT - программа для набора форматов данных . CSTR # 142, Bell Labs, апрель 1988 г.
  21. ^ http://litcave.rudi.ir/neatroff.pdf

Внешние ссылки [ править ]

  • Текстовый процессор для наборщиков
  • История troff
  • Производный от OpenSolaris порт troff и связанных программ
  • Руководство пользователя troff версии Plan 9 (в формате PostScript)
  • История UNIX до Беркли, раздел 3 описывает историю roff, nroff, troff, ditroff, tbl, eqn и других.
  • Исходный исходный код nroff, troff и препроцессоров от AT&T Bell Labs в форме Documenter's Workbench (DWB) Release 3.3 (перенесен на текущие системы UNIX с http://www2.research.att.com/sw/download )