[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>' 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é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é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, < y
>. 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
"&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
<? 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: