original in en Egon
Willighagen
en to es Walter Echarri
En 1999 se unió al grupo alemán de LF y a principios de este año se transformó en su segundo editor. Es estudiante de química analítica de la Universidad de Nijmegen. Juega al basket y disfruta haciendo excursiones.
La primera parte se centrará en el formato de los documentos DocBook. Tras una breve introducción, se explicaran las herramientas necesarias para convertirlos en documentos PDF y así poder verlos con el Acrobat Reader.
DocBook [1] es una aplicación SGML desarrollada para el marcado de documentos. A diferencia del HTML, DocBook no ofrece ninguna información sobre el formato del documento y es por esta razón que se necesita de una conversión previa para poder visualizarlo. La conversión se realiza con herramientas que aplican una determinada hoja de estilo al documento DocBook.
Posteriormente se explicará el tipo de hoja de estilo que debe usarse para la conversión y la herramienta necesaria para ello.
DocBook es capaz de trabajar con dos tipos de documentos: artículos y libros. Puesto que en esencia son idénticos, emplearé como ejemplo el marcado de un artículo. Previamente daré una descripción básica de DocBook.
DocBook es en principio una aplicación SGML al igual que el HTML. Pero también existe una versión XML que si bien es más limitada, es más fácil de leer y , por lo tanto, más fácil de aprender. Puesto que el XML es en sí mismo una aplicación SGML, se pueden seguir usando las herramientas del SGML. La principal diferencia entre ambas variantes son las siguientes (y ésto es válido para cada aplicación XML):
Teniendo en cuenta estas importantes formalidades, podemos empezar a escribir artículos con DocBook.
<?xml version="1.0"?> <article> <title>Escribir artículos DocBook</title> <artheader> <abstract> El presente artículo explica como usar DocBook para crear documentos PDF y cubre las herramientas necesarias para editar documentos DocBook y transformarlos al formato PDF. </abstract> <author> <firstname>Egon</firstname> <surname>Willighagen</surname> </author> <date></date> </artheader> </article>
Se diría que no es muy difícil. Hemos comenzado con un artículo con su título, un breve resumen, la fecha en que fue escrito y el nombre de su autor.
El siguiente paso consiste en añadir secciones al artículo haciendo uso de etiquetas de sección (<section>, </section>):
<?xml version="1.0"?> <article> <title>Escribir artículos DocBook</title> <artheader> ... Encabezado del artículo ... </artheader> <section> <title>Introducción</title> </section> ... otras secciones ... </article>
Al artículo se le ha agregado una sección Introducción. Se pueden añadir más secciones para obtener Resultados, Conclusión, etc.
Todo el texto está contenido entre etiquetas de párrafo (<para>, </para>), comparables a los elementos <P></P> del 'HTML':
<section> <title>Introducción</title> <para> DocBook es una aplicación SGML desarrollada para el marcado de texto, al igual que el HTML lo es para el marcado de documentos web. </para> </section>
Pero además de las etiquetas de párrafo están disponibles una gran cantidad de otras etiquetas. En lo que resta de esta sección se explicará como insertar en el artículo ejemplos, listas, gráficos, etc.
Añadir ejemplosLos ejemplos se pueden agregar mediante el uso de etiquetas de ejemplo (<example>, </example>), como se muestra a continuación:
<example> <title>Programa en Perl que convierte un documento XML en una página HTML.</title> <programlisting> #!/usr/bin/perl -w use diagnostics; use strict; use XML::XSLT; my $XSLTparser = XML::XSLT->new(); $XSLTparser->open_project ("file.xml", "stylesheet.xsl", "FILE", "FILE"); $XSLTparser->process_project; $XSLTparser->print_result(); </programlisting> </example>
Al igual que en el HTML, DocBook también puede contener listas. Las listas se definen mediante la etiqueta de listas no ordenadas (<itemizedlist>, </itemizedlist>) que contiene una o más etiquetas de items (<listitem>, </listitem>):
<itemizedlist> <listitem> <para>an item</para> </listitem> <listitem> <para>another item</para> </listitem> <listitem> <para>and again an item</para> </listitem> </itemizedlist>
Asimismo las listas pueden ordenarse. En este caso se puede usar la etiqueta de listas ordenadas (<orderedlist>, </orderedlist>) en vez de la etiqueta de listas no ordenadas. Agregando un parámetro numérico (ej.<orderedlist numeration="Arabic">) se puede obtener una lista numerada.
Añadir gráficosSe pueden poner imágenes en el artículo:
<mediaobject> <imageobject> <imagedata fileref="alguna_imagen.gif" format="gif"/> </imageobject> <textobject> <para> Si no se está usando <productname>Lynx</productname> se puede ver un gráfico. </para> </textobject> </mediaobject>
Nótese también que la palabra Lynx está resaltada. Éste es un rasgo característico de los lenguajes de marcado en donde el formato está separado de la información. El artículo establece que Lynx es un producto. Posteriormente la hoja de estilo establecerá que el nombre del producto debe mostrarse en un formato específico, por ejemplo, en cursiva. En la siguiente sección veremos algunos métodos de marcado de palabras.
Marcado de palabrasComo hemos visto en el ejemplo de arriba, se pueden resaltar palabras. En la siguiente tabla se muestran algunas etiquetas de marcado aplicadas a palabras:
Etiqueta | Descripción |
---|---|
abbrev | Una abreviatura, en particular una terminada en punto. Ejemplo: <para><abbrev>ej.</abbrev> significa por ejemplo.</para> |
acronym | Un acrónimo Ejemplo: <para><acronym>DSM</acronym> (compañía química) significa "De StaatsMijnen" (Minas del Estado en alemán). </para> |
La dirección electrónica de una persona Ejemplo: <para>Mi email es <email>egon.w@linuxfocus.org</email></para> |
|
keyword | Palabras claves del artículo Ejemplo: <para>En mi humilde opinión <keyword>la química</keyword> es muy importante.</para> |
Tras esta breve introducción a las etiquetas de DocBook, estamos en condiciones de crear los documentos PDF.
Una vez obtenido el documento DocBook, podemos convertilo a distintos formatos. Además del PDF, se puede convertir en documento PostScript, en archivo fuente Tex o en documento RTF (Formato de texto enriquecido) que puede leerse con WordPerfect, Word, StarWriter y otros procesadores de texto. Sin embargo, en el presente artículo haremos únicamente hincapié en la conversión a documento PDF.
Los documentos DocBook se pueden escribir con cualquier editor tales como Vi y Enedit. Mejor aún con Emacs: Norman Walsh ha escrito un modo mayor de Emacs para DocBook [3] que agrega ciertas funcionalidades útiles como el poder completar el nombre de las etiquetas o insertar plantillas. Antes de crear tu propio artículo de prueba, puedes bajarte mi versión que contiene los ejemplos dados en este artículo.
Como he explicado al principio se necesita tanto una hoja de estilo como una herramienta que haga uso de ella para convertir el artículo DocBook en formato PDF. De hecho la hoja de estilo no hace la conversión de manera automática sino que requiere de un paso intermedio con TeX. Las hojas de estilo que usaremos son las Hojas de Estilo Modulares de DocBook de Norman Walsh [4] escritas en DSSSL.
Para emplear en el proceso de conversión las hojas de estilo en DSSSL, se necesita un procesador DSSSL. El procesador que utilicé se denomina Jade [5] que fue desarrollado por James Clark (actualmente ha dejado de brindar soporte a esta herramienta). Fue reemplazado por OpenJade [6], una utilidad que aún no he tenido posibilidad de probar.
En mi sistema Debian las Hojas de Estilo Modular de Walsh para conversiones a PDF se encuentran instaladas en /usr/lib/sgml/stylesheets/dsssl/docbook/nwalsh/print/ y son accesibles desde Jade mediante el parámetro "-d". Por otra parte, la opción "-t" indica a Jade que use a TeX para obtener el documento final:
egonw@localhost> ls -al total 3 -rw-r--r-- 1 egonw egonw 2887 Apr 8 22:06 docbook_article.xml > jade -t tex -d /usr/lib/sgml/stylesheets/dsssl/docbook/nwalsh/print/docbook.dsl docbook_article.xml > ls -al total 21 -rw-r--r-- 1 egonw egonw 2887 Apr 8 22:06 docbook_article.xml -rw-r--r-- 1 egonw egonw 17701 Apr 8 22:29 docbook_article.tex
egonw@localhost> ls -al total 21 -rw-r--r-- 1 egonw egonw 2887 Apr 8 22:06 docbook_article.xml -rw-r--r-- 1 egonw egonw 17701 Apr 8 22:29 docbook_article.tex egonw@localhost> pdfjadetex docbook_article.tex
El lenguaje DocBook XML es muy amplio y los métodos para convertir los documentos en otros formatos son diversos. Este artículo sólo proporciona una pequeñísima introducción. Las preguntas pueden formularse en la página de consulta de este artículo. Más información se puede encontrar en las referencias [8] y [9]. ¡Fíjense que esta última referencia ha sido completamente escrita en DocBook!
Los tópicos avanzados que no han sido cubiertos por el presente artículo pero que están disponibles con DocBook son: