Troff - troff - Wikipedia

Troff
Оригинальный автор (ы)Джо Оссанна
Разработчики)AT&T Bell Laboratories
Операционная системаUnix, Unix-подобный, План 9
ПлатформаКроссплатформенность
ТипКоманда
Интернет сайтTroff.org Отредактируйте это в Викиданных

Troff (/ˈтярɒж/), сокращение от "наборщик roff", является основным компонентом система обработки документов разработан Корпорация AT&T для Unix Операционная система. troff и связанные с ним nroff оба были разработаны на основе оригинальных roff.

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

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

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

История

troff 'происхождение можно проследить до форматирование текста программа называется СТОК, который был написан Джером Х. Зальцер за Массачусетский технологический институт с CTSS Операционная система в середине 1960-х гг. (Название якобы произошло от фразы Я убегу документ.)

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

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

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

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

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

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

  • SoftQuad DWB, основанный на USL DWB 2.0 с 1994 г .;
  • DWB 3.4 от Lucent Программные решения (ранее USL);
  • troff План 9 версия.

Пока Troff был вытеснен другими программами, такими как Interleaf, FrameMaker, и Латекс, он до сих пор довольно широко используется. Он остается средством форматирования по умолчанию для Документация UNIX.

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

Макросы

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

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

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

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

Препроцессоры

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

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

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

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

Реализации

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

Смотрите также

Рекомендации

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

внешняя ссылка