В этой статье отсутствует информация о коротком списке книг, набранных с помощью troff. Январь 2021 г. ) ( |
Автор (ы) оригинала | Джо Оссанна |
---|---|
Разработчики) | AT&T Bell Laboratories |
Операционная система | Unix , Unix-подобный , Plan 9 |
Платформа | Кроссплатформенность |
Тип | Командование |
Веб-сайт | troff |
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
- Писец (язык разметки)
Ссылки [ править ]
- ^ Керниган, BW (октябрь 2019). Unix: история и мемуары . Kindle Direct Publishing. п. 42. ISBN 9781695978553.
- ^ JF Оссанна. Руководство пользователя Nroff / Troff . CSTR # 54, Bell Labs, 1976. Отредактировано Б.В. Керниганом, 1992.
- Перейти ↑ McIlroy, MD (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (технический отчет). CSTR. Bell Labs. 139.
- ↑ BW Kernighan. Независимый от наборщика TROFF . CSTR # 97, Bell Labs, 1981, исправлено в марте 1982 г.
- ^ Обратитесь к странице из ditroff -> постскриптума нейтрализатора OpenSolaris: - illumos и OpenSolaris User Commands Reference Manual из последнихоснове Sun OpenSolaris
- ^ "Написание и форматирование страниц руководств UNIX с помощью макросов -man" . home.fnal.gov . Дата обращения 7 мая 2019 .
- ^ - Руководство по Linux Miscellanea
- ^ - Руководство по разной информации FreeBSD
- ^ "Указатель - расширенная документация Mandoc" . Mandoc . Дата обращения 7 мая 2019 .
- ^ a b - Руководство по форматам файлов Linux
- ^ - Руководство по Linux Miscellanea
- ^ - Руководство по Linux Miscellanea
- ^ - Руководство по Linux Miscellanea
- ^ BW Керниган и Лоринда Л. Черри. Система набора математики . CSTR # 17, Bell Labs, май 1974 г.
- ↑ BW Kernighan. PIC - язык графики для набора текста (пересмотренное руководство пользователя) . CSTR # 116, Bell Labs, декабрь 1984 г.
- ^ CJ Ван Вик. IDEAL Руководство пользователя . CSTR # 103, Bell Labs, декабрь 1981 г.
- ^ grn - препроцессор groff для файлов gremlin [1] .
- ↑ JL Bentley и BW Kernighan. GRAP - язык для набора графиков (учебник и руководство пользователя) . CSTR # 114, Bell Labs, август 1984 г.
- ↑ JL Bentley, LW Jelinski и BW Kernighan. CHEM - программа для набора диаграмм химического строения . CSTR # 122, Компьютеры и химия, Bell Labs, апрель 1986 г.
- ^ JL Бентли. DFORMAT - программа для набора форматов данных . CSTR # 142, Bell Labs, апрель 1988 г.
- ^ 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 )