Herramientas de usuario

Diferencias

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

Enlace a la vista de comparación

Próxima revisión
Revisión previa
tutorial_de_groff [2025/02/18 23:58] – creado 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 comandos breves iniciados con un puntodispuestos en una línea individual del texto. Estos se denominan "comandos punto".
-Actualmente los sistemas [[unix#similares unixx|similares a UNIX]] ofrece fomateadores compatibles con nroff y troff (algunas distribuciones instalan un groff mínimo por defectoapenas lo suficiente para dar formato a páginas de manual que lo usan)+
  
 ====Estructura de documento==== ====Estructura de documento====
  
-El -ms macros asume una estructura de documento determinada, y usa este orde de precedencia:+El paquete de macros -ms asume una estructura de documento determinada, que debe tener en cuenta el siguiente órden de precedencia:
  
-  - Si escribe un documento formal con una //página de tapa//, comience con ''.RP'' +  - Si escribes un documento formal que tiene una //página de tapa//, comienza con ''.RP'' 
-  - Defina los //registros// y //cadenas// para establecer una fuente personalizada, tamaño de fuente y márgenes, etcétera.+  - 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//.   - Información de documento, como el //título// y el //autor//.
   - El cuerpo del texto, usando //encabezados// y //párrafos//.   - 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//.+Si está satisfecho con las opciones por defecto, puedes iniciar la redacción de tu documento con la //información de documento//, y luego el //cuerpo del texto//.
  
 ===Información del documento=== ===Información del documento===
  
-El macro -ms provee muchas opciones para definir la información del documento, pero como principiante, nos abocaremos a unas pocas:+El paquete de macros -ms ofrece muchas opciones para definir la información del documento, pero nos abocaremos a unas pocas a utilizar por el principiante:
  
-Comience el título con el macro ''.TL'', cualquier línea que le siga a continuación resultará formateada como título.+==Títulado== 
 +Comience el título con la 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'', la institución en la siguiente línea.+==Atribución== 
 +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 la macro ''.AI'', en introduzca la institución a atribuir 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.+==Fechado== 
 +Para incluir una fecha en el pie de página del documento, recurra a la macro ''.DA'', situada una línea en sí misma. También puede darle un argumento de fecha específico, para aportar una fecha específica.
  
-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.+==Abstract==
  
-<code groff>+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. 
 + 
 +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 abstract, y cierre el bloque de abstract con la macro ''.AE''.  
 + 
 + 
 + 
 +Veamos el ejemplo: 
 + 
 +<code troff>
 .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 lugar, tambié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//
  
-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 profesionales. Si necesita en su lugar un párrafo justificado a izquierdas, recurra al macro ''.LP''.+==Titulares==
  
-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 formatear como un párrado "desangrado", use el macro ''.XP''.+Use la macro ''.NH'' para iniciar un titular enumerado, y en la línea siguiente ingrese el **título de sección**.
  
-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ónserá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.+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.
  
-Si utiliza ''.B'' o ''.I'' en una línea aisladatodo el texto a continuación aparecerá en negrita o cursiva. Para impedir que el texto normal (llamado texto "roman"), use la macro ''.R''.+==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 a 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** //cursiva// o __subrayado__.  
 + 
 +La macro ''.B'' pondrá el texto a continuación en **negrita**mientras que el macro ''.I'' pondrá el texto a continuación en //cursiva//La macro ''.I'' pondrá el texto a continuación en __subrayado__. 
 + 
 +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 negritapero 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
  
 <code groff> <code groff>
Línea 99: Línea 133:
 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 necesitar proveer un abstract si está redactando +Si está redactando un paper pensado para su publicación 
-un paper científico pensado para su publicación académica.+académica, podría considerar proveer un abstract.
 .AE .AE
 .NH .NH
Línea 112: 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 119: 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 131: Línea 171:
 .I "issue num" ), ( .I "issue num" ), (
 pages. pages.
-(aquí hau algún texto extra para hacer que un párrafo desangrado se corte, para que pueda ver su apariencia)+(he aquí algún texto extra para hacer que un párrafo desangrado se corte, para que pueda ver su apariencia)
 </code> </code>
  
  
-====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 143: Línea 183:
 <code groff> <code groff>
 .TL .TL
-This is the title+Este es el título del paper
 .AU .AU
-Jim Hall+~fulana
 .AI .AI
-My Institution +texto-plano.xyz 
-.DA "today"+.DA "hoy"
 .AB .AB
-This is the abstract. +Este es el abstract. 
-You might need to provide an abstract if you are +Si escribe un paper pensado para su publicación 
-writing a scientific paper intended for academic +académica, podría querer incluir un abstract.
-publication.+
 .AE .AE
 .2C .2C
 .NH .NH
-Introduction +Introducción 
 + 
 ... ...
 + 
 .SH .SH
-Works +Trabajos 
-Cited+Citados
 .XP .XP
-Author, A.B. Title of article+Autor, A.B. Título del artículo
-.I "Title of periodical" ,+.I "Título del periódico" ,
 .I "vol num" .I "vol num"
 .I "issue num" ), ( .I "issue num" ), (
 pages. pages.
-(here is some extra text to cause the exdented paragraph +(aquí va algún texto extra para hacer que el párrafo desangrado se cortede manera que pueda ver  
-to wrapso you can see what it looks like)+qué apariencia tiene)
 </code> </code>
  
-====Redactando con groff====+==== Render del groff==== 
 + 
 +Podrás convertir el documento de formato groff con [[codificacion_de_texto|codificación UTF-8]]:
  
-Si bien groff es algo nicho estos días, le permitirá escribir un documento profesional recurriendo a su [[editores de texto|editor de texto favorito]]+<code bash>groff -ms -k -Tpdf paper.ms > paper.pdf</code>
  
-Con groff podrá  enfocarme en el contenido de lo que estoy redactandocon poca distracción. Después de un tiempo, encuentro que los "comandos punto" para dar formato mi documento se vuelven casi naturales, o al menos muy poco distractivos.+o bienrecurre a:
  
-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 PDF, escriba:+<code bash>preconv | groff  -Tpdf paper.ms > paper.pdf</code> 
 +====Conclusión====
  
-<code bash>groff -ms -Tpdf paper.ms > paper.pdf</code>+¡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 188: 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