Jump to content

Трофф

(Перенаправлено из Таблицы )
Трофф
Оригинальный автор(ы) Джо Оссанна
Разработчик(и) AT&T Bell Laboratories
Написано в С
Операционная система Unix , Unix-подобные , Plan 9
Платформа Кросс-платформенный
Тип Команда
Лицензия План 9: МОЯ лицензия
Веб-сайт Трофф .org  Edit this on Wikidata

troff ( / ˈ t r ɒ f / ), сокращение от «наборщик roff», является основным компонентом системы обработки документов , разработанной Bell Labs для операционной системы Unix . troff и связанный с ним nroff были разработаны на основе оригинального roff .

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

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

обширные пакеты макросов Для различных стилей документов созданы . Типичный дистрибутив troff включает макросы me для форматирования исследовательских работ, man и mdoc макросы для создания man-страниц Unix , макросы mv для создания монтируемых прозрачных пленок , а также макросы ms и mm для писем, книг, технических заметок и отчетов.

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

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

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

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

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

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

В 1983 году troff был одним из нескольких инструментов UNIX, доступных для операционной системы UNOS компании Charles River Data Systems по лицензии Bell Laboratories . [5]

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

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

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

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

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

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

Макросы ms были первыми из них, разработанными в AT&T, прежде чем они были вытеснены макросами mm. [18] Одна из целей макросов mm заключалась в том, чтобы они могли использоваться наборщиками Bell Labs, и со временем это произошло, и макросы mm стали стандартом в Bell Labs. [19] AT&T сделала макросы mm коммерчески доступными для System V Unix. [18] Напротив, макросы me были разработаны в Беркли. [18]

Пример простого делового письма, подготовленного с помощью макроса mm:

.ND "January 10, 1993"
.AU "Ms. Jane Smith"
.AT "Upcoming appointment"
.MT 5
.DS
Reference #A12345
.sp 4
Mr. Samuel Jones
Field director, Bureau of Inspections
1010 Government Plaza
Capitoltown, ST
.sp 3
Dear Mr. Jones,
.sp 2
.P
Making reference to the noted obligation to submit for state inspection our newly created production process, we request that you consider the possible inappropriateness of subjecting the  innovative technologies of tomorrow to the largely antiquated requirements of yesterday.  If our great state is to prosper in the twenty-first century, we must take steps 
.B now ,
in 
.I this 
year of 
.I this 
decade, to prepare our industrial base for the interstate and international competition that is sure to appear.  Our new process does precisely that.  Please do not let it be undone by a regulatory environment that is no longer apt.
.P
Thank you for your consideration of our position.
.FC Sincerely
.SG

Полный список доступных макросов обычно указан в tmac(5) страница руководства . [14]

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

[ редактировать ]

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

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

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

Кроме того, существует команда soelim , удаляющая .so включение директив из входного текста. [24]

Типичная структура конвейера может быть следующей:

soelim file | refer | ideal | pic | tbl | eqn | troff

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

Другие интерфейсы

[ редактировать ]

Было разработано несколько других интерфейсов, которые призваны стать более дружественными интерфейсами для troff.

Одним из них является Sanscribe , первоначально разработанный в Беркли, а затем усовершенствованный в 1980-х годах несколькими пользователями, включая Intel и InterACT . Sanscribe, используемый для написания заметок, отчетов и документов, построен на основе основных команд troff, а также макросов me и различных пре- и постпроцессоров, таких как soelim, eqn, tbl, grap и pic. Однако это двоичный файл основной программы, а не препроцессор. Возможность условного включения делает его особенно полезным для поддержки многоплатформенных справочных руководств. Однако Sanscribe хрупкий и склонен выдавать загадочные ошибки или результаты в странном формате. [28]

Специальный внешний интерфейс — vgrind , который генерирует красиво отформатированные списки исходных программ с такими функциями, как выделение комментариев курсивом, ключевые слова, выделенные жирным шрифтом, а имена функций, выделенные на полях. Он может работать либо как фильтр, либо как основная программа, а ее выходные данные передаются в troff. Он поддерживает языки, используемые в лабораториях Bell Labs, включая не только Fortran , C и C++, но и инструменты для конкретной предметной области, такие как Bourne Shell и yacc, а также инструменты, находящиеся за пределами страны, такие как Emacs Lisp и Icon . [24]

Другой подход используется в CADiZ наборе инструментов Z. для обозначения Вместо того, чтобы cadiz программа, являющаяся препроцессором в начале конвейера, несколько раз взаимодействует с troff как ввод, так и вывод, используя сохраненные файлы, а не канал. CADiZ также содержит собственный набор макросов, называемый .ZA через .ZZ. [29]

См. также

[ редактировать ]
  1. ^ Керниган, BW (октябрь 2019 г.). Unix: история и мемуары . Kindle Direct Publishing. п. 42. ИСБН  9781695978553 .
  2. ^ Дж. Ф. Оссанна. Руководство пользователя Nroff/Troff . CSTR № 54, Bell Labs, 1976. Отредактировано Б.В. Керниганом, 1992.
  3. ^ Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139.
  4. ^ Б.В. Керниган. Независимый от наборщика TROFF . CSTR № 97, Bell Labs, 1981 г., исправлено в марте 1982 г.
  5. ^ Путеводитель по Вселенной для инсайдеров (PDF) . Charles River Data Systems, Inc., 1983. с. 13.
  6. ^ См. справочную страницу конвертера ditroff -> postscript в OpenSolaris: dpost(1) по пользовательским командам illumos и OpenSolaris Справочное руководство из последней версии OpenSolaris на базе Sun.
  7. ^ Эмерсон, Сандра Л.; Полселл, Карен (1987). Набор текста Troff для систем UNIX · . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. п. 9.
  8. ^ Гехани, Нараин (1992). Форматирование и набор документов в системе UNIX (второе изд.). Саммит, Нью-Джерси: Silicon Press. стр. 11–12.
  9. ^ Линдхольм, Стивен. "макросы groff/troff: мс, мм, я или мама" . .. . Проверено 3 июня 2024 г.
  10. ^ «Написание и форматирование страниц руководства UNIX с помощью макросов -man» . home.fnal.gov . Проверено 7 мая 2019 г.
  11. ^ man(7) по Linux Разное руководство
  12. ^ mdoc(7) по FreeBSD по разной информации Руководство
  13. ^ «Индекс — расширенная документация Mandoc» . Мандок . Проверено 7 мая 2019 г.
  14. ^ Перейти обратно: а б groff_tmac(5) Linux по форматам файлов Руководство
  15. ^ groff_me(7) по Linux Разное руководство
  16. ^ groff_mm(7) по Linux Разное руководство
  17. ^ groff_ms(7) по Linux Разное руководство
  18. ^ Перейти обратно: а б с Шринивасан, Б. (1993). Обработка и набор текста UNIX-документов . Сингапур: World Scientific. стр. 11–12.
  19. ^ Машей, Джон (18 июля 2018 г.). Даг Спайсер (ред.). «Устная история Джона Мэши» (PDF) (Интервью). Беседовал Джон Маркофф. Маунтин-Вью, Калифорния: Музей истории компьютеров. стр. 27–29, 37 . Проверено 26 мая 2024 г.
  20. ^ BW Керниган и Лоринда Л. Черри. Система набора текста по математике . CSTR № 17, Bell Labs, май 1974 г.
  21. ^ Б.В. Керниган. PIC — графический язык для набора текста (пересмотренное руководство пользователя) . CSTR № 116, Bell Labs, декабрь 1984 г.
  22. ^ Си Джей Ван Вик. ИДЕАЛ Руководство пользователя . CSTR № 103, Bell Labs, декабрь 1981 г.
  23. ^ grn — препроцессор groff для файлов gremlin [1] .
  24. ^ Перейти обратно: а б Роббинс, Арнольд (1999). UNIX в двух словах: Краткий справочник по рабочему столу для System V Release 4 и Solaris 7 (Третье изд.). Севастополь, Калифорния: O'Reilly Media. стр. 151, 187–189.
  25. ^ JL Bentley и BW Керниган. GRAP — язык набора графиков (учебное пособие и руководство пользователя) . CSTR № 114, Bell Labs, август 1984 г.
  26. ^ Дж. Л. Бентли, Л. В. Елински и Б. В. Керниган. CHEM — программа для набора диаграмм химической структуры . CSTR № 122, Компьютеры и химия, Bell Labs, апрель 1986 г.
  27. ^ Дж. Л. Бентли. DFORMAT — Программа для набора форматов данных . CSTR № 142, Bell Labs, апрель 1988 г.
  28. ^ Sanscribe: Руководство пользователя и справочник (редакция 3.0). ... 13 января 1989 г., стр. 1–1, 2–1, 3–2, 6–1.
  29. ^ Джордан, Дэвид; Макдермид, Джон А.; Тойн, Ян (1991). Николлс, Дж. Э. (ред.). Кади – Компьютерное проектирование в Z. Семинар пользователей Z, Оксфорд, 1990: Материалы пятого ежегодного собрания пользователей Z, Оксфорд: 17–18 декабря 1990 г. Берлин, Гейдельберг: Springer-Verlag. стр. 93–104.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 16b5ce5a92b26fe0b4782449bb9d8f95__1721241060
URL1:https://arc.ask3.ru/arc/aa/16/95/16b5ce5a92b26fe0b4782449bb9d8f95.html
Заголовок, (Title) документа по адресу, URL1:
troff - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)