[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Revisión] Debia-sgml-HOWTO



    Saludos 
    No sé a quién corresponde, pero esta es la traducción del documento:
    ddp/manuals.sgml/sgml-howto.


    El paquete es muy antiguo pero lo encontré interesante, porque yo
tenía un lío entre XML, HTML, SGML, DSSSL, etc; y no encontraba un
resumen sencillo por ahí. Espero que sea util para los novatos como yo.


    Por cierto, me amparo en lo de novato para pedir perdón por los
errores de cualquier tipo que pueda haber. No entro a reformar más
profúndamente el documento porque todavía no conozco bien el SGML, ni
las licencias que se pueden permitir los traductores. Tampoco he
conseguido convertir el documento a HTML para ver como queda (muy
novato). Me he permitido únicamente incluir un crédito como traductor,
aunque no sé si de la forma correcta.


    Sin embargo veo que el documento necesita algunas actualizaciónes en
cuanto a los paquetes según las versiones de Debian. Si es necesario
aclararlo por mi parte, con que se me indique, me pongo a investigar el
asunto.


    Una pregunta respecto a la lista: No recibo en mi correo los
mensajes de la lista aunque he realizado el proceso de subscripción. ¿Es
esto correcto?. ¿Qué me permite entonces estar subscrito?. 


    Saludos afectuosos a la lista y hasta pronto.

-- 
Juan Ruiz Segura
juruseg@teleline.es
Granada - España
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE article PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1//EN"
     "dtd/docbook-xml/docbookx.dtd"[

<!-- TODO: a <man> element with a link to -->
<!-- http://www.sources.org/cgi-bin/dwww?type=man&location=/usr/man/man1/sgml2latex.1.gz for the HTML output -->

<!-- TODO: includes the programlisting into their paragraphs? -->

<!-- TODO: externalize the following declarations in other -->
<!-- files. Warning: this will mean a validating XML parser to treat -->
<!-- the conditionals. First attemps with XML::Checker are not -->
<!-- convincing. -->
<!-- A possible alternative would be to "rxp -e" before processing -->
<!-- it. -->

<!-- Programs -->
<!ENTITY sgmltools2 '<link linkend="sgmltools2">SGMLtools, version 2</link>'>
<!ENTITY sgmltools1 '<link linkend="sgmltools1">sgml-tools, version 1</link>'>
<!ENTITY jade '<link linkend="jade">jade</link>'>
<!ENTITY jadetex '<link linkend="jadetex">jadetex</link>'>
<!ENTITY psgml '<application>Emacs</application>&apos; SGML mode, <link linkend="psgml">psgml</link>'>
<!ENTITY modular_ss '<link linkend="modularss">Modular DocBook Stylesheets</link>'>

<!-- Files -->
<!ENTITY print_ss
       '/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl'>
<!ENTITY html_ss 
       '/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl'>
<!ENTITY xml_decl_slink
'<filename>/usr/lib/sgml/declaration/xml.decl</filename>'>
<!ENTITY xml_decl_potato
'<filename>/usr/lib/sgml/declaration/xml.dcl</filename>'>

<!-- New elements -->

<!-- The contents of the debianpackage element is the official name -->
<!-- The name attribute holds the Debian name, if it's different -->
<!ELEMENT debianpackage (#PCDATA)>
<!ATTLIST debianpackage name CDATA #IMPLIED>
<!ATTLIST debianpackage refserver CDATA #IMPLIED>
<!ENTITY % local.title.char.mix
	"|debianpackage">

<!ELEMENT debiandoc (#PCDATA)>
<!ATTLIST debiandoc file CDATA #IMPLIED>
<!ATTLIST debiandoc text CDATA #IMPLIED>
<!ENTITY % local.para.char.mix
	"|debiandoc|debianpackage">

<!ELEMENT manpage (#PCDATA)>

<!-- New attributes -->
<!ENTITY % local.common.attrib 
      "debianversionequal CDATA #IMPLIED
       debianversionmin   CDATA #IMPLIED
       debianversionmax   CDATA #IMPLIED">


]>

<article>

  <artheader>
    <title>El HOWTO SGML/XML de Debian</title>
    <author>
      <firstname>St&eacute;phane</firstname>
      <surname>Bortzmeyer</surname>
      <affiliation>
	<orgname>The Debian Project</orgname>
	<address><email>bortzmeyer@debian.org</email></address>
      </affiliation>   
    </author>
    <othercredit>
      <contrib>Spelling and grammar fixes</contrib>
      <firstname>Guy</firstname>
      <surname>Brand</surname>
      <affiliation>
	<address><email>guybrand@chimie.u-strasbg.fr</email></address>
      </affiliation>   
    </othercredit>
    <othercredit>
      <contrib>Spelling, grammar and style fixes</contrib>
      <firstname>John</firstname>
      <surname>van der Koijk</surname>
      <affiliation>
	<address><email>jvdkoijk@wirehub.nl</email></address>
      </affiliation>   
    </othercredit>
    <othercredit>
      <contrib>Traducción español</contrib>
      <firstname>Juan</firstname>
      <surname>Ruiz Segura</surname>
      <affiliation>
	<address><email>juruseg@teleline.es</email></address>
      </affiliation>   
     <releaseinfo>$Id: howto.es.db,v 1.1 2003/04/18 </releaseinfo>
    <copyright>
      <year>1999</year>
      <holder>St&eacute;phane Bortzmeyer</holder>
    </copyright>
    <legalnotice>
      <para>Este texto de distribuye conforme la 
      <ulink url="http://www.gnu.org/copyleft/gpl.html";>Licencia Pública
      General (GPL) 
	</ulink>.</para>
    </legalnotice>
  </artheader>

  <sect1>
    <title>¿Por qué este HOWTO? ¿Qué hay en él?</title>
    <para>Esta sección explica por qué existe este HOWTO y a quíen
    pretende ayudar. Puede ser util leerlo en primer lugar, para
    ahorrar tiempo.
    </para>
    <sect2>
      <title>¿Qué hay en este HOWTO</title>
      <para>Este HOWTO contiene información <emphasis>práctica</emphasis>
      sobre el uso de SGML y XML en un sistema operativo Debian.</para>
      <para>El HOWTO está orientado al trabajo: Verá qué paquetes Debian
      necesita para varias tareas, y como usarlos. Está destinado para las
      personas con poco tiempo, quienes no les gusta leer y comprender todos
      los detalles antes de empezar.  Y quién prefiere aprender mientras
      desarrollan.
      </para>
      <para>Abarcaremos SGML (y su subconjunto XML), algún DTD que
      encuentro importante y las herramientas para escribir, dar formato y
      mostrar SGML, sea en la  Web o en impresión. Es interés se centrará
      en SGML como una manera de escribir documentación, no como
      herramienta general de intercambio de datos.</para>
    </sect2>
    <sect2>
      <title>¿Qué no hay en este HOWTO?</title>
      <para>No encontrará nada sobre instalación o configuración de
      software, ya que asumimos que un sistema Debian ya tiene todo
      empaquetado. Usaremos solo paquetes Debian, tal como se distribuyen
      con <phrase debianversionequal="2.2">Debian 2.2, apodado'potato' 
      </phrase><phrase debianversionequal="2.1">Debian 2.1, apodado 'slink'</phrase>.
      </para>

      <para>Esto no es un cursillo de SGML o XML. Dirígase a 
      <xref linkend="references"/> para ese tipo de información.
	En su lugar usted adquirirá el suficiente SGML para empezar ahora.</para>
    </sect2>
    <sect2>
      <title>Meta-information sobre este HOWTO</title>
      <para>Este HOWTO está escrito en DocBook (XML) en un sistema Debian.
      Puede obtenerse desde
	<ulink url="http://www.debian.org/doc/manuals/sgml-howto/";>DDP
	web pages</ulink>, incluido su 
	<ulink url="http://cvs.debian.org/ddp/manuals.sgml/sgml-howto/?cvsroot=debian-doc";>código
        fuente</ulink>.
      </para>
    </sect2>
    <sect2>
      <title>¿Por qué es este HOWTO específico de Debian?</title>
      <para>He comentado que el propósito era comenzar rápidamente.
      ¿Recuerda? Esto supone usar el actual sistema de de nombres archivos,
      órdenes actuales y no perder tiempo compilando <application>jade</application>. 
      Odio insertar "las múltiples formas de hacer" por todas partes.
      Admás, elegí un sistema operativo específico y uso el mejor, <ulink
      url="http://www.debian.org/";>Debian</ulink>, que también es el único
      con un entorno SGML integrado... Aunque no sea perfeco, funciona,
      y con este HOWTO, Incluso tiene una  documentatión.</para>
      <para>He añadido algunos puntos a <link linkend="otheros">otros
      sistemas operativos</link>.</para>
    </sect2>
  </sect1>

  <sect1>
    <title>Lo que verdadéramente necesita saber sobre SGML</title>
    <para>He intentado mantener breve esta sección. Sin embargo no puedo
    explicar nada sin unos pequeños conceptos básicos sobre SGML. Así que
    allá vamos, antes que pasemos al código fuente actual.</para>
    <sect2>
      <title>¿Qué es documentación estructurada?</title>
      <para>La documentación estructurada está construida sobre elementos
      estructurados:
      Capítulos, secciones, párrafos, etc; donde todos los elmentos están
      cláramente etiquetados sobre lo que son: Referencias, salida de
      programas, etc. No hay información explícita sobre como se debe
      presentar la información; solo sobre su estructura (y contenido).
      Cuando existen reglas explícitas para presentación, se mantiene fuera
      del documento SGML.</para>
      <para>Esto permite el procesado automático de documentos
      sin necesitar sistemas inteligentes.  Lo que permite a los autores
      concentrarse en la estructura, y su significado.  </para>
      <para>Así, la pregunta ¿Como pongo una palabra en negrita con SGML?
      tiene poca relevancia. Uno  <emphasis>podría</emphasis> preguntar
      como poner énfasis en una zona de texto.</para>
    </sect2>
    <sect2>
      <title>¿Qué es SGML?</title>
      <para>Lenguaje de marcas, de estándar general (Standard
      Generalized  Markup Language) Es un lenguaje estándar destinado a
      facilitar la creación de documentación estructurada.
	<footnote><para>Tiene otros usos, como intercambio de datos.
        </para></footnote> Más específicamente, es un meta-lenguaje. Usted
        verdadéramente nuca escribe SGML. SGML es usado para
        describir un lenguaje estructurado, con un tipo de documento
        específico (el llamado DTD, Definición de Tipo de Documento o
        Document Tipe Definition), que define como determinados documenttos
        deben ser estructurados (o escritos).</para>
      <para>Además, decir que un documento está en "formato SGML" es
      técnicamente correcto, pero engañoso. Uno podría decir que un
      documento está en formato DocBook o en formato LinuxDoc o formato
      TEI.</para>
    </sect2>

    <sect2>
      <title>¿Qué apariencia tiene SGML?</title>
      <para>SGML es un lenguaje de marcas. Todos los documentos SGML
      incluyen texto mezclado con <emphasis>marcas</emphasis>, que
      delimitan <emphasis>elementos</emphasis><footnote><para>Según el DTD,
      la marca final end-tag puede ser obligatoria o no. En XML las márcas
      finales son siempre obligatorias.</para>
	</footnote>. SGML permite usar varias sintaxis, pero nosotros la
        usaremos con la sintaxis más común, donde las marcas van encerradas
        entre ángulos, &lt; y
      &gt;. Por ejemplo:</para>
	<programlisting role="docbook">
<![CDATA[
<article>

<title>El software GNUSoft</title>

<para>
GNUSoft es muy rápido. Y su documentación se puede leer fácilmente.
</para>
]]>
	</programlisting>
      <para>Si le parece como el HTML, es porque HTML es (teóricamente) un
      DTD de SGML.</para>
      <para>Los elementos tienen un <emphasis>contenido</emphasis>. Por
      ejemplo, el contenido del anterior <sgmltag>para</sgmltag>
        elemento es "GNUSoft es muy rápido. Y su documentación se puede leer
        fácilmente.".</para>
      <para>Los elementos pueden tener <emphasis>atributos</emphasis>  para
      indicar más información. Por ejemplo: </para>
	<programlisting role="docbook">
<![CDATA[
<example tested="true">
	    *c++;
</example>
]]>
	</programlisting>
      <para>Puede tener también <emphasis>entidades</emphasis> Lo que le
      permite indicar parámetros del texto. Por ejemplo, si usted se
      refiere a menudo a "El mejor sistema operativo, Debian" y quiere
      evitar escribirlo cada vez, o peor, tener que cambiar cada aparición
      si finálmente decide una redacción más modesta; puede declarar una
      endidad, que llamaremos "debian" y usamos con el signo ampersand
      "&amp;debian;"<footnote><para>Esta es <emphasis>endidad de
      referencia</emphasis>. SGML usa otro tipo de entidades, que no se
      describen en este HOWTO.</para></footnote>.</para>
	<para> Hay un elemento especial: El <emphasis>elemento raiz
	</emphasis> es el elemento global, que contiene a todo. En XML,
	la línea DOCTYPE indica cual es el elemento raiz. He aquí un
        ejemplo <phrase debianversionequal="2.2"> (Parece <emphasis>que hay
        un error </emphasis> en el entorno SGML de Debian 2.2, que requiere
        la ruta completa para el DTD mostrado. De ser así, esto es un error
        y lo investigaré <comment>TODO: hacer, un error en psgml ha sido
        tapado. Rastrealo.</comment>)</phrase>:<footnote debianversionmax="2.1">
	  <para>Puede necesitar poner completo el número de versión de DocBook,
	  por ejemplo, 3.1.3, según su versión de psgml.</para>
	</footnote> </para>
      <programlisting role="docbook">
<![CDATA[
<!DOCTYPE article PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1//EN"
     "dtd/docbook-xml/docbookx.dtd"[
]]>
      </programlisting>
	<sect3><title>¿Y los archivos XML?</title>
	<para>Posteriórmente verémos <link linkend="xml">algo sobre 
	XML</link>. Permitame decir solo que los archivos XML comienzan con una
	<emphasis>instruccíon para procesado</emphasis>, que comienza con 
	&lt;? y que, en ese caso indica que es un archivo XML, así como alguna
	meta-información. Ejemplo: </para>
	<programlisting role="docbook">
<![CDATA[
	<?xml version="1.0" encoding="utf-8"?>
]]>
	</programlisting>
	<para>Los archivos XML deben ser <emphasis>bien formados</emphasis>,
	Lo que significa que las marcas deben estar equilibradas (sin cruces
	entre ellas, como es común en la salida HTML de muchos eitores Web) y
	pueden ser <emphasis>válidas</emphasis> Lo que significa que son
	conformes a su DTD.</para>
	<para>En XML las marcas de inicio deben siempre tener una marca de fin,
	aunque pueden tener <emphasis>elementos vacíos </emphasis> donde las
	marcas de inicio y de fin se funden en una marca escrita con una / en el
	fin, como:</para>
	  <programlisting role="xml">
<![CDATA[
	    <foobar/>
]]>
	  </programlisting>
	</sect3>
    </sect2>

    <sect2>
      <title>¿Qué es un DTD?</title>
      <para>Una Definición de Tipo de Documento (Document Type Definition) es la
      descripción (en SGML) de un lenguaje específico. Puede escribir su propio
      DTD (no es muy dificil, sobr todo en XML) o puede usar uno ya definido, lo
      que es conveniente si quiere intercambiar documentos con otras personas.
      Existen varias clases de DTD, característicos según los propósitos de los
      grupos de personas que los usen (astrónomos, químicos, estudiosos de
      literatura antigua...).  <para>El DTD lista los elementos permitidos y sus
      relaciones (por ejemplo, dice que un <sgmltag>capítulo</sgmltag> debe
      tener al menos una <sgmltag>sección</sgmltag>).</para>
      <para>Los DTDs típicos que puede encontrar útiles:</para>
      <itemizedlist>
	<listitem>
	  <para><ulink url="http://www.oasis-open.org/docbook/";>DocBook</ulink>
	  está principálmente destinado a escribir documentación técnica,
	  especiálmente de software. </para>
	</listitem>
	<listitem>
	  <para><ulink url="http://www.linuxdoc.org/";>LinuxDoc</ulink>
	  es usado en el proyecto de documentación de Linux (Linux Documentation
	  Project), por ejemplo para los COMO,s (HOWTOs) de Linux HOWTOs. El LDP
	  ha decidido pasar a DocBook, pero la transición no ha concluido.</para>
	</listitem>
	<listitem>
	  <para><ulink
	  url="http://packages.debian.org/stable/text/debiandoc-sgml.html";>DebianDoc</ulink>
	  es usado en parte por el 
	    <ulink url="http://www.debian.org/doc/ddp";>Proyecto de documentación
	    Debian (Debian Documentation Project)</ulink>.</para>
	</listitem>
	<listitem>
	  <para><ulink url="http://www.w3.org/MarkUp/";>HTML</ulink> es en teoría
	  un DTD de SGML pero actuálmente muy pocas páginas Web le son
	  compatibles. Así que la mayoría de las herramientas SGML se bloquearán
	  en una típica página Web. </para>
	</listitem>
      </itemizedlist>
      <para>Al comienzo de un documento, encontrará una referencia al DTD a
      usar (hay varias formas de indicar dichas referencias, es siguiente
     ejemplo es para LinuxDoc):</para>
	<programlisting role="linuxdoc">
<![CDATA[
<!doctype linuxdoc system>

<article>

<title>The Linux Kernel HOWTO
]]>
	</programlisting>
      <comment>TODO: Explain FPI, PUBLIC and SYSTEM, etc.</comment>
    </sect2>

    <sect2>
      <title>¿Qué DTD escoger?</title>
      <para>Muy amenudo no tendrá elección: El proyecto al que pertenezca
      lo tendrá ya definido. Debido a que la estandarización es, por
      supuesto, muy importante en un proyecto de embergadura, Le queda poca
      oportunidad de elección. Por ejemplo, el Linux Documentation Project
      usa LinuxDoc, <ulink
      url="http://www.freebsd.org/docproj/docproj.html";>FreeBSD</ulink>,
      <ulink url="http://developer.gnome.org/arch/doc/tools.html";>GNOME</ulink> o <ulink
      url="http://www.kde.org/documentation/index.html";>KDE</ulink> usan DocBook, etc.</para>
      <para>Si toma uns elección, Le sugiero que permancezca próximo a lo
      que proyectos similares están haciendo. Si escribe documentación
      técnica para hardware o software, probáblemente significará usar DocBook.</para>
    </sect2>

    <sect2>
      <title>¿Cómo escribo SGML?</title>
      <para>Ya que SGML es un lenguaje de marcas, puede usar cualquier
      editor, como <application>vi</application> o incluso 
      <application>cat</application>.</para>
      <para>Pero a menudo es más facil con un editor que le ayude a
      intertar marcas, de forma inteligente, que sea válido. Yo le
      recomiendo  <application>Emacs</application> con su <link
      linkend="psgml"> entorno SGML</link>.</para>
    </sect2>

    <sect2 id="xml">
      <title>¿Qué es XML?</title>
      <para>XML Lenguaje de marcas ampliable (Extensible Markup Language )
    es un subconjunto de SGML, un tipo de --. Fué diseñado por la
    World-Wide Web,  pero ahora es usado en diferentes áreas.</para>
      <para>XML es más simple que SGML, con menos opciones, de modo que un
      analizador es más ligero y rápido.</para>
    </sect2>

    <sect2>
      <title>¿Qué es una hoja de estilo?</title>
      <para>En el mundo de las marcas, usted intenta separar el contenido
      de la presentación. El contenido es expresado en el documento SGML,
      siguiendo una DTD determinada. La presentación se define fuera del
      documento, normálmente en una hoja de estilo DTD específica, que es
      una descripción en un lenguaje apropiado (<ulink
      url="http://www.jclark.com/dsssl/";>DSSSL
	</ulink> - Lenguaje de definición y estrutctura del estilo del
        documento (Document Style Semantics and
      Specification Language) - es el más común<footnote><para>El mundo
      XML creó un nuevo lenguaje, <ulink
      url="http://www.w3.org/Style/XSL/";>XSL</ulink>, que tiene unas pocas
      definiciones en este momento<phrase debianversionmax="2.1">
      (y ninguna antes de Debian 2.2)</phrase>.
      A pesar de lo que pueda leer en resúmenes ejecutivos, es
      perféctamente aceptable usar DSSSL para presentar archivos XML.
      </para></footnote>),
        para la definición de reglas para documentos escritos en una
        determinada DTD.</para>
      <para>Por ejemplo, es el autor de la hoja de estilo quien decide que
      los títulos se deben presentar en negrita, esa URL se imprimirá en
      rojo, etc.</para>
      <para>Si conoce el lenguaje <ulink url="http://www.w3.org/Style/CSS/";>
	  CSS</ulink> (Cascading Style Sheets), note que los lenguaje típicos 
          para hojas de estilo SGML son más complicados: Permiten no solo 
          especificar la presentación de un elemento, sino que también reclasificar
          elementos, proceso de datos de algunos elementos, etc. DSSSL, por
          ejemplo es un lenguaje de programación 
 <-- TODO Qué significa  ------------------------------------------------------------> 
 Que significa full blown programing languaje 
 <---------------------------------------------------------------------------------> 
      full blown programming language (basado en el lenguaje Scheme), enriquecido con
      construcciones de hojas de estilo.</para>
    </sect2>

  </sect1>

  <sect1>
    <title>Creando documentación con DocBook</title>
    <para>Aquí, veremos como escribir y procesar documentación usando el
    DTD DocBook. Usaremos la versión XML, amenudo llamada DocBk. Aunque
    prefiero XML  because <footnote><para>Y porque futuras versiones de
    DockBook serán <ulink
    url="http://www.oasis-open.org/docbook/meetings/min19990308.html";>XML</ulink>.</para></footnote>,
    aunque la mayoría de lo aquí escrito, es aplicable a SGML también.</para>
    <para debianversionmax="2.1">Para usarlo en un sistema Debian anterior al
    2.2 'potato', necesitará el <debianpackage>docbook-xml</debianpackage>. Esto
    se instalará corréctamente en un sistema 'slink' y no estropeará nada (es
    solo un DTD que no depende de ninguna librería específica).</para>
    <sect2>
      <title>Escribiendo DocBook</title>
      <para>Se puede saltar esta sección si solo quiere procesar un archivo
      DocBook, en lugar de editarlo.</para>
      <para>Al igual que con cualquier DTD, recomiendo &psgml; para escribir DocBook. </para>
	<para>Primero, escoja un elemento raiz, preferible el más sencillo,
	<sgmltag>article</sgmltag>. Comienze con:<footnote debianversionmax="2.1">
	  <para>Podría necesitar poner el número completo de versión de DocBook,
	  por ejemplo 3.1.3, según su versión de psgml.</para>
	</footnote></para>
	<programlisting role="docbook">
<![CDATA[
<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1//EN"
     "dtd/docbook-xml/docbookx.dtd">
<article>
  <artheader>
    <title>Mi primer documento XML</title>
  </artheader>
  <section>
    <title>Mi primera sección</title>
    <para>Mi primer párrafo.</para>
  </section>
</article>
]]>
	</programlisting>
<para>Esto es un documento DocBook completo. Puede <link linkend="nsgmls">
    validarlo</link><footnote><para>Solo ignore los avisos <programlisting role="nsgmls">/usr/lib/sgml/declaration/xml.decl:1:W: SGML declaration was not implied</programlisting></para>
	</footnote>.</para>
<para>Los documentos DocBook típicos usan  book, chapter o article como el
elemento raiz. Despues incluyen una cabezera, donde encontrará la meta-information,
tal como el título del documento. Tras esta cabezera, un documento DocBook se
divide en secciones, cada una con un título.
<comment>More details would be nice.</comment>
</para>
<para>Para conocer la lista completa de elementos vease
	<debiandoc text="the set of DocBook texts">docbook-doc</debiandoc>, especiálmente
	<debiandoc file="r2333.html" text="DocBook DTD Reference">docbook-doc</debiandoc>.</para>
    </sect2>

    <sect2>
      <title>Procesado de documentos DocBook</title>
      <para>Recuerde, DocBook no es un programa sino un formato. Preguntar
      "¿Tiene Docbooc una salida PDF?" carece de sentido. El software que use DockBook
      pude producir PDF. DocBook por sí mismo no hace nada.</para>
      <para>Existen diferentes soluciones para generar salida impresa, páginas
      Web o páginas de manual (manpages) desde documentos DocBook. Puede
      programar esos procesos usted mismo, con herramientas como el módulo de
      Perl XML::Parser o el módulo de Java XP. También puede usar hojas de
      estilo, que puen estar escritas por usted mismo o no. Si decide no
      escribirlas, puede usar el &modular_ss; con &jade;.</para>
      <para>Ya que estamos usando la versión XML de DocBook, He aquí como llamar
      a &jade; para transformar <filename>miarchivo.db</filename> a TeX:</para>
	<programlisting role="shell" debianversionmax="2.1">
	jade -t tex -V tex-backend \ 
                -d &print_ss; \
                &xml_decl_slink; miarchivo.db
	</programlisting>
	<programlisting role="shell" debianversionmin="2.2">
	jade -t tex -V tex-backend \ 
                -d &print_ss; \
                &xml_decl_potato; miarchivo.db
	</programlisting>
	  <para>Lo que genera un archivo TeX usando macros &jadetex;,  
	  necesitando el programa &jadetex; para procesar:</para>
      <programlisting role="shell">
	jadetex miarchivo.tex
      </programlisting>
      <para>Y para HTML:</para>
	<programlisting role="shell" debianversionmax="2.1">
	jade -t sgml \ 
                -d &html_ss; \
                &xml_decl_slink; miarchivo.db
	</programlisting>
	<programlisting role="shell" debianversionmin="2.2">
	jade -t sgml \ 
                -d &html_ss; \
                &xml_decl_potato; miarchivo.db
	</programlisting>
	<para>Desgraciádamente, no hay una forma facil de generar una salida de
	texto plano desde un archivo DocBook, por ejemplo para enviarlo a
	Usenet. La mejor solución es usar <application>lynx<comment
	debianversionmin="2.2">w3m se puede usar pero pierde la presentación de
	las URLs. Puede usar scripts por ejemplo htmldump. Probarlo.
	</comment></application>:</para>
      <programlisting role="shell" debianversionmax="2.1">
	jade -t sgml -V nochunks \
                 -d &html_ss; \
                 &xml_decl_slink; miarchivo.db > dump.html
	lynx -force_html -dump dump.html > miarchivo.txt
      </programlisting>
      <programlisting role="shell" debianversionmin="2.2">
	jade -t sgml -V nochunks \
                 -d &html_ss; \
                 &xml_decl_potato; miarchivo.db > dump.html
	lynx -force_html -dump dump.html > miarchivo.txt
	<comment>w3m -dump dump.html > miarchivo.txt</comment>
      </programlisting>
      	<sect3 debianversionmin="2.2"><title>Usando herramientas SGML</title>
	<para>También puede usar &sgmltools2;. Esto puede ser mas sencillo, ya
	que &sgmltools2; automatiza las tareas realizadas por jade, jadetex y lynx.
	Pero <emphasis>no</emphasis> trabaja con la vesrión XML de DocBook. Para
	convertir un archivo a HTML:</para>
	    <programlisting role="shell">
	  sgmltools --backend=html howto.db
	    </programlisting>
	    <para>Y para PostScript:</para>
	    <programlisting role="shell">
	  sgmltools --backend=ps howto.db
	    </programlisting>
	    <para>Y para texto plano:</para>
	    <programlisting role="shell">
	  sgmltools --backend=txt howto.db
	    </programlisting>
	  </sect3>
      <sect3><title>Automatizandolo con <application>make</application></title>
	<para>Ya que la manipulación necesitada para convertir DocBook a
	cualquier formato puede ser complicada, es recomendable el uso de 
	<application>make</application>. Un ejemploi de un <filename>Makefile</filename> 
	es:</para>
      <programlisting role="makefile">
MAX_TEX_RECURSION=4
<phrase debianversionmax="2.1">
XML_DECL=&xml_decl_slink;
</phrase>
<phrase debianversionmin="2.2">
XML_DECL=&xml_decl_potato;
</phrase>
HTML_SS=/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl
PRINT_SS=/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl
<![CDATA[
all: miarchivo

miarchivo: miarchivo.ps miarchivo.txt miarchivo.html

miarchivo.tex: miarchivo.db 
	jade -t tex -V tex-backend \
		-d $(PRINT_SS) \
		$(XML_DECL) $<

miarchivo.dvi: miarchivo.tex
	# Truco de Adam Di Carlo <adam@onshore.com> para jadetex 
	# "Suficiente".
	-cp -pf prior.aux pprior.aux
	-cp -pf $(shell basename $< .tex).aux prior.aux
	jadetex $<
	if ! cmp $(shell basename $< .tex).aux prior.aux &&		\
	   ! cmp $(shell basename $< .tex).aux pprior.aux &&		\
	   expr $(MAKELEVEL) '<' $(MAX_TEX_RECURSION); then		\
		rm -f $@						;\
		$(MAKE) $@						;\
	fi
	rm -f prior.aux pprior.aux

miarchivo.ps: miarchivo.dvi
	dvips -f $< > $@

miarchivo.html: miarchivo.db html.dsl
	jade -t sgml \
		-d $(HTML_SS) \
		$(XML_DECL) $< 

miarchivo.txt: miarchivo.db
	jade -t sgml -V nochunks \
		-d $(HTML_SS) \
	$(XML_DECL) $< > dump.html
	lynx -force_html -dump dump.html > $@
	-rm -f dump.html

validate:
	nsgmls -s -wxml $(XML_DECL) miarchivo.db

clean: 
	rm -f *.html *.aux *.log *.dvi *.ps *.tex *.txt
]]>
      </programlisting>
	</sect3>

      <sect3>
	<title>Adaptación linguística de la salida</title>
	<para>Localization (en inglés, también escrita l10n para abreviar) es la
	adaptación a diferentes idiomas. Tomemos francés (cuyo código ISO es
	"fr") como ejemplo: DocBook puede adaptarse a otros idiomas (vease
	<filename>/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/common/dbl1*</filename>
	para listado).</para>
	<para debianversionmin="2.2">Con la vesrión XML, tiene dos formas de
	indicar el idioma:
	  <orderedlist>
	    <listitem>
	      <para>Usando el atributo <sgmltag class="attribute">lang</sgmltag>
	attribute.
	  <comment>http://nwalsh.com/docbook/dsssl/doc/custom.html#AEN190
	    parece erróneo.</comment>
	 
	  <programlisting role="docbook">
<![CDATA[
	    <article lang="fr">
]]>
	  </programlisting>
	  Y obtendrá las etiquetas ("Tabla de contenido", "Siguiente", "Previo", etc)
	  en francés.</para>
	    </listitem>
	      <listitem>
	      <para>En la <link linkend="customdbss">adaptación de hoja de estilo </link>:
		<programlisting role="dsssl">
		  (define %default-language% "fr")
		</programlisting>
	      </para>
	    </listitem>
	  </orderedlist></para>
	<para debianversionmax="2.1">
	  <comment>El atributo lang parece ignorado en el software de slink?</comment>
	  Puede configurar el lenguaje en la 
	  <link linkend="customdbss">adaptación de hoja de estilo</link>:
		<programlisting role="dsssl">
		  (define %default-language% "fr")
		</programlisting>
	  que le dará las etiquetas ("Tabla de contenido", "Siguiente", "Previo", etc)
	  en frances.</para>
	<para>No es una completa adaptación: El guión de salida TeX 
	  no será correcto, por ejemplo.</para>
	<para debianversionmax="2.1">Un error en los paquete de la versión
	"slink" producirá los avisos de jadetex:
	  <programlisting role="jadetex">
l.101 \select@language{francais}
                                
! Package babel Error: You haven't defined the language francais yet.

See the babel package documentation for explanation.
	  </programlisting>
	  Que puede ignorar.</para>
</sect3>

	<sect3 debianversionmin="2.2"><title>Misc</title>
		<para>Para convertir DocBook a páginas de manual (man pages) u
		otros formatos, vea <debianpackage name="docbook2X"
		refserver="http://shell.ipoline.com/~elmert/hacks/docbook2X/";>docbook2man</debianpackage>
		y <debianpackage>docbook-to-man-ans</debianpackage>.
</para>
	</sect3>
      <sect3 id="customdbss">
	<title>Configurando las hojas de estilo modular de DocBook</title>
	<para>Si usted <link linkend="customdb">escribe un elemento
	personalizado</link> o si quiere cambiar la presentación por defecto de
	un elemento o símplemente quiere cambiar ligéramente la salida (como
	cambiar la el tipo de letra por defecto), tendrá que definir una hoja de
	estilo personal. Esto no implica volver a escribir todo. DSSSL permite a
	una hoja de estilo usar otra distinta. La hoja de estilo hereda todas
	las propiedades de la que esté usando, escepto las definiciones locales,
	que tienen prioridad sobre las importadas. Un ejemplo de una hoja de
	estilo personal es: 
	<programlisting role="dsssl">
<![CDATA[

<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
<!ENTITY docbook.dsl 
         PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"
         CDATA DSSSL>
]>

<style-sheet>
<style-specification use="docbook">
<style-specification-body>

(define %body-font-family% 
  ;; The font family used in body text
  "Palatino")

</style-specification-body>
</style-specification>

<external-specification id="docbook" document="docbook.dsl">

</style-sheet>
]]>
	</programlisting>
	<para>Sus instrucciones de estilo (aquí cambo de tipo a Palatino)
	ha sido escrita en DSSSL, cuya sintaxis y semántica viene del lenguaje
	de programación Scheme, que es en sí mismo un dialecto del Lisp. No
	necesita aprender Scheme, el  <phrase debianversionmax="2.1">
	<debiandoc text="documentation of the Modular Stylesheets" file="doc/custom.html">
	docbook-stylesheets</debiandoc> </phrase><phrase debianversionmin="2.2">
	<debiandoc text="documentation of the Modular Stylesheets" file="custom.html">
	docbook-stylesheets-doc</debiandoc></phrase>
	contiene ejemplos para la mayoría de los propósitos.</para>
<para>Ya que tenemos dos hojas de estilo, una para imprimir  y una para
HTML, la anterior hoja de estilo personal, funciona solo para imprimir.
	 Para HTML he aquí un ejemplo:</para>
	<programlisting role="dsssl">
<![CDATA[
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA dsssl>
]>
<style-sheet>

<style-specification id="html" use="docbook">
<style-specification-body> 

(define %generate-article-titlepage% #t)

</style-specification-body>
</style-specification>

<external-specification id="docbook" document="docbook.dsl">

</style-sheet>
]]>
	  </programlisting>
	<para>En ambos casos, tendrá que decirle a Jade que use su hoja de
	estilo, sea <filename>miprn.dsl</filename>:</para>
	<programlisting role="shell" debianversionmax="2.1">
	jade -t tex -V tex-backend \ 
                -d miprn.dsl \
                &xml_decl_slink; miarchivo.db
	</programlisting>
	<programlisting role="shell" debianversionmin="2.2">
	jade -t tex -V tex-backend \ 
                -d miprn.dsl \
                &xml_decl_potato; miarchivo.db
	</programlisting>

      </sect3>
      <sect3 id="customdb"><title>Configurando DocBook DTD</title>
	<para>
	  DocBook está diseñado par ser configurable. Existen muchas formas de
	  hacerlo<footnote><para>Incluir copias de DTD y editandolas... Pero yo
	  prefiero la forma `limpia' de modificar el DTD, que no genera
	  demasiados problemas con versiones futuras de DocBook.</para></footnote>,
          pero sea cuidadoso: configurar puede llevar a problemas cuando
	  intercambie documentos con otras personas. Vea<debiandoc
	  text="Customizer's Guide for the DocBook DTD" file="book68527.html">docbook-doc</debiandoc>.
	</para>
	    <para>Si añade nuevos elementos, probáblemente tendrá también que crear una
	    hoja de estilo personal.</para>
	    <comment>
	      Dar varios ejemplos de configuración.
	    </comment>
      </sect3>

    </sect2>
    
  </sect1>
  
  <sect1>
    <title>Creando documentación con LinuxDoc</title>
    <para>Entraremos ahora en la escritura y proceso de documentación, usando
    el DTD de LinuxDoc.</para>
    <sect2>
      <title>Escribiendo LinuxDoc</title>
      <para>Puede saltarse esta sección si solo tiene un archivo LinuxDoc
      (por ejemplo uno de los HOWTOs de Linux, como los que puede encontrar en 
	<ulink url="http://metalab.unc.edu/pub/Linux/docs/HOWTO/other-formats/sgml/";>
	  LinuxDoc servers</ulink>).</para>
      <para>Puede escribir documentos LinuxDoc con &psgml;. Un ejemplo sencillo:</para>
      <programlisting role="linuxdoc">
<![CDATA[
<!doctype linuxdoc system>
<article>

<title>Rápido ejemplo SGML 
<author>Matt Welsh, <tt>mdw@cs.cornell.edu</tt>
<date>v1.0, 28 March 1994
<abstract>
Este documento es un ejemplo breve de como usar el DTD Linuxdoc-SGML.
</abstract>

<sect>Introducción

<p>
Este es un archivo de ejemplo de SGML usando el DTD de Linuxdoc-SGML.

</article>
]]>
	</programlisting>
      <para>Un ejemplo mas completo de un documento LinuxDoc es <debiandoc file="example.sgml.gz">sgml-tools</debiandoc>.</para>
      <para>Para conocer la lista de elementos permitidos, vea <debiandoc
      file="html/guide.html.gz">sgml-tools</debiandoc> o <ulink
	    url="http://www.sgmltools.org/guide/guide.html";>Matt Welsh's guide</ulink>.</para>
      </sect2>
    <sect2>
      <title>Procesando LinuxDoc</title>
      <para>Usted usará &sgmltools1;. Para convertir un documento LinuxDoc a HTML:</para>
      <programlisting role="shell">
	sgml2html document.sgml
      </programlisting>
      <para>Para texto plano, por ejemplo para enviarlo a un grupo de
      noticias:</para>
       <programlisting role="shell">
	sgml2txt  document.sgml
      </programlisting>
      <para>Y para generar PostScript, usando LaTeX:</para>
            <programlisting role="shell">
	sgml2latex --output=ps document.sgml
      </programlisting>
      <comment>
        La extensión tiene que ser .sgml o las sgml-tools funcionarán 
        incorréctamente.
      </comment>
      <para>Puede obtener más información en <phrase
      debianversionmax="2.1">sgmltools(1)</phrase><phrase debianversionmin="2.2">sgmltools.v1(1)</phrase>.</para>
      <comment>TODO: 'localization' en varios lenguajes.</comment>
      </sect2>

  </sect1>

  <sect1>
    <title>Creando documentación con DebianDoc</title>
    <para>Aquí veremos como escribir y procesar documetos usando el DTD 
    DebianDoc.</para>
    <sect2><title>Escribiendo documentos DebianDoc</title>
      <para>Este es un sencillo ejemplo de un documento DebianDoc:</para>
      <programlisting role="debiandoc">
<![CDATA[
<!doctype debiandoc public "-//DebianDoc//DTD DebianDoc//EN">

<debiandoc>
  <book>
    <titlepag>
      <title>Untítulo</title>
      <author>
	<name>Bortzmeyer</name>
	<email>bortzmeyer@debian.org</email>
      </author>
    </titlepag>
    <chapt>
      <heading>Título</heading>
      <p>Contenido</p>
    </chapt>
  </book>
</debiandoc>
]]>
      </programlisting>
      <para>Para conocer la lista de marcas permitidas, vea <phrase
debianversionmax="2.1">
<debiandoc
file="debiandoc-sgml.html/index.html">debiandoc-sgml</debiandoc>
</phrase>
<phrase debianversionmin="2.2"><debiandoc
file="debiandoc-sgml.html/index.html">debiandoc-sgml-doc</debiandoc>
<comment>Bug #47300</comment></phrase>.</para>
    </sect2>
    <sect2><title>Procesando documentos DebianDoc</title>
      <para>
	Para transformarlos a PostScript:      
      </para>
      <programlisting role="shell">
	 debiandoc2ps -1 miarchivo.dd
      </programlisting>
      <para>Y para HTML:</para>
    <programlisting role="shell">
	 debiandoc2html miarchivo.dd
      </programlisting>
      </sect2>
    
  </sect1>

  <sect1>
    <title>Herramientas</title>
    <para>Esta sección se ciñe al procesado, al software que puede usar
    para escribir y procesar SGML.</para>
    <para debianversionmin="2.2"> La forma más sencilla de obtener todas
    estas herramientas es instalar
    get all these tools is to install <debianpackage>task-sgml</debianpackage>.</para>
    <para debianversionmax="2.1"> Para obtener todas estas herramientas,
    tendrá que instalar varios paquetes. Esto lo hará la aplicación <application>
    apt</application> por usted <footnote><para>Suponiendo que <application>apt</application>
    fue configurado corréctamente antes.</para></footnote>:
	<programlisting role="shell">
	  apt-get install docbook docbook-doc sp jade \
	    docbook-stylesheets jadetex debiandoc-sgml \
            psgml 
	</programlisting>
      </para>
    <sect2 id="psgml">
      <title><debianpackage name="psgml" refserver="http://www.lysator.liu.se/projects/about_psgml.html";>PSGML</debianpackage></title>
      <para>Un excelente entorno para SGML Emacs. Entre sus muchas
      carácterísticas, él puede:</para>
      <itemizedlist>
	<listitem><para>Mostrarle qué marcas son válidas en un punto dado,</para>
	</listitem>
	<listitem><para>Insertar marcas (de inico y fin, así como marcas
        obligadas intermedias)  desde un menú que muestra solo las marcas válidas 
        (esto es treméndamente util cuando comienza a usar un nuevo y complicado DTD),
        </para>
	</listitem>
	<listitem><para>Manipular elementos SGML, movimientos conforme a
        los elementos, etc.</para>
	</listitem>
      </itemizedlist>
      <para>Su documentación está en <debiandoc file="psgml_toc.html">psgml</debiandoc>.</para>
      <para>
	Configurar algunas opciones en su <filename>~/.emacs</filename> le
        facilitará el uso de psgml. He aquí algunos ejemplos:
	ease your use of psgml. Here are some examples:</para>
	<programlisting role="emacs-lisp">
<![CDATA[
	  (autoload 'xml-mode "psgml" "Major mode to edit XML files." t )
	  
          (setq
               auto-mode-alist (append '(
                           ;; DocBook-XML
                           ("\\.db" . xml-mode)
			   )
                         auto-mode-alist))

          (add-hook 'sgml-mode-hook 'turn-on-auto-fill)
          (setq sgml-custom-dtd '(
            ( "HTML 4.0 Strict"
              "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\"
              \"dtd/html-4.0s.dtd\">" )
            ( "HTML 4.0 Blaireau"
              "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML Transitional 4.0//EN\"
              \"dtd/html-4.0-loose.dtd\">" )
            ( "DocBook 3.1 XML Article"
               "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
               <!DOCTYPE article PUBLIC \"-//Norman Walsh//DTD DocBk XML V3.1//EN\"
               \"dtd/docbook-xml/docbookx.dtd\">" )
          ))
          (setq sgml-insert-missing-element-comment nil)
]]>
	</programlisting>
	<para>Entre las órdenes psgml más útiles:
	<itemizedlist>
	  <listitem><para>C-c C-t :
<command>sgml-list-valid-tags</command> recuerde (o aprenda) el DTD. Muy
conveniente cuando comienze a trabajar con un monstruo como DocBook.</para>
	  </listitem>
	  <listitem><para><command>sgml-insert-element</command>. De nuevo,
          una genial forma de aprender un DTD</para>
	  </listitem>
	</itemizedlist>
</para>
    </sect2>
    <sect2 id="nsgmls">
      <title><debianpackage name="sp" refserver="http://www.jclark.com/sp/nsgmls.htm";>nsgmls</debianpackage></title>
      <para>Una herramienta SGML, por ejemplo para validar documentos SGML.
      Una forma típica de comprobar la validez de un documento:</para>
      <programlisting role="shell">
	nsgmls -s file.sgml
      </programlisting>
      <para>Esto comprobará en qué casos el contenido del archivo 
      <filename>file.sgml</filename> está conforme al DTD indicado en la
      cabecera del archivo.</para>
      <para>Si escribe documentos XML, son necesarias dos opciones de nsgmls:</para>
      <programlisting role="shell" debianversionmax="2.1">
	nsgmls -s -wxml &xml_decl_slink; file.sgml
      </programlisting>
      <programlisting role="shell" debianversionmin="2.2">
	nsgmls -s -wxml &xml_decl_potato; file.sgml
      </programlisting>
	<para>Hay un <debiandoc
	file="nsgmls.htm">sp</debiandoc>. nsgmls como parte del paquete 
	sp, el <debiandoc file="index.htm">sp</debiandoc> para sp puede ser
        util también.</para>
    </sect2>
    <sect2 id="rxp" debianversionmin="2.2">
      <title><debianpackage>rxp</debianpackage></title>
      <para>Una herramienta para XML puro; puede, por ejemplo, usarse para
      validar documentos XML.</para>
      </sect2>
    <sect2 id="jade">
      <title><debianpackage
      refserver="http://www.jclark.com/jade/";>jade</debianpackage></title>
      <comment>TODO: Deberíamos mencionar OpenJade! http://jade-cvs.avionitek.com/</comment>
      <para>jade es un procesador DSSSL. Toma un archivo SGML y una hoja de
      estilo, escrita en el lenguaje DSSSL, y genera salida en formatos TeX
      (para generar PostScript), RFT o HTML.
      No recurre a <application>groff</application> y además tiene
      problemas para producir ASCII. El funcionamiento de
      <application>TeX</application> produce archivos &jadetex;.</para>
      <para>La doumentación no está suficientemente clara, pero por lo
      menos le dice pos posibles opciones. Vea <debiandoc file="jade.htm">jade</debiandoc>.</para>
      <para>Usos típicos:</para>
      <programlisting role="shell">
	jade -t backend-to-use -d stylesheet-name input-file
      </programlisting>
    </sect2>
    <sect2 id="jadetex">
	<title><debianpackage>jadetex</debianpackage></title>
		<comment>http://www.tug.org/applications/jadetex/";</comment>
      <para>un conjunto de macros de <application>TeX</application> para
      procesar la salida de jade. Pobremente documentado y dificil de
      configura. Como con todos los macros de TeX, son necesarias varias
      ejecuciones, en particular para resolver referencias.</para>
    </sect2>
    <sect2 id="sgmltools2" debianversionmin="2.2">
      <title><debianpackage name="sgmltoolsv2" refserver="http://www.sgmltools.org/";>SGMLtools</debianpackage></title>
      <para>Las SGMLtools existen en dos versiones, 1 and 2. SGMLtools es
	la versión 2.</para>
      <para>A diferencia de sgml-tools, la versión 1, que procesa
      documentos LinuxDoc; SGMLtools, versión 2, trabaja con documettos
      DocBook.  Puede hacerlo todo con llamadas directas a &jade; pero
      puede ser más simple usar SGMLtools.</para>
    </sect2>
    <sect2 id="sgmltools1">
	<title><debianpackage name="sgml-tools"
	refserver="http://www.sgmltools.org/download-1.0.html";>sgml-tools,
	versión 1</debianpackage></title>
      <para>
	  <footnote debianversionmin="2.2"><para>¿Observó el cambio en las
          mayusculas?</para></footnote>
	Esta versión está oficialmente obsoleta y, en teoría, no debería
        usarse más. Pero en la práctica, ya que el cambio del Linux
        Documentation Project desde LinuxDoc al DTD Docbook no se ha hecho,
        todavía necesita sgml-tools version 1.</para>
      </sect2>
    <sect2 id="modularss">
      <title><debianpackage name="docbook-stylesheets"
			    refserver="http://www.nwalsh.com/docbook/dsssl/index.html";> 
	  Norman Walsh's "DocBook Modular Stylesheets"</debianpackage></title>
      <para>Esto es un conjunto de hojas de estilo DSSSL (con una versión
              reciente de XSL).  Puede usarlas con cualquier herramienta
      DSSSL, como &jade; para procesar documentos DocBook.</para>
    </sect2>
  </sect1>

  <sect1 id="references">
    <title>Referencias</title>
    <itemizedlist>
      <listitem>
	<para>SGML en general</para>
	<itemizedlist>
	  <listitem>
	    <para><ulink url="http://www.oasis-open.org/cover/";>Cubierta</ulink></para>
	  </listitem>
	  <listitem>
	    <para><ulink
			 url="http://www-tei.uic.edu/orgs/tei/sgml/teip3sg/index.html";>
		A Gentle Introduction to SGML</ulink> por el grupo TEI. No
                muy práctico, IMHO. <comment>TODO: Vuelvelo a leer, Sam.</comment>
	    </para>
	  </listitem>
	  <listitem>
	    <para>The <ulink
	    url="http://www.flightlab.com/~joe/sgml/faq-not.txt";>non-FAQ</ulink><footnote><para>Why
	    DocBook doesn't have a <sgmltag
	    class="element">humour</sgmltag> element?</para>
	      </footnote></para>
	  </listitem>
	</itemizedlist>
      </listitem>
      <listitem>
	<para>XML in general</para>
	<itemizedlist>
	  <listitem>
	    <para><ulink
	    url="http://www.w3.org/XML/";>Official XML</ulink></para>
	  </listitem>
	  <listitem>
	    <para><ulink
	    url="http://www.oasis-open.org/cover/xml.html";>Cover's XML
	    page</ulink></para>
	  </listitem>
	  <listitem>
	    <para><ulink
	    url="http://www.ucc.ie/xml/";>XML FAQ</ulink></para>
	  </listitem>
	</itemizedlist>
      </listitem>
      <listitem>
	<para>DocBook</para>
	<itemizedlist>
	  <listitem>
	<para><ulink url="http://www.oasis-open.org/docbook/";>Official
	DocBook</ulink></para>
	  </listitem>
	  <listitem>
	    <para><debiandoc file="index.html">docbook-doc</debiandoc></para>
	  </listitem>
<listitem>
<para><ulink url="http://www.nwalsh.com/docbook/dsssl/";>
Modular DocBook Stylesheets</ulink></para>
</listitem>
<listitem>
<para><ulink url="http://www.freebsd.org/tutorials/docproj-primer/";>
FreeBSD Documentation Project Primer</ulink> es una agradable introducción
a SGML y a DocBook</para>
</listitem>
	  <listitem>
	    <para><ulink url="http://www.nwalsh.com/docbook/simple/sdocbook/";>
		Simplified DocBook</ulink>, una versión de DocBook con
                menos elementos para aprender </para>
	  </listitem>
	  <listitem id="docbook-custom">
	    <para>Diferentes configuración o extensiones para DocBook</para>
	    <itemizedlist>
	      <listitem><para><ulink
	      url="http://www.onshore.com/";>onShore</ulink>'s custom
	      stylesheets are in a unofficial Debian package,
	      "onshore-sgml". To get it, add <filename>deb
	      http://cafe.onshore.com/debian local/</filename> to your
	      <filename>/etc/apt/sources.list</filename>. </para>
	      </listitem>
	      <listitem><para>Norman Walsh puts online <ulink url="http://www.nwalsh.com/website/";>all the stuff needed</ulink>
	      to manage <ulink url="http://www.nwalsh.com/";>his Web site</ulink>.</para>
	      </listitem>
	      <listitem><para>FreeBSD has <ulink
	      url="http://www.freebsd.org/tutorials/docproj-primer/tools.html#AEN228";>DocBook
	      customizations</ulink>, too.</para>
	      </listitem>
	    </itemizedlist>
	  </listitem>
	</itemizedlist>
      </listitem>
      <listitem>
	<para>LinuxDoc</para>
	<itemizedlist>
	  <listitem>
	    <para><ulink
	    url="http://www.sgmltools.org/guide/guide.html";>Matt
	    Welsh's SGML-Tools User's Guide</ulink></para>
	  </listitem>
	</itemizedlist>
      </listitem>
      <listitem id="otheros">
	<para>Otros sistemas operativos: esta sección lista documentos
        similares a este HOWTO (Quiero decir documentos
                <emphasis>prácticos</emphasis>) para sistemas operativos
        distintos a Debian.</para>
	<itemizedlist>
	  <listitem>
	    <para><ulink
	    url="http://ourworld.compuserve.com/homepages/hoenicka_markus/ntsgml.html";>Microsoft
	    Windows NT</ulink></para>
	  </listitem>
	  <listitem>
	    <para>Usuarios de DocBook de RedHat deberían probablemente<ulink
	    url="http://sourceware.cygnus.com/docbook-tools/";>ver el
	    Cygnus tools</ulink>.</para>
	    </listitem>
	  <listitem>
	    <para>Para FreeBSD, si quiere usar DocBook, vea 
	      <ulink
	      url="http://www.freebsd.org/tutorials/docproj-primer/tools.html";>FreeBSD
	      Documentation Project Primer for New Contributors</ulink>,
              principalmente su lista de herramientas obligatorias.</para>
	  </listitem>
         <listitem>
          <para>
             SuSE tiene <ulink url="http://www.suse.de/~ke/docbook-tools/";>algunas
             herramientas </ulink> para procesar documentos DocBook facílmente.
          </para>
         </listitem>
         <listitem>
         <para>
            No es un sistema operativo específico pero O'Reilly tiene 
            <ulink
            url="http://www.oreilly.com/people/staff/crism/dsssl/orastyle/";>buena
            documentación </ulink> sobre su sistema de publicación.
         </para>
         </listitem>
	</itemizedlist>
      </listitem>
    </itemizedlist>
    <bibliography>
      <title>Libros de interés</title>
      <biblioentry>
	  <citetitle><ulink url="http://www.snee.com/bob/sgmlfree/";>SGML CD</ulink></citetitle>
	  <author>
	    <surname>DuCHARME</surname>
	    <firstname>Bob</firstname>
	  </author>
	  <editor>
	    <surname>Prentice-Hall</surname>
	  </editor>
	  <isbn>0-13-475740-8</isbn>
	  <abstract>
	    <para>Un libro muy bueno y páctico sobre las herramientas
            necesarias para escribir y procesar SGML en Unix y Windows NT.
            No abarca XML.  Un capítulo muy bueno sobre &psgml;
	    y una buena página de <ulink 
            url="http://www.snee.com/bob/sgmlfree/emcspsgm.html";>trucos PSGML</ulink>.</para>
	  </abstract>
      </biblioentry>
      <biblioentry>
	   <citetitle>DocBook: <ulink 
           url="http://www.docbook.org/";>The Definitive Guide</ulink></citetitle>
	  <author>
	    <surname>Walsh</surname>
	    <firstname>Norman</firstname>
	  </author>
	  <author>
	    <surname>Muellner</surname>
	    <firstname>Leonard</firstname>
	  </author>
	  <editor>
	    <surname>O'Reilly</surname>
	  </editor>
	  <isbn>1-56592-580-7</isbn>
	  <abstract>
	    <para>No lo leí todavía. El libro completo está también
            disponible en línea. </para>
	  </abstract>
	</biblioentry>
    </bibliography>
  </sect1>
</article>





Reply to: