Tutorial de groff
groff o GNU troff, es un conjunto de programas de aplicacion y macros de composicion pensadas para dar formato profesional a textos.
El sistema se basa en escritura de texto plano, y represento la maxima calidad posible para tratamiento de textos hasta la popularizacion de la tecnologia WYSIWYG a finales de los 80s ("Lo que ve es lo que obtiene").
Introduccion
En este tutorial aprendera a dar formato academico basico a un paper recurriendo a groff. El paquete de macros -ms aqu{ expuesto le permitira obtener documentos de apariencia excelsa y profesional, en formato de impresion PDF.
Recurriendo a groff podra enfocarse en el contenido de redaccion sin distraerse demasiado con el formato basico. Descubrira que en poco tiempo, dominara los "comandos punto" para dar formato a mi documento, y estos se volveran casi naturales.
Uso de Groff
Utilizara su editor de texto
favorito para generar un documento fichero.ms
descriptivo, a fin de lograr un documento final profesional con
groff -ms
.
Instalacion
Ciertas distribuciones de BSD/Linux incluyen por defecto una version minima de groff, apenas suficiente para dar formato a paginas de man. En tal casos, si desea explorar groff al completo, podria tener que recurrir a instalar paquetes restantes:
Ubuntu Linux
$ sudo apt install groff-*
Fedora Linux
$ sudo dnf install 'groff-*'
Redactar con groff
Exploremos como empezar con groff -ms
para crear un
documento academico. En este ejemplo, redactara un paper, y
luego usara groff -ms
para convertirlo en un documento
PDF.
Comienza la redaccion de un fichero paper.ms
.
ingresando:
nano paper.ms
El lenguaje de descripcion de nroff recurre a comandos breves iniciados con un punto, dispuestos en una linea individual del texto. Estos se denominan "comandos punto".
Estructura de documento
El paquete de macros -ms asume una estructura de documento determinada, que debe tener en cuenta el siguiente orden de precedencia:
- Si escribes un documento formal que tiene una pagina de
tapa, comienza con
.RP
- Definicion registros y cadenas para establecer una fuente personalizada, tamano de fuente y margenes, etcetera.
- Informacion de documento, como el titulo y el autor.
- El cuerpo del texto, usando encabezados y parrafos.
Si esta satisfecho con las opciones por defecto, puedes iniciar la redaccion de tu documento con la informacion de documento, y luego el cuerpo del texto.
Informacion del documento
El paquete de macros -ms ofrece muchas opciones para definir la informacion del documento, pero nos abocaremos a unas pocas a utilizar por el principiante:
Titulado
Comience el titulo con la macro .TL
, cualquier linea que
le siga a continuacion resultara formateada como
titulo.
Atribucion
Defina el autor usando .AU
y
mecanografie el nombre del autor en las lineas que siguen a
continuacion. Para incluir la institucion del autor
(por ejemplo, para completar un paper academico), usando la macro
.AI
, en introduzca la institucion a atribuir en la
siguiente linea.
Fechado
Para incluir una fecha en el pie de pagina del documento, recurra a
la macro .DA
, situada una linea en si misma. Tambien puede
darle un argumento de fecha especifico, para aportar una fecha
especifica.
Abstract
Es costumbre en los papers agregar una descripcion denominada abstract, a menudo en ingles. De ser provisto, este abstract deberia ser el ultimo item antes de mecanografiar el cuerpo del texto.
Para crear un bloque de anstract. deje una linea en blanco y
abra el abstrac con la macro .AB
para darle inicio, escriba
el contenido del abstract, y cierre el bloque de abstract con la macro
.AE
.
Veamos el ejemplo:
.TL
Este es el titulo
.AU
~fulana
.AI
Mi institucion
.DA "Hoy"
.AB
Este es el abstract.
Si esta redactando un paper cientifico concebido
para su publicacion academica, podria querer agregar
un abstract.
.AE
Cuerpo del Documento
Muy a menudo, los documentos se estructuran recurriendo a titulares y parrafos.
Titulares
Use la macro .NH
para iniciar un titular enumerado, y en
la linea siguiente ingrese el titulo de seccion.
Si en cambio se trata de un titular no numerados,
use la macro .SH
. Nuevamente, el titulo de seccion debe
indicarse en la linea siguiente.
==Parrafos Anteceda los parrafos regulares con la
macro .PP
en una linea especifica. Por defecto, este tipo
de parrafo consta de sangrado de primera linea (que es lo corriente en
la mayoria de los documentos academicos y profesionales).
Si en lugar de ello necesita un parrafo justificado a
izquierdas, recurra a antecederlo con la macro
.LP
.
Las citas utilizan un formato diferente, donde la
primer linea esta "desangrado" (en vez de sangrada) y las lineas
siguientes resultan sangradas. Para asignar este formato "desangrado"
utilizado en las citas, recurra a la macro .XP
.
Enfatizado
Para enfatizar el texto de distinta manera, tradicionalmente se usa tipografia en negrita o cursiva o subrayado.
La macro .B
pondra el texto a continuacion en
negrita, mientras que el macro .I
pondra
el texto a continuacion en cursiva. La macro .I
pondra el texto a continuacion en subrayado.
Es necesario cesar el enfatizado, usando la macro
.R
para volver al texto regular (llamado tambien texto
"roman). Esto es util si usted necesita formatear una frase en negrita,
pero no quiere que la coma final este en negrita. O podria necesitar
formatear texto en cursiva, pero tambien dentro de parentesis, pero
prefiere que las parentesis continuen en tipografia normal.
Para cualquiera de ellas tambien puede proveer un argumento que formatee solo dicho texto en negrita o cursiva. Si provee argumentos a continuacion, seran el "post" o "pre" texto, respectivamente.
Si utiliza .B
o .I
en una linea aislada,
todo el texto a continuacion aparecera en negrita o cursiva.
.TL
Este es el titulo
.AU
~fulana
.AI
Mi institucion
.DA "hoy"
.AB
Este es el abstract.
Si esta redactando un paper pensado para su publicacion
academica, podria considerar proveer un abstract.
.AE
.NH
Introduccion
.LP
En la mayoria de los documentos, podria querer usar
parrafos
.B
con sangrado en la primera linea.
.R
Pero si desea que su documento tenga una apariencia muy
interesante, considere utilizar un parrafo justificado
a izquierdas despues de los encabezados de seccion y
despues de la presentacion de imagenes grandes.
.PP
Despues de eso, use parrafos sangrados en primera
linea. Tambien puede usar un
.I
numero de registro
.R
para definir la cantidad de espacio para el
sangrado de la primer linea.
.SH
Trabajos
Citedos
.XP
Autor, A.B. Titulo de Articulo.
.I "Title of periodical" ,
.I "vol num"
.I "issue num" ), (
pages.
(he aqui algun texto extra para hacer que un parrafo desangrado se corte, para que pueda ver su apariencia)
Formato a Dos Columnas
Muchos jornales cientificos prefieren publicar articulos segun un formato a dos columnas. Las columnas mas angostas a menudo hacen que el texto sea mas facil de leer, si el texto no es demasiado largo.
Para formatear su documento en formato de dos columnas, agregue el
macro .2C
, pero recuerde la estructura del docuumento que
espera -ms; el macro .2C
se considera formateo de texto de
cuerpo, de modo que debe ir despues del abstract y antes de su primer
encabezado de seccion. Aqui hau un ejemplo mas largo que incluye algun
texto "lorem ipsum" en su lugar, para que pueda ver la salida del
formato en dos columnas:
.TL
Este es el titulo del paper
.AU
~fulana
.AI
texto-plano.xyz
.DA "hoy"
.AB
Este es el abstract.
Si escribe un paper pensado para su publicacion
academica, podria querer incluir un abstract.
.AE
.2C
.NH
Introduccion
...
.SH
Trabajos
Citados
.XP
Autor, A.B. Titulo del articulo.
.I "Titulo del periodico" ,
.I "vol num"
.I "issue num" ), (
pages.
(aqui va algun texto extra para hacer que el parrafo desangrado se corte, de manera que pueda ver
que apariencia tiene)
Render del groff
Podras convertir el documento de formato groff con codificacion UTF-8:
groff -ms -k -Tpdf paper.ms > paper.pdf
o bien, recurre a:
preconv | groff -Tpdf paper.ms > paper.pdf
Conclusion
¡Felicitaciones por haber terminado tu primer paper en groff!
Para aprender mas sobre dar formato con los macros -ms, lea el man de groff en su sistema con:
$ man groff_ms
Ver: Comandos de Groff