troff - troff

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

troff (), сокращение от «наборщик roff», является основным компонентом системы обработки документов разработан ATT Corporation для операционной системы Unix. troff и связанный с ним nroff были разработаны на основе исходного roff.

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

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

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

Содержание
  • 1 История
  • 2 Макросы
  • 3 Препроцессоры
  • 4 Повторные реализации
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
История

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

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

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

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

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

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

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

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

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

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

Макросы

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

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

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

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

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

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

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

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

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

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

Повторные реализации
  • groff - это бесплатная замена для troff и nroff GNU Project.
  • unroff расширяемая замена troff, записанная на схеме
  • Heirloom troff, основана на troff из OpenSolaris. Он включает поддержку шрифтов OpenType, улучшенную поддержку шрифтов Type 1, поддержку Unicode, новый алгоритм форматирования абзацев и groff режим совместимости.
  • mandoc - это специализированный компилятор / форматировщик только для пакетов man и macro.
  • Neatroff - это новая реализация troff, включая поддержку расширенных функций шрифтов и двунаправленный текст.
См. также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-11 12:07:36
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте