Troff es un procesador de texto de documentos simple pero potente para sistemas Linux. Le permite crear fácilmente documentos listos para imprimir compilando archivos de origen desde la línea de comandos. a diferencia de Látex Troff es increíblemente liviano y viene preinstalado en la mayoría de los sistemas Linux. Este tutorial le muestra cómo usar Troff para formatear documentos PDF en Ubuntu.

¿Qué es Troff y por qué lo usas?
en el sentido más básico, troff Es un programa de procesamiento de textos que convierte guiones que parecen código en documentos imprimibles. A diferencia de los procesadores de texto, Troff no se basa en el modelo "WYSIWYG". En cambio, requiere que use ciertos tipos de código para manejar su formato.

La simplicidad es una de las mayores ventajas de este estilo. La instalación básica de Troff contendrá todo lo necesario para crear un documento. Además, la falta de una interfaz gráfica de usuario significa que puede crear un documento incluso a través de SSH.

Sugerencia: aprenda a reenviar Aplicaciones GUI sobre SSH en linux
Instalación de Troff
Troff a menudo se incluye de forma predeterminada en la mayoría de las distribuciones de Linux. Puede verificar si lo tiene en su sistema ejecutando su indicador -h. Esto mostrará una breve lista de todas las etiquetas que acepta la instalación de Troff.
troff-h

Hay casos en que las distribuciones no compilan Troff por defecto. En este caso, puede instalarlo buscando el paquete "grof".

Esta es una reimplementación de los programas Troff y Nroff del proyecto GNU, que incluye una serie de características nuevas y actualizadas.
Puede instalar groff en Ubuntu con el siguiente comando:
sudo apto instalar groff

Crear el primer documento Troff
Similar al código fuente, cada documento de Troff es un archivo de texto que contiene instrucciones sobre cómo crear un documento. Esto incluye el ancho y el margen de la página, así como el espacio entre caracteres y páginas.

Este nivel de control le permite manipular el programa para crear cualquier tipo de documento. Para hacerlo simple, los desarrolladores de Troff han creado "macros" que condensan estos comandos en una sintaxis más simple.

Una de las macros más comunes que usará en Troff es Milisegundos. Se creará un documento estilo ensayo. Puede crear un documento ms con el comando táctil:
toque mi-primer-documento.ms
Dado que todos los documentos de Troff son de texto, puede abrir el documento con un editor de texto. En mi caso, estoy usando vim. Alternativamente, puede usar cualquiera de estos editores de texto para Linux.
vim mi-primer-documento.ms

Comprender el formato Troff
Todos los documentos de Troff siguen una estructura similar. Cada comando de formateo que haga debe estar en una línea separada en el contenido que está tratando de formatear. Como tal, un documento típico de Troff se vería así:
.COMMAND1 Esta es una pieza de contenido en un documento Troff. .COMMAND2 Este es un contenido diferente en un documento Troff.
Dos de los comandos más básicos que usará en milisegundos son TL y .PP. El primero convierte su texto en un encabezado y lo centra en su documento, mientras que el segundo formatea su texto para seguir un estilo de párrafo.
Por ejemplo, el siguiente fragmento usa los comandos TL y .PP:
.TL Mi primer documento Troff .PP Este es un contenido que quiero que parezca un párrafo en mi documento final. No es un contenido muy largo pero es mi primer documento de Troff y es algo de lo que estoy orgulloso. Tiene aproximadamente tres oraciones y debe envolver el documento correctamente.

Desde aquí, cree su documento pasando su archivo al software de Troff.
groff -ms -Tpdf ./mi-primer-documento.ms > salida.pdf

Consejo: si prefiere algo más simple, aprenda cómo Escribir en formato MLA en Google Docs.
Crear texto en negrita, cursiva y subrayado
Al igual que un procesador de textos normal, la mayoría de las macros de Troff proporcionan una serie de comandos de estilo para la personalización de documentos. Para ms, estos son .B y . Yo y. UL y .BX.
- El comando B cambia el texto a negrita.
- El comando .I cambia el texto a cursiva.
- UL y. BX son dos comandos que dibujan un subrayado y un cuadro alrededor del texto, respectivamente.
De manera similar a los comandos anteriores, el uso de estos comandos en su documento requiere que cada estilo esté separado en su propia línea:
.TL Mi primer documento Troff .PP Este es el contenido .B .R que quiero que se vea como un párrafo en mi documento final. [...]
En este ejemplo, creé una nueva línea antes de una palabra "contenido" Y agregué el comando .B para cambiarlo a negrita, luego creé una nueva línea y agregué el comando .R. Esto le permite a Troff volver a su técnica anterior.

Es importante tener en cuenta que siempre debe agregar el comando .R al cambiar el estilo. Por ejemplo, el siguiente fragmento no terminará el comando .I porque Troff no ha visto el archivo .R después:
.TL Mi Primer Documento Troff .PP Este es el contenido que quiero que parezca un párrafo en mi documento final. [...]

Crear nuevas secciones de documentos
Al igual que LaTeX, Troff también es compatible con la detección y jerarquía de particiones, por lo que no es necesario ordenar y hacer coincidir el nivel de cada encabezado al editar.
Para crear una nueva sección en su documento, use el comando .NH seguido del nombre de su encabezado.
.TL Mi primer documento Troff .NH Mi primer encabezado .PP Este es un contenido que quiero que parezca un párrafo en mi documento final.

De forma predeterminada, cada encabezado de Troff contiene un valor de nivel que determina cómo se construye el programa y cómo se muestra su contenido en el documento final. Sabiendo que puede cambiar este valor para ajustar el nivel de rumbo.
Por ejemplo, lo siguiente crea una dirección de nivel 2 justo debajo de la principal:
.TL Mi primer documento Troff .NH Mi primer título .NH 2 Mi primer subtítulo .PP Este es un contenido que quiero que parezca un párrafo en mi documento final.

Además de los encabezados numerados regulares, Troff también puede crear encabezados vacíos que aún seguirán la jerarquía del nivel del documento.
Para hacer esto, reemplace .NH con el comando SH:
.TL Mi primer documento Troff .SH Mi primer título .SH 2 Mi primer subtítulo .PP Este es un contenido que quiero que parezca un párrafo en mi documento final.

Sugerencia: aprenda cómo Cambiar márgenes en Google Docs.
Crear listas en Troff
La simplicidad de Troff también te permite transformar su comportamiento en lo que desees. Por ejemplo, las listas no vienen por defecto en las macros Troff o ms. A pesar de esto, aún puede crear una lista combinando algunos comandos de ms.
Cada lista en Troff se compone de tres partes: sangría, viñeta y contenido. Para crear una sangría, use los comandos .rs y .rs. RE. Esto sangrará el nivel de sangría actual de cualquier texto dentro de él por cuatro espacios.
.RS Este es mi primer artículo. .RE

El comando IP también le permite establecer una viñeta personalizada y el espacio entre ella y su texto. En este caso, establecería mi viñeta en "[1]" y le daría cuatro espacios.
.RS .IP [1] 4 Este es mi primer artículo. .RE

.RS .IP [1] 4 Este es mi primer artículo. .IP [2] 4 Este es mi segundo artículo. .IP [3] 4 Este es mi tercer artículo. .RE

Finalmente, automatice este proceso creando una macro personalizada. Por ejemplo, el siguiente fragmento asocia mi comando IP con QW.
.de QW .IP [-] 4 .. .RS .QW Este es mi primer artículo. .QW Este es mi segundo artículo. .QW Este es mi tercer artículo. .RE

Crear tablas con preprocesadores en Troff
Una de las cosas raras de Troff es que la mayoría de sus características están ahí como "Tratamientos primarios". En su mayor parte, estos son binarios fuera del programa que funcionan creando "Scripts de contenedor de preprocesador" y convertirlo a código Troff de bajo nivel.

Tbl es un gran ejemplo de un preprocesador Troff. Es un programa que gestiona tablas en un documento. El contenedor Tbl básico se ve así:
.TS allbox; cc c. Artículo 1 artículo2 artículo3 artículo4 artículo5 item6.TE
- Los comandos .TS y .TE le dicen a Tbl que este es un entorno que puede leer.
- La segunda línea le dice al programa cómo formatear esta tabla.
- La tercera línea es un campo separado por espacios que define la cantidad de columnas y la alineación de su tabla.
- Las líneas cuarta y quinta son campos separados por tabuladores que contienen el contenido de su tabla.

Compilar un documento usando Tbl es un poco diferente a un archivo Troff normal. Primero, sube tu archivo:
tbl mi-primer-documento.ms > preprocesado.ms
A continuación, alimenta la salida del programa a Troff:
groff -ms -Tpdf ./preprocesado.ms > salida.pdf
Finalmente, automatice este proceso usando tuberías UNIX:
tbl mi-primer-documento.ms | groff -ms -Tpdf > salida.pdf

Preguntas frecuentes:
P1: ¿Es posible usar Troff en Windows?
respuesta. De forma predeterminada, Troff y Groff no se migran oficialmente a Windows. A pesar de esto, aún puede usar Groff con otras herramientas GNU al Instalar el subsistema de Windows para Linux.
P2: ¿Troff tiene una función de seguimiento de bibliografía?
respuesta. Sí. Referral es un preprocesador simple que utiliza un archivo de bibliografía externo para rastrear automáticamente las referencias en un documento Troff. Puede obtener más información sobre cómo funciona visitando su página de manual ejecutando man referrer.
P3: ¿Cómo puedo solucionar el error "Falta DESC" al compilar Troff?
respuesta. Es probable que este problema se deba a una dependencia que falta en su sistema o a un archivo de versión que no coincide. Para arreglar esto, instale el paquete groff apropiado desde el repositorio de su distribución.






