Herramientas de usuario

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
tutorial_de_groff [2025/02/19 00:07] perontutorial_de_groff [2026/04/21 16:09] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
-====== Tutorial de groff -ms ======+====== Tutorial de groff ======
  
-====Introducción====+**[[groff]]** o **GNU troff**, es un conjunto de programas de aplicación y macros de composición pensadas para dar formato profesional a textos.
  
 +El sistema se basa en escritura de texto plano, y representó la máxima calidad posible para tratamiento de textos hasta la popularización de la tecnología WYSIWYG a finales de los 80s ("Lo que ve es lo que obtiene").
  
-Empecemos a usar groff -ms para crear documentos técnicos hermosos. Comencaremos con lo básico para poder utilizar el paquete de macros -ms para obtener documentos PDF de apariencia profesional. 
  
  
 +====Introducción====
  
-Si quiere explorar groff, puede necesitar instalar los paquetes restantes: en Fedora Linux, podría querer usar esto:+En este tutorial aprenderá a dar formato académico básico a un //paper// recurriendo a **groff**. El paquete de macros **-ms** aqu{ expuesto le permitirá obtener documentos de apariencia excelsa y profesional, en formato de impresión PDF.
  
-<code bash>$ sudo dnf install 'groff-*'</code>+{{ :paper.png?200 |}}
  
-===Historia=== 
  
-El **paquete de macros -ms** tiene una larga historia, pero la resumiré de esta manera: Cuando Ken Thompson creó [[Unix]] en los [[Laboratorios Bell]], uno de los primeros programas fue el sistema de formateo de texto de Joe Ossana, **roff**Se trataba de una versión del [[ctss|formateador RUNOFF de Jerry Saltzer]]que sólo soportaba las versiones abreviadas de los comandos de RUNOFF+Recurriendo a groff podrá enfocarse en el contenido de redacción sin distraerse demasiado con el formato básicoDescubrirá que en poco tiempodominará los "comandos punto" para dar formato a mi documento, y éstos se volverán casi naturales.
  
-Mas adelante, tras una solicitud del equipo de Legales a fin de poder afrontar la preparación de formularios y aplicaciones de patentes, el equipo de UNIX actualizó roff agregándole soporte de formato más avanzado (denominándolo **nroff** o "nuevo roff"). 
  
-Mucho después, los Laboratorios Bell adquirieron una fotocomponedora Graphic Systems modelo C/A/T, y Ossana nuevamente volvió a actualizar el nroff para aprovechar su impresión de gran calidad.+====Uso de Groff====
  
->nroff hacía fácil redactar papers en una [[teletipo]], y obtener impresión con una apariencia profesional.+Utilizará su [[editores de texto|editor de texto favorito]] para generar un documento ''fichero.ms'' descriptivoa fin de lograr un documento final profesional con ''groff -ms''.
  
-A lo largo de estos avances, los trabajadores de los Laboratorios Bell fueron conformando una gran colección de  de macros de formateo destinados a la escritura técnica avanzada: el paquete de macros -ms posibilitaba facilitar la preparación de documentos para lograr una excelente presentación impresa. +===Instalación===
  
 +Ciertas distribuciones de BSD/Linux incluyen por defecto una versión mínima de groff, apenas suficiente para dar formato a páginas de [[man]]. En tal casos, si desea explorar groff al completo, podría tener que recurrir a instalar paquetes restantes:
  
 +==Ubuntu Linux===
 +<code bash>$ sudo apt install groff-*</code>
  
-La mayoría de la gente prepara documentos en nroff recurriendo un paquete de //macros//, y al principio yo use el **-me** macros, de Eric Allman.  +==Fedora Linux==
  
 +<code bash>$ sudo dnf install 'groff-*'</code>
  
  
-Exploremos cómo empezar con ''groff -ms'' para crear documentos. 
  
-Usaremos un [[editores de texto|editor de texto]] para crearemos un fichero llamado ''[[paper.ms]]''Por ejemplo:+====Redactar con groff==== 
 + 
 +Exploremos cómo empezar con ''groff -ms'' para crear un documento académico. En este ejemplo, redactará un //paper//, y luego usará ''groff -ms'' para convertirlo en un documento PDF. 
 + 
 +Comienza la redacción de un fichero ''[[paper.ms]]''ingresando:
  
 <code bash> <code bash>
Línea 38: Línea 44:
 </code> </code>
  
 +>El lenguaje de descripción de nroff recurre a comandos breves iniciados con un punto, dispuestos en una línea individual del texto. Estos se denominan "comandos punto".
  
-Actualmente los sistemas [[unix#similares a unixx|similares a UNIX]] ofrece fomateadores compatibles con nroff y troff (algunas distribuciones instalan un groff mínimo por defecto, apenas lo suficiente para dar formato a páginas de manual que lo usan).+====Estructura de documento====
  
-====Uso de Groff===+El paquete de macros -ms asume una estructura de documento determinada, que debe tener en cuenta el siguiente órden de precedencia:
  
-===Redactar con groff===+  - Si escribes un documento formal que tiene una //página de tapa//, comienza con ''.RP'' 
 +  - Definición //registros// y //cadenas// para establecer una fuente personalizada, tamaño de fuente y márgenes, etcétera. 
 +  - Información de documento, como el //título// y el //autor//
 +  - El cuerpo del texto, usando //encabezados// y //párrafos//.
  
-Si bien groff es algo nicho estos díasle permitirá escribir un documento profesional recurriendo a su [[editores de texto|editor de texto favorito]]+Si está satisfecho con las opciones por defectopuedes iniciar la redacción de tu documento con la //información de documento//, y luego el //cuerpo del texto//.
  
-Con groff podrá  enfocarme en el contenido de lo que estoy redactando, con poca distracción. Después de un tiempo, encuentro que los "comandos punto" para dar formato a mi documento se vuelven casi naturales, o al menos muy poco distractivos.+===Información del documento===
  
-Con groff, puede producir diferente tipos de salida, incluyendo [[HTML]] para la entrega en la [[world wide web]], PDF para ver en línea, y PostScript para salida impresa. Por ejemplo, para formatear un paper usando groff -ms como un PDFescriba:+El paquete de macros -ms ofrece muchas opciones para definir la información del documentopero nos abocaremos a unas pocas a utilizar por el principiante:
  
-====Estructura de documento====+==Títulado== 
 +Comience el título con la macro ''.TL'', cualquier línea que le siga a continuación resultará formateada como **título**.
  
-El -ms macros asume una estructura de documento determinada, usa este orde de precedencia:+==Atribución== 
 +Defina el **autor** usando ''.AU'' mecanografíe el nombre del autor en las líneas que siguen a continuación. Para incluir la **institución** del autor (por ejemplo, para completar un paper académico), usando la macro ''.AI'', en introduzca la institución a atribuir en la siguiente línea.
  
-  - Si escribe un documento formal con una //página de tapa//comience con ''.RP'' +==Fechado== 
-  - Defina los //registros// y //cadenas// para establecer una fuente personalizada, tamaño de fuente y márgenes, etcétera. +Para incluir una fecha en el pie de página del documentorecurra a la macro ''.DA'', situada una línea en sí mismaTambién puede darle un argumento de fecha específicopara aportar una fecha específica.
-  - Información de documentocomo el //título// y el //autor//+
-  - El cuerpo del texto, usando //encabezados// y //párrafos//.+
  
-Si está satisfecho con las opciones por defecto, su documento puede iniciarse con la //información de documento//, y luego el //cuerpo del texto//.+==Abstract==
  
-===Información del documento===+Es costumbre en los papers agregar una descripción denominada **abstract**, a menudo en inglés. De ser provisto, este abstract debería ser el último ítem antes de mecanografiar el //cuerpo// del texto.
  
-El macro -ms provee muchas opciones para definir la información del documentopero como principiante, nos abocaremos a unas pocas:+Para crear un bloque de //anstract//. deje una línea en blanco y abra el abstrac con la macro ''.AB'' para darle inicio, escriba el contenido del abstracty cierre el bloque de abstract con la macro ''.AE''
  
-Comience el título con el macro ''.TL'', cualquier línea que le siga a continuación resultará formateada como título. 
  
-Defina el autor usando ''.AU'' y mecanografíe el nombre del autor en las líneas que siguen a continuación. Para incluir la institución del autor (por ejemplo, para completar un paper académico), usando el macro ''.AI'', y la institución en la siguiente línea. 
  
-Para incluir una fecha en el pie de página del documento, recurra al macro ''.DA'', en una línea en sí misma. También puede darle un argumento de fecha específico, para aportar una fecha específica.+Veamos el ejemplo:
  
-Si su documento requiere un //anstract//. use el macro ''.AB'' para darle inicio, y ''.AE'' para finalizar el abstract. El abstract - si es provisto - debería ser el último ítem provisto antes de mecanografiar el //cuerpo// del texto. +<code troff>
- +
-<code groff>+
 .TL .TL
 Este es el título Este es el título
 .AU .AU
-Jim Hall+~fulana
 .AI .AI
 Mi institución Mi institución
-.DA "today"+.DA "Hoy" 
 .AB .AB
 Este es el abstract. Este es el abstract.
-Podría querer proveer un abstract si está redactando +Si está redactando un paper científico concebido  
-un paper científico pensado para su publicación +para su publicación académica, podría querer agregar 
-académica.+un abstract.
 .AE .AE
 +
 </code> </code>
  
-Sample output from groff -ms 
-Sample output from groff -ms 
  
 ===Cuerpo del Documento=== ===Cuerpo del Documento===
  
-Los documentos a menudo están estructurados usando //encabezados// y //párrafos//. Use ''.NH'' para comenzar un encabezado enumerado, y en las línea siguiente ingrese el título de sección. Para los encabezados no numerados, use el macro ''.SH'' en su lugartambién con el título de sección en la línea a continuación.+Muy a menudo, los documentos se estructuran recurriendo a //titulares// y //párrafos// 
 + 
 +==Titulares== 
 + 
 +Use la macro ''.NH'' para iniciar un titular enumerado, y en la línea siguiente ingrese el **título de sección**. 
 + 
 +Si en cambio se trata de un **titular no numerados**, use la macro ''.SH''. Nuevamente, el título de sección debe indicarse en la línea siguiente. 
 + 
 +==Párrafos== 
 + 
 +Anteceda los **párrafos regulares** con la macro ''.PP'' en una línea específica. Por defecto, este tipo de párrafo consta de sangrado de primera línea (que es lo corriente en la mayoría de los documentos académicos y profesionales).  
 + 
 +Si en lugar de ello necesita un **párrafo justificado izquierdas**, recurra a antecederlo con la macro ''.LP''
 + 
 +Las **citas** utilizan un formato diferente, donde la primer línea está "desangrado" (en vez de sangrada) y las líneas siguientes resultan sangradas. Para asignar este formato "desangrado" utilizado en las citas, recurra a la macro ''.XP''
 + 
 +==Énfatizado== 
 + 
 +Para enfatizar el texto de distinta manera, tradicionalmente se usa tipografía en **negrita** o //cursiva// o __subrayado__
  
-Comience los párrafos regulares con el macro ''.PP'' en una línea especófoca. Por defecto, este será un párrafo con sangrado de primera línea, que es corriente en la mayoría de los documentos académicos y profesionalesSi necesita en su lugar un párrafo justificado izquierdas, recurra al macro ''.LP''.+La macro ''.B'' pondrá el texto a continuación en **negrita**mientras que el macro ''.I'' pondrá el texto continuación en //cursiva//. La macro ''.I'' pondrá el texto a continuación en __subrayado__.
  
-Las //citas// utilizan un formato diferentedonde la primer línea está "desangrado" (en vez de sangrada) y las líneas siguientes resultan sangradas. Para formatear como un párrado "desangrado", use el macro ''.XP''.+Es necesario __cesar el enfatizado__usando la macro ''.R'' para volver al texto regular (llamado también texto "roman). Esto es útil si usted necesita formatear una frase en negrita, pero no quiere que la coma final esté en negrita. O podría necesitar formatear texto en cursiva, pero también dentro de paréntesis, pero prefiere que las paréntesis continúen en tipografía normal.
  
-Para distintos tipos de énfasis dentro del texto, use texto en **negrita** o //cursiva//. El macro ''.B'' pondrá el texto a continuación en **negrita**, mientras que el macro ''.I'' pondrá el texto a continuación en //cursiva//Para cualquiera de ellas también puede proveer un argumento que formatee sólo dicho texto en negrita o cursiva. Si provee argumentos a continuación, serán el "post" o "pre" texto, respectivamente. Esto es útil si usted necesita formatear una frase en negrita, pero no quiere que la coma final esté en negrita. O podría necesitar formatear texto en cursiva, pero también dentro de paréntesis, pero prefiere que las paréntesis continúen en tipografía normal.+Para cualquiera de ellas también puede proveer un argumento que formatee sólo dicho texto en negrita o cursiva. Si provee argumentos a continuación, serán el "post" o "pre" texto, respectivamente. 
  
-Si utiliza ''.B'' o ''.I'' en una línea aislada, todo el texto a continuación aparecerá en negrita o cursiva. Para impedir que el texto normal (llamado texto "roman"), use la macro ''.R''.+Si utiliza ''.B'' o ''.I'' en una línea aislada, todo el texto a continuación aparecerá en negrita o cursiva. 
  
 <code groff> <code groff>
Línea 112: Línea 136:
 .AI .AI
 Mi institución Mi institución
-.DA "today"+.DA "hoy"
 .AB .AB
 Este es el abstract. Este es el abstract.
Línea 122: Línea 146:
 .LP .LP
 En la mayoría de los documentos, podría querer usar En la mayoría de los documentos, podría querer usar
-párrafos con sangrado en la primera línea. Pero si +párrafos  
-desea que su documento tenga una apariencia muy+.B 
 +con sangrado en la primera línea. 
 +.R 
 +Pero si desea que su documento tenga una apariencia muy
 interesante, considere utilizar un párrafo justificado interesante, considere utilizar un párrafo justificado
 a izquierdas después de los encabezados de sección y a izquierdas después de los encabezados de sección y
Línea 129: Línea 156:
 .PP .PP
 Después de eso, use párrafos sangrados en primera Después de eso, use párrafos sangrados en primera
-línea. También puede usar un número de registro para +línea. También puede usar un  
-definitr la cantidad de espacio para el sangrado de +.I 
-la primer línea.+número de registro 
 +.R 
 +para definir la cantidad de espacio para el  
 +sangrado de la primer línea.
 .SH .SH
 Trabajos Trabajos
Línea 145: Línea 175:
  
  
-====Formato de Dos Columnas====+===Formato Dos Columnas===
  
-Muchos jornales científicos prefieren publicar artículos en formato de dos columnas. Las columnas más angostas a menudo hacen que el texto sea más fácil de leer, si el texto no es demasiado largo.+Muchos jornales científicos prefieren publicar artículos según un formato dos columnas. Las columnas más angostas a menudo hacen que el texto sea más fácil 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 después del abstract y antes de su primer encabezado de sección. Aquí hau un ejemplo más largo que incluye algún texto "lorem ipsum" en su lugar, para que pueda ver la salida del formato en dos columnas: 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 después del abstract y antes de su primer encabezado de sección. Aquí hau un ejemplo más largo que incluye algún texto "lorem ipsum" en su lugar, para que pueda ver la salida del formato en dos columnas:
Línea 158: Línea 188:
 .AI .AI
 texto-plano.xyz texto-plano.xyz
-.DA "today"+.DA "hoy"
 .AB .AB
 Este es el abstract. Este es el abstract.
Línea 185: Línea 215:
 ==== Render del groff==== ==== Render del groff====
  
-<code bash>groff -ms -Tpdf paper.ms > paper.pdf</code>+Podrás convertir el documento de formato groff con [[codificacion_de_texto|codificación UTF-8]]: 
 + 
 +<code bash>groff -ms -k -Tpdf paper.ms > paper.pdf</code> 
 + 
 +o bien, recurre a: 
 + 
 +<code bash>preconv | groff  -Tpdf paper.ms > paper.pdf</code> 
 +====Conclusión==== 
 + 
 +¡Felicitaciones por haber terminado tu primer paper en groff!
  
 Para aprender más sobre dar formato con los macros -ms, lea el man de groff en su sistema con: Para aprender más sobre dar formato con los macros -ms, lea el man de groff en su sistema con:
Línea 191: Línea 230:
 <code bash>$ man groff_ms</code> <code bash>$ man groff_ms</code>
  
 +Ver: [[groff#comandos de groff|Comandos de Groff]]

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información