<html>

<head>
<title>Docbook Toolchain for Khronos Documents</title>
</head>

<body>
<h1>What is Docbook?</h1>

<p> <a href="http://www.docbook.org/">Docbook</a> is a widely used XML
    schema for technical documentation(*). It is an open source project
    with a great deal of supporting infrastructure and documentation.
    Start with the <a href="http://www.dpawson.co.uk/docbook/">Docbook
    FAQ</a> and the canonical text <a
    href="http://docbook.org/tdg/">DocBook: The Definitive Guide</a>
    (since we are using Docbook 4.x, read version 2.0 of the Guide).


<p> Like LaTeX, Docbook is a structural description of a document.
    Docbook does <b>not</b> define formatting. Using XSL stylesheets,
    Docbook documents can be transformed into many other formats such as
    XHTML, PDF, Unix nroff man pages, and Windows HTML Help.

<p> Khronos has agreed to use Docbook as the format for new man pages
    and technical specifications created within the group.
    This document captures basic information about Docbook
    and the toolchain required to use it.

<p> (*) Actually, there are SGML and Relax NG schemas for Docbook
    as well. However, for Khronos' purposes we concentrate on
    the XML schema.


<h1>Docbook Editors</h1>

<p> Since Docbook documents are XML, it is possible (and perhaps
    desirable for smaller documents) to simply use a text editor and
    mark up XML by hand. Emacs is reputed to have a Docbook and/or XML
    editing mode which may be useful.

<p> There are a variety of free and commercial XML editors. Some are
    described in the <a
    href="http://www.dpawson.co.uk/docbook/reference.html#d17e1366">Docbook
    FAQ</a>. We have experimented with the free Standard version of <a
    href="http://www.xmlmind.com/xmleditor/">XMLMind</a> with some
    success; unlike many of the other options, XMLMind understands the
    Docbook schema and can render Docbook documents in a WYSIWYG-like
    fashion, in addition to the straight XML structure editor.


<h1>Docbook Schema</h1>

<p> There are many versions of the Docbook XML Schema. We are currently
    using Docbook 4.3 with MathML 2.0 support. See the DOCTYPE
    declaration in the sample documents for the specific DTDs.


<h1>XSL Stylesheets</h1>

<p> To transform Docbook documents into final viewable formats, we use
    the standard <a
    href="http://wiki.docbook.org/topic/DocBookXslStylesheets"> Modular
    Docbook XSL stylesheets</a> (version 1.69). These are available
    prepackaged for modern Linux systems (although you may have to
    manually select the packages) as well as for the Cygwin environment
    on Windows. We are using version 1.69 of the stylesheets.

<p> (<b>Note:</b> need links to Cygwin / Red Hat / other Linux distro?
    packages).


<h1>Tools</h1>

<p> The Docbook 4.3 DTD is also prepackaged for most systems. Some
    additional work is required to install the Docbook 4.3+MathML 2.0
    DTD (details to be added).

    (<b>Note:</b> need links to Cygwin / Red Hat / other Linux distro? packages).

<p> To transform a Docbook document with the XSL Stylesheets,
    a processor like <a href="http://wiki.docbook.org/topic/xsltproc">
    xsltproc</a> or Saxon is required. Again, xsltproc
    is prepackaged.

    (<b>Note:</b> again, need links to Cygwin / Red Hat / other Linux
    distro? packages).

<h1>Examples</h1>

<p> A simple example package containing a Docbook document (sample man
    page) and Makefile to transform it are <b>here (link TBD)</b>.

<p> Last modified August 13, 2006 by Jon Leech
</body>
</html>
