troff


De Wikipedia, la enciclopedia libre
  (Redirigido desde la macro de Troff )
Saltar a navegación Saltar a búsqueda

troff ( / t i r ɒ f / ), abreviatura de "Roff tipógrafo", es el componente principal de un sistema de procesamiento de documentos desarrollado por AT & T Corporation para el Unix sistema operativo. troff y el nroff relacionado se desarrollaron a partir del roff original .

Si bien nroff estaba destinado a producir resultados en terminales e impresoras de línea, troff estaba destinado a producir resultados en sistemas de composición tipográfica , específicamente el CAT de sistemas gráficos que se había introducido en 1972. Ambos usaban el mismo lenguaje de marcado subyacente y un solo archivo fuente normalmente podría ser utilizado por nroff o troff sin cambios.

troff incluye comandos para designar fuentes, espaciado, párrafos, márgenes, notas al pie y más. A diferencia de muchos otros formateadores de texto, troff puede colocar caracteres arbitrariamente en una página, incluso superponiéndolos, y tiene un idioma de entrada totalmente programable. Se utilizan preprocesadores separados para una producción más conveniente de tablas, diagramas y matemáticas. Las entradas a troff son archivos de texto sin formato que pueden crearse con cualquier editor de texto.

Se han creado extensos paquetes de macros para varios estilos de documentos. Una distribución típica de troff incluye el me macros para formatear documentos de investigación, el hombre y manual mdoc macros para la creación de Unix páginas man , mv macros para crear montables transparencias , y las ms y mm macros para cartas, libros, memorias e informes técnicos.

Historia

troff ' orígenes s se pueden remontar a un texto de formato de programa llamado ESCORRENTIA , que fue escrito por Jerome H. Saltzer de MIT ' s CTSS sistema operativo a mediados de la década de 1960. (El nombre supuestamente proviene de la frase Voy a sacar un documento ).

Bob Morris lo portó a la arquitectura GE 635 y llamó al programa roff (una abreviatura de runoff ). [ cita requerida ] Fue reescrito como rf para el PDP-7 , y al mismo tiempo (1969), Doug McIlroy reescribió una versión extendida y simplificada de roff en el lenguaje de programación BCPL .

La primera versión de Unix se desarrolló en un PDP-7 que estaba en Bell Labs . En 1971, los desarrolladores querían obtener un PDP-11 para seguir trabajando en el sistema operativo. Para justificar el costo de este sistema, propusieron implementar un sistema de formato de documentos para el departamento de patentes de Bell Labs. [1] Este primer programa de formateo fue una reimplementación del roff de McIllroy , escrito por Joe F. Ossanna .

Cuando necesitaron un lenguaje más flexible, se escribió una nueva versión de roff llamada nroff ( "roff" más reciente ), que proporcionó la base para todas las versiones futuras. Cuando obtuvieron una fotocopiadora CAT de Graphic Systems , Ossanna modificó nroff para admitir múltiples fuentes y espaciado proporcional . Apodado troff , por el tipo de letra roff , su producción sofisticada sorprendió al fabricante de la tipografía y confundió a los revisores , quienes pensaban que los manuscritos que usaban troff se habían publicado antes. [2] [3] Como tal, el nombre troff se pronuncia/ T i r ɒ f / en lugar de * / t r ɒ f / .

Con troff vino nroff (en realidad eran casi el mismo programa), que era para producir resultados para impresoras de línea y terminales de caracteres . Entendió todo lo que hizo troff e ignoró los comandos que no eran aplicables, por ejemplo, cambios de fuente .

El troff de Ossanna fue escrito en lenguaje ensamblador PDP-11 y produjo resultados específicamente para la fototipista CAT . Lo reescribió en C , aunque ahora eran 7000 líneas de código sin comentar y todavía dependía del CAT. A medida que el CAT se volvió menos común y el fabricante dejó de ser compatible, la necesidad de hacerlo compatible con otros dispositivos se convirtió en una prioridad. Ossanna murió antes de que se completara esta tarea, por lo que Brian Kernighan asumió la tarea de reescribir troff . La versión recientemente reescrita produjo un código independiente del dispositivo que fue muy fácil de leer y traducir a los posprocesadores a los códigos de impresora apropiados. Además, esta nueva versión de troff(a menudo llamado ditroff para troff independiente del dispositivo ) tenía varias extensiones, que incluían funciones de dibujo. [4] La documentación del programa define el formato de salida de ditroff , que es utilizado por muchos clones modernos de troff como GNU groff .

La colección de herramientas de troff (incluidos los preprocesadores y posprocesadores) finalmente se denominó Documenter's WorkBench (DWB) , y estuvo en continuo desarrollo en Bell Labs y más tarde en el derivado Unix System Laboratories (USL) hasta 1994. En ese momento , SoftQuad se hizo cargo del mantenimiento, aunque Brian Kernighan continuó mejorando troff por su cuenta. Por lo tanto, existen al menos las siguientes variantes del troff original de Bell Labs en uso:

  • el SoftQuad DWB, basado en USL DWB 2.0 de 1994;
  • el DWB 3.4 de Lucent Software Solutions (anteriormente USL);
  • troff, edición Plan 9 .

Si bien troff ha sido suplantado por otros programas como Interleaf , FrameMaker y LaTeX , todavía se usa de manera bastante extensa. Sigue siendo el formateador predeterminado para la documentación de UNIX .

El software se volvió a implementar como groff para el sistema GNU a partir de 1990. Además, debido al código abierto de los sistemas UNIX antiguos, así como a los sucesores modernos como las versiones de código abierto basadas en ditroff que se encuentran en OpenSolaris y Plan 9 de Bell Labs , hay varias versiones de AT&T troff (basadas en CAT y ditroff [5] ) disponibles bajo varias licencias de código abierto.

Macros

Troff incluye conjuntos de comandos llamados macros que se ejecutan antes de comenzar a procesar el documento. Estas macros incluyen configurar encabezados y pies de página, definir nuevos comandos y, en general, influir en cómo se formateará la salida. El argumento de la línea de comandos para incluir un conjunto de macros es -m nombre , lo que ha llevado a que muchos conjuntos de macros se conozcan como el nombre de archivo base con una m al principio .

Los conjuntos de macros estándar, con m inicial, son:

  • man por crear páginas de manual [6] [7]
  • mdoc para páginas de manual con anotaciones semánticas , que se adaptan mejor a la conversión de mandoc a otros formatos. [8] [9] mandoc es una fusión que admite ambos conjuntos de comandos manuales. [10]
  • a mí por crear artículos de investigación [11]
  • mm para la creación de memorandos [12]
  • ms para crear libros, informes y documentación técnica [13]

Una lista más completa de macros disponibles generalmente se incluye en una tmac(5) página de manual . [10]

Preprocesadores

A medida que troff evolucionó, dado que hay varias cosas que no se pueden hacer fácilmente en troff , se desarrollaron varios preprocesadores . Estos programas transforman ciertas partes de un documento en entrada troff , encajando naturalmente en el uso de "pipelines" en Unix - enviando la salida de un programa como entrada a otro (ver canalizaciones y filtros ). Normalmente, cada preprocesador traduce solo las secciones del archivo de entrada que están especialmente marcadas, pasando el resto del archivo sin cambios. Las instrucciones de preprocesamiento integradas están escritas en un sencillo lenguaje de programación específico de la aplicación, que proporciona un alto grado de potencia y flexibilidad.

  • El preprocesador eqn permite especificar fórmulas matemáticas de forma sencilla e intuitiva. [14]
  • tbl es un preprocesador para formatear tablas.
  • refer (y el programa similar bib ) procesa las citas en un documento de acuerdo con una base de datos bibliográfica .

Tres preprocesadores proporcionan a troff capacidades de dibujo al definir un lenguaje específico de dominio para describir la imagen.

  • pic es un lenguaje de programación procedimental que proporciona varias funciones de dibujo como círculo y cuadro . [15]
  • ideal permite el dibujo de imágenes de forma declarativa , derivando la imagen mediante la resolución de un sistema de ecuaciones simultáneas basado en vectores y transformaciones descritas por su entrada. [dieciséis]
  • grn describe las imágenes a través de elementos gráficos dibujados en coordenadas absolutas, basados ​​en el formato de archivo gremlin definido por una de las primeras estaciones de trabajo de gráficos. [17]

Sin embargo, más preprocesadores permiten el dibujo de imágenes más complejas al generar una salida para la imagen .

  • grap dibuja gráficos , como diagramas de dispersión e histogramas . [18]
  • chem dibuja diagramas de estructura química . [19]
  • dformat dibuja estructuras de datos basadas en registros . [20]

Reimplementaciones

  • Groff es Proyecto GNU 's libre de reemplazo para troff y nroff.
  • unroff es un reemplazo extensible de troff escrito en Scheme
  • Heirloom troff se basa en troff de OpenSolaris . Incluye soporte para fuentes OpenType , soporte mejorado para fuentes Type 1 , soporte para Unicode , un nuevo algoritmo de formato de párrafo y un modo de compatibilidad groff .
  • mandoc es un compilador / formateador especializado solo para los paquetes de macros man y mdoc .
  • Neatroff [21] es una nueva implementación de troff, que incluye soporte para funciones de fuentes avanzadas y texto bidireccional.

Ver también

  • Publicación de escritorio
  • DocBook
  • reemplazo de groff GNU troff / nroff
  • nroff
  • SGML
  • Texas
  • Scribe (lenguaje de marcado)

Referencias

  1. ^ Kernighan, BW (octubre de 2019). Unix: una historia y una memoria . Publicación directa de Kindle. pag. 42. ISBN 9781695978553.
  2. ^ JF Ossanna. Manual del usuario de Nroff / Troff . CSTR # 54, Bell Labs, 1976. Revisado por BW Kernighan, 1992.
  3. ^ McIlroy, MD (1987). Un lector de investigación Unix: extractos comentados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139.
  4. ^ BW Kernighan. Un TROFF independiente del tipógrafo . CSTR # 97, Bell Labs, 1981, revisado en marzo de 1982.
  5. ^ Consulte la página de manual de ditroff -> convertidor postscript en OpenSolaris:dpost(1) -  Manual de referencia de comandos de usuario de illumos y OpenSolaris del último OpenSolaris basado en Sun
  6. ^ "Escritura y creación de páginas de manual de UNIX con macros -man" . home.fnal.gov . Consultado el 7 de mayo de 2019 .
  7. ^ man(7)  -  Manual misceláneo de Linux
  8. ^ mdoc(7)  -  Manual de información miscelánea de FreeBSD
  9. ^ "Índice - Documentación ampliada de Mandoc" . Mandoc . Consultado el 7 de mayo de 2019 .
  10. ^ a b groff_tmac(5)  -  Manual de formatos de archivo de Linux
  11. ^ groff_me(7)  -  Manual misceláneo de Linux
  12. ^ groff_mm(7)  -  Manual misceláneo de Linux
  13. ^ groff_ms(7)  -  Manual misceláneo de Linux
  14. ^ BW Kernighan y Lorinda L. Cherry. Un sistema para la composición tipográfica de las matemáticas . CSTR # 17, Bell Labs, mayo de 1974.
  15. ^ BW Kernighan. PIC - Un lenguaje de gráficos para composición tipográfica (Manual de usuario revisado) . CSTR # 116, Bell Labs, diciembre de 1984.
  16. ^ CJ Van Wyk. Manual de usuario IDEAL . CSTR # 103, Bell Labs, diciembre de 1981.
  17. ^ grn - preprocesador groff para archivos gremlin [1] .
  18. ^ JL Bentley y BW Kernighan. GRAP: un lenguaje para la composición tipográfica de gráficos (tutorial y manual del usuario) . CSTR # 114, Bell Labs, agosto de 1984.
  19. ^ JL Bentley, LW Jelinski y BW Kernighan. CHEM: un programa para la composición tipográfica de diagramas de estructura química . CSTR # 122, Computers and Chemistry, Bell Labs, abril de 1986.
  20. ^ JL Bentley. DFORMAT: un programa para la composición tipográfica de formatos de datos . CSTR # 142, Bell Labs, abril de 1988.
  21. ^ http://litcave.rudi.ir/neatroff.pdf

enlaces externos

  • El procesador de texto para tipógrafos
  • La historia de troff
  • Puerto de troff derivado de OpenSolaris y programas relacionados
  • Manual de usuario para la edición Plan 9 de troff (en formato PostScript)
  • La sección 3 de Historia de UNIX antes de Berkeley describe la historia de roff, nroff, troff, ditroff, tbl, eqn y más.
  • El código fuente original de nroff, troff y los preprocesadores de AT&T Bell Labs en forma de Documenter's Workbench (DWB) versión 3.3 (adaptado a los sistemas UNIX actuales desde http://www2.research.att.com/sw/download )
Obtenido de " https://en.wikipedia.org/w/index.php?title=Troff&oldid=1037247674#Macros "