<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<?xml-stylesheet href="../driver.css" type="text/css"?>
<book id="index">
  <bookinfo>
    <title>LDP Author Guide</title>
    <pubdate>2004-07-15</pubdate>
    <author>
      <firstname>Mark</firstname>
      <othername>F.</othername>
      <surname>Komarinski</surname>
      <affiliation>
        <address><email>mkomarinski@wayga.org</email></address>
      </affiliation>
    </author>
    <author>
      <firstname>Jorge</firstname>
      <surname>Godoy</surname>
      <affiliation>
		  <orgname><ulink url="http://www.conectiva.com">Conectiva S.A.</ulink></orgname>
		  <orgdiv>Publishing Department</orgdiv>
        <address><email>godoy@metalab.unc.edu</email></address>
      </affiliation>
    </author>
    <author>
      <firstname>David</firstname>
      <othername>C.</othername>
      <surname>Merrill</surname>
      <affiliation>
        <address><email>dcmerrill@mindspring.com</email></address>
      </affiliation>
    </author>
	 <author>
	 	<firstname>Emma Jane</firstname>
		<surname>Hogbin</surname>
		<affiliation><address><email>emmajane@xtrinsic.com</email></address></affiliation>	
	</author>

    <abstract>
	 	<para>
			This guide describes the process of submitting and publishing a
			document with The Linux Documentation Project (TLDP). It includes
			information about the tools, toolchains and formats used by TLDP.
			The document's primary audience is new TLDP authors, but it also 
			contains information for seasoned documentation authors.
		</para>
    </abstract>
	 
    <revhistory>

	 <revision>
	 <revnumber>4.5</revnumber>
	 <date>2004-07-14</date>
	 <authorinitials>ejh</authorinitials>
	 <revremark>Updated information regarding CVS accounts and connecting to the CVS server.</revremark>
	 </revision>

	 <revision>
	 <revnumber>4.4</revnumber>
	 <date>2004-04-19</date>
	 <authorinitials>ejh</authorinitials>
	 <revremark>Added editor credit requirements to the Using DocBook
	 section. Updated the submission procedure. New documents can now only
	 be added by one of the Review Coordinators after the successful
	 completion of each of the required reviews.</revremark>
	 </revision>
	 
	 <revision>
	 <revnumber>4.3</revnumber>
	 <date>2004-04-04</date>
	 <authorinitials>ejh</authorinitials>
	 <revremark>Removed the section Contributing to The
	 LDP (replaced by Summary of The LDP Process).</revremark>
	 </revision>
	 
	 <revision>
	 <revnumber>4.2</revnumber>
	 <date>2004-04-02</date>
	 <authorinitials>ejh</authorinitials>
	 <revremark>Added references for LyX to DocBook conversions in the
	 bibliography.</revremark>
	 </revision>
	 
	 	<revision>
		<revnumber>4.1</revnumber>
		<date>2004-01-27</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Updated the license requirements and added them to the
		table of contents (moved them out of the sub-section).</revremark>
		</revision>

	<!--
	 	<revision>
		<revnumber>4.0.11</revnumber>
		<date>2004-01-04</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Incorporated notes and corrections from Martin A. Brown.</revremark>
		</revision>
	 	<revision>
		<revnumber>4.0.10</revnumber>
		<date>2004-01-01</date>
		<authorinitials>mg</authorinitials>
		<revremark>Added new items to the glossary.</revremark>
		</revision>
	 	<revision>
		<revnumber>4.0.9</revnumber>
		<date>2003-12-31</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Added two style sheets (CSS and DSL) to the template
		section.</revremark>
		</revision>
		
		<revision>
		<revnumber>4.0.8</revnumber>
		<date>2003-12-22</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Updated the Transformation section to include XSL updates
		from David Horton and Martin A. Brown.</revremark>
		</revision>
	 
	 	<revision>
		<revnumber>4.0.7</revnumber>
		<date>2003-12-22</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Removed redundant information from the Transformation
		section.</revremark>
		</revision>

	 	<revision>
		<revnumber>4.0.6</revnumber>
		<date>2003-12-21</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Simplified the language in the markup section (main
		guide, not appendix).</revremark>
		</revision>
		
		<revision>
		<revnumber>4.0.5</revnumber>
		<date>2003-12-21</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Incorporation of Machtelt Garrels (Tille)'s review.</revremark>
		</revision>
	 
	 	<revision>
		<revnumber>4.0.4</revnumber>
		<date>2003-12-11</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Added markup HOWTO for bibliographies.</revremark>
		</revision>
	 
		<revision>
		<revnumber>4.0.3</revnumber>
		<date>2003-12-11</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Language edits to the main guide (but not appendices).</revremark>
		</revision>
		
		<revision>
		<revnumber>4.0.2</revnumber>
		<date>2003-12-10</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Reshuffled the &quot;Distributing Your
		Documentation&quot; and re-wrote parts of it to improve the flow.</revremark>
		</revision>
		
		<revision>
		<revnumber>4.0.1</revnumber>
		<date>2003-12-09</date>
		<authorinitials>ejh</authorinitials>
		<revremark>Incorporated document reviews from Martin A. Brown and
		Charles Curley.</revremark>
		</revision>
	 
      <revision>
        <revnumber>4.0 - alpha</revnumber>
        <date>2003-12-08</date>
        <authorinitials>ejh</authorinitials>
        <revremark>Revised the structure of the document and shuffled
		elements into place (a floating date until the final version is
		ready).</revremark>
      </revision>
      
		<revision>
        <revnumber>3.15</revnumber>
        <date>2002-12-16</date>
        <authorinitials>gjf</authorinitials>
        <revremark>Contribution by Jaime Irving Davila regarding ldp.dsl
        usage. </revremark>
      </revision>
      <revision>
        <revnumber>3.14</revnumber>
        <date>2002-05-16</date>
	<authorinitials>mfk</authorinitials>
	<revremark>Added information about LDP Reviewer HOWTO.  New reviewers are asked to read this document.</revremark>
      </revision>
      <revision>
        <revnumber>3.14</revnumber>
        <date>2002-04-25</date>
        <authorinitials>gf</authorinitials>
        <revremark>Update meta-data information, resources; add articleinfo content</revremark>
      </revision>
      <revision>
        <revnumber>3.13</revnumber>
        <date>2002-04-21</date>
        <authorinitials>sp</authorinitials>
	<revremark>We are now tldp.org</revremark>
      </revision>
      <revision>
        <revnumber>3.12</revnumber>
        <date>2002-03-11</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Bug fixes, learning PSGML, update e-mail address</revremark>
      </revision>
      <revision>
        <revnumber>3.11</revnumber>
        <date>2002-01-26</date>
        <authorinitials>sp</authorinitials>
        <revremark>
          Updated CVS information.
        </revremark>
      </revision>
      <revision>
        <revnumber>3.10</revnumber>
        <date>2001-12-15</date>
        <authorinitials>dcm</authorinitials>
        <revremark>
          Updated contacting LDP information.
        </revremark>
      </revision>
      <revision>
        <revnumber>3.9</revnumber>
        <date>2001-11-27</date>
        <authorinitials>sp</authorinitials>
        <revremark>
          Updated CVS information.
        </revremark>
      </revision>
      <revision>
        <revnumber>3.8</revnumber>
        <date>2001-09-25</date>
        <authorinitials>dy</authorinitials>
        <revremark>
          XML/XSLT information.
        </revremark>
      </revision>
      <revision>
        <revnumber>3.7</revnumber>
	<date>2001-06-20</date>
	<authorinitials>mfk</authorinitials>
	<revremark>
	  Now under the GFDL.
	</revremark>
      </revision>
      <revision>
        <revnumber>3.62</revnumber>
        <date>2001-03-13</date>
        <authorinitials>mfk</authorinitials>
        <revremark>
          Spelling and grammar changes from Dave Edwards (amoamasam@sympatico.ca).
          Also performed some housecleaning from comments of discuss@en.tldp.org.
        </revremark>
      </revision>
      <revision>
        <revnumber>3.6</revnumber>
        <date>2001-01-10</date>
        <authorinitials>mfk</authorinitials>
        <revremark>
          First revision in DocBook XML.  Added section covering writing
          in DB XML, since first rev is 4.1.
        </revremark>
      </revision>
      <revision>
        <revnumber>3.51</revnumber>
        <date>2001-01-05</date>
        <authorinitials>mfk</authorinitials>
        <revremark>sgedit (now tksgml) is not free, included link for pricing, more XML info</revremark>
      </revision>
      <revision>
        <revnumber>3.5</revnumber>
        <date>Dec 4, 2000</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Changed mailing list pointers to new lists.</revremark>
      </revision>
      <revision>
        <revnumber>3.4</revnumber>
        <date>Dec 1, 2000</date>
        <authorinitials>dcm</authorinitials>
        <revremark>Added Crediting Translators and Converters</revremark>
      </revision>
      <revision>
        <revnumber>3.3</revnumber>
        <date>Nov 11, 2000</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Added links to SGML GPL and FDL</revremark>
      </revision>
      <revision>
        <revnumber>3.1</revnumber>
        <date>Oct 10, 2000</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Spelling changes, changed list of LDP policies to now
        accept DocBook XML.  More information about how to use *jade
        with XML will follow.
        </revremark>
      </revision>
      <revision>
        <revnumber>3.0</revnumber>
        <date>Aug 24, 2000</date>
        <authorinitials>gjf</authorinitials>
        <revremark>Integrated David Merrill's style guide document. Further clean-up and additions.</revremark>
      </revision>
      <revision>
        <revnumber>2.0</revnumber>
        <date>Jul 13, 2000</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Cleaned up using-docbook a bit.  Moved some chapters</revremark>
      </revision>
      <revision>
        <revnumber>1.9</revnumber>
        <date>Jun 26, 2000</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Integrated Jorge's using-docbook document.</revremark>
      </revision>
      <revision>
        <revnumber>1.5</revnumber>
        <date>Jun 14, 2000</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Documented sgedit</revremark>
      </revision>
      <revision>
        <revnumber>1.4</revnumber>
        <date>Jun 12, 2000</date>
        <authorinitials>mfk</authorinitials>
        <revremark>Documented vim and sgedit.  Spelling and other
        changes from ldp list.  Also added LDP guidelines under style
        guide.</revremark> 
      </revision>
 -->

    </revhistory>
  </bookinfo>


<!-- Chapters
	About this guide
	Authoring Overview
	Proposal
	Writing
	Markup
	Publish and Distribute
	Maintenance
-->
	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
  <chapter id="aboutthisguide">
    <title>About this Guide</title>
    <section id="purpose">
      <title>About this Guide</title>
      <para>This document was started on Aug 26, 1999 by Mark
      F. Komarinski after two day's worth of frustration getting tools
      to work. If even one LDP author is helped by this, then I did my
      job.</para>
		<para>
			Version 4 of this document was released in early 2004 by Emma Jane
			Hogbin. A complete overhaul of the document was done to separate
			the authoring HOWTOs from the technical HOWTOs. The review took
			approximately eight months.
		</para>
      <para>
        The newest version of this document can be found at the LDP
        homepage
        <ulink url="http://www.tldp.org/">http://www.tldp.org</ulink>.
        The original DocBook, HTML, and other formats can be found there.
      </para>
      <para>
		There are many ways to contribute to the Linux movement
      that do not require the ability to produce software. One such way is
		to write documentation. The availability of
		easy-to-understand, technically accurate documentation can make a
		world of difference to someone who is struggling with Linux
		software. This Guide is designed to help you research and write a 
		HOWTO which can be submitted to the LDP. The appendices also include
		sample templates, markup tips and information on how to transform
		your document from DocBook to another format (such as HTML) for
		easier proofreading.
		</para>
    </section> 

	<!-- Because I haven't decided where to put it, the 
			About The LDP
		section has become an entity. The file is contained within section
		tags.
	-->
	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
    <section id="theldp">
      <title>About The LDP</title>
      <para>The Linux Documentation Project (LDP) was started to
      provide new users a way of quickly getting information about a
      particular subject. It not only contains a series of books on
      administration, networking, and programming, but also has a large
      number of smaller works on individual subjects, written by those
      who have used it. If you want to find out about printing, you
      get the <ulink url="http://www.tldp.org/HOWTO/Printing-HOWTO.html">Printing
      HOWTO</ulink>. If you want to do find out if your Ethernet card
      works with Linux, grab the <ulink url="http://www.tldp.org/HOWTO/Ethernet-HOWTO.html">Ethernet
      HOWTO</ulink>, and so on.
	</para>
	<para>
		  The LDP provides documents to the world in a variety of
  convenient formats and also accepts submissions in a
  number of formats.  The current standard for storing
  the source documentation is a format known as DocBook, see <xref linkend="docbook-why"/>.		
		</para> 
      
	  <blockquote>
        <attribution>LDP Manifesto located at <ulink url="http://www.tldp.org/manifesto.html">http://www.tldp.org/manifesto.html</ulink></attribution>
        <para>The Linux Documentation Project (LDP) is working on
        developing free, high-quality documentation for the GNU/Linux
        operating system. The overall goal of the LDP is to
        collaborate in all of the issues of Linux documentation. This
        includes the creation of <quote>HOWTOs</quote> and <quote>Guides</quote>. We hope to
        establish a system of documentation for Linux that will be
        easy to use and search. This includes the integration of the
        manual pages, info docs, HOWTOs, and other documents.</para>
      </blockquote>
      <para>
        The human readable version goes more like this:  The LDP consists
        of a large group of volunteers who are working on documentation
        about Linux and the programs which run on the Linux kernel.
		  These documents exist primarily as shorter HOWTOs and longer
		  Guides. Both are available from <ulink url="http://www.tldp.org/"/>.
        This Guide focuses primarily on how to write your own HOWTOs for
        submission to the LDP.
       </para>
    </section>

	<!-- End of section about The LDP -->

    <section id="feedback">
      <title>Feedback</title>
      <para>
		Send feedback to <email>discuss@en.tldp.org</email>. Please reference the title
		of this document in your email. Please note: you must <ulink url="http://tldp.org/mailinfo.html#maillists">be subscribed</ulink>
		in order to send email to the list.
		</para>
    </section>

    <section id="copyrights">
      <title>Copyrights and Trademarks</title>
      <para>Copyright 1999-2002 Mark F. Komarinski, David C. Merrill, Jorge Godoy</para>
      <para>
         Permission is granted to copy, distribute and/or modify this document
	 under the terms of the GNU Free Documentation License, Version 1.1 or
	 any later version published by the Free Software Foundation; with no
	 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
	 Texts. A copy of the license is included in the appendix entitled
	 <quote>GNU Free Documentation License.</quote>
       </para>
    </section>

<!-- The Acknowledgements section should be moved to the end according
	to the LDP Author Guide Text -->
  	<!-- <!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'> -->
<section id="acknowledgements"> <title>Acknowledgments and Thanks</title>

				  <section id="ack1-3"> <title>Version 1 - Version 3</title> <para> Thanks
to everyone that gave comments as I was writing this. This includes David
Lawyer, Deb Richardson, Daniel Barlow, Greg Ferguson, Mark Craig and other
members of the <email>discuss@en.tldp.org</email> list. Some sections I
got from the <ulink url="http://www.tldp.org/HOWTO/">HOWTO Index</ulink>
and the sgmltools documentation. The sections on network access to CVS was
partially written by Sergiusz Pawlowicz
(<email>ser@metalab.unc.edu</email>). Sections on DocBook were written by
Jorge Godoy (<email>godoy@conectiva.com</email>).  A great deal of thanks
to both of them for their help.  </para> </section>

<section id="ack4">
<title>Version 4</title> 
<para> 
Thanks to Tabatha Marshall and Machtelt Garrels (Tille) for making sure I actually
finished the document. Thanks to my reviewers: Charles Curley, Martin
Brown and Tille; and to Saqib Ali for his on-line transformation and
validation tools. I have also incorporated a number of useful emails from the
LDP mailing lists. The original authors are credited within the document. 
Special personal thank yous are extended to Steve Champeon for getting me
interested in markup languages and for being a wonderful mentor; and to my 
partner, Graig Kent, for being outrageously supportive. [EJH]
</para>
</section>
</section>


<!-- Document conventions -->
  <!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="conventions">
<?dbhtml filename="conventions.html"?>
  <title>Document Conventions</title>
  
  <indexterm zone="conventions">
    <primary>conventions</primary>
  </indexterm>
  
  <para>This document uses the following conventions<footnote>
      <para>Please, take a look at the <ulink url="http://cvsview.tldp.org/index.cgi/LDP/guide/docbook/LDP-Author-Guide/">
      source</ulink> to see how to get
      similar results on your documents. You should also remember that
      the way this appears to you depends on the format in which you are reading
      this document: online appearance is slightly different from the
      PostScript or PDF ones.</para></footnote>:</para>
  
  <informaltable frame="none">
    <tgroup cols="2">
      <thead>
        <row>
          <entry>Descriptions</entry>
          <entry>Appearance</entry>
        </row>
      </thead>
      <tbody>
        <row>
          <entry>Information requiring special attention</entry>
          <entry><warning>
              <para>This is a warning.</para>
            </warning></entry>
        </row>
        
		<row>
          <entry>Caution</entry>
          <entry><caution>
              <para>This cautions the reader.</para>
            </caution></entry>
        </row>
        <row>
          <entry>Hint</entry>
          <entry><tip>
              <para>This is a hint.</para>
            </tip></entry>
        </row>
        <row>
          <entry>Notes</entry>
          <entry><note>
              <para>This is a note.</para>
            </note></entry>
        </row>
		<row>
          <entry>File Names</entry>
          <entry><filename>file.extension</filename></entry>
        </row>
        <row>
          <entry>Directory Names</entry>
          <entry><filename class="directory">directory</filename></entry>
        </row>
        <row>
          <entry>Commands to be typed</entry>
          <entry><command>command</command></entry>
        </row>
        <row>
          <entry>Applications Names</entry>
          <entry><application>application</application></entry>
        </row>
        <row>
          <entry><foreignphrase>Prompt</foreignphrase> of users command under bash shell</entry>
          <entry>bash$</entry>
        </row>
        <row>
          <entry><foreignphrase>Prompt</foreignphrase> of root users command under bash shell</entry>
          <entry>bash#</entry>
        </row>
	<row>
	  <entry><foreignphrase>Prompt</foreignphrase> of user command under tcsh shell</entry>
	  <entry>tcsh$</entry>
	</row>
        <row>
          <entry>Environment Variables</entry>
          <entry><envar>VARIABLE</envar></entry>
        </row>
        <row>
          <entry>Emphasized word</entry>
          <entry><emphasis>word</emphasis></entry>
        </row>
	<row>
	  <entry>Quoted text</entry>
	  <entry><quote>quote</quote></entry>
	</row>
        <row>
          <entry>Code Example</entry>
          <entry><programlisting><sgmltag class="starttag">para</sgmltag>Beginning and end of paragraph<sgmltag class="endtag">para</sgmltag></programlisting></entry> 
        </row>
      </tbody>
    </tgroup>
  </informaltable>
  
</section>


</chapter>

	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
  <chapter id="introduction">
    <title>Authoring TLDP Documents: An Introduction</title>

<section id="process">
<title>Summary of The LDP Process</title>
<para>
	The following section outlines the process of creating and/or
	maintaining a document for the Linux Documentation Project. This
	section includes all steps--some of which may not be relevant to your
	specific document.
</para>

<orderedlist>
<listitem>
<para>
	Join the discuss mailing list. Authors who are interested in taking over 
	the maintenance of someone else's document should also join this list. 
   This is to make sure the LDP knows who is working on what documentation.
</para>

<para>
	If you have not yet written your documentation, please review our
	documents (<ulink url="http://tldp.org/HOWTO/HOWTO-INDEX/howtos.html">current</ulink>,
	<ulink url="http://tldp.org/authors/unmaint.html">unmaintained</ulink>
	and <ulink url="">in progress</ulink>) and submit a proposal to the
	list. Your proposal should include reasons why your document will be
	different than those already in the collection; or identify a subject
	that is currently missing from our documentation. For more information 
	about writing proposals, please read <xref linkend="propose"/>.
</para>

<para>
	For more information about the mailing lists, please read <xref linkend="mailinglists"/> or visit <ulink url="http://lists.tldp.org">lists.tldp.org</ulink> to subscribe. 
	If your document has already been written, please submit a copy to the 
	discuss list (or include the URL of where it can be found).
</para>
</listitem>

<listitem>
<para>
	Write your document. If your document has not yet been written, please
	be sure to email the discuss list before you start writing.
	<emphasis>You may choose whatever format you feel most comfortable 
	in to write your document.</emphasis> If it is not one of the formats 
	accepted by the LDP a volunteer will convert it for you. For more 
	information on writing technical documentation, please read 
	<xref linkend="write"/>.
</para>
</listitem>

<listitem>
<para>
	If you are adding your own markup, you may also want to join the
	docbook mailing list.
	For more information about the LDP DocBook list please read 
		<xref linkend="mailinglists"/>.
	If you would like to start with a template, you may find the templates in 
	<xref linkend="templates"/> useful. There is also a general
	introduction to markup in <xref linkend="ag-markup"/> and a section
	full of examples at <xref linkend="using-docbook"/>.
</para>
</listitem>
<listitem>
<para>
	Submit your document for technical, language and metadata reviews. Do this by
	emailing your document to <email>submit@en.tldp.org</email>. In the
	subject line be sure give the title of the document. In the body of the
	email say that you are ready for the review process. Outline any
	additional reviews your document may have already received. You should
	be assigned a reviewer within the week. The reviews may take an
	additional week each. For more information about this process, please
	read <xref linkend="distribute"/>.
</para>
<para>
	If your document is not already in DocBook or LinuxDoc format, a
	reviewer will convert it for you.
</para>
</listitem>
<listitem>
<para>
	Once your document has been through each of the reviews a Review
	Coordinator will add it to the CVS, update the version number to 1.0
	and have the document published on the public Web site.
	For more information about your final submission to the LDP, please
	read <xref linkend="submission"/>.
</para>
</listitem>
</orderedlist>

      <tip><title>If you don't submit your document in DocBook format</title><para>
			The volunteer adding markup to your document may choose any 
			accepted markup language. The Author Guide, however,
			will refer only to DocBook. If you are submitting plain text or
			some other format, please let the LDP know if you prefer to
			maintain your document in either LinuxDoc or DocBook, which are the accepted formats for end-results.
      </para></tip>

</section>

    <section id="mailinglists">
      <title>Mailing Lists</title>
      <para>You can subscribe to the following mailing lists:</para>
	  
	  <itemizedlist>
	  <listitem><para>First is <email>discuss@en.tldp.org</email>, which is the main
      discussion group of the LDP.</para></listitem>

	  <listitem><para>Another is the <email>docbook@en.tldp.org</email> list, which is for
      questions about DocBook use including markup and transformations.  If you run into
      trouble with a particular markup tag, you can send your question
      here for answers.</para></listitem>
	  </itemizedlist>
	  
	  <para>You can subscribe to either list by sending a request 
	  message to either <email>discuss-subscribe@en.tldp.org</email> or 
	  <email>docbook-subscribe@en.tldp.org</email>.   The subject of your message should read 
      <quote>subscribe</quote> (no quotes). To
      remove yourself from the list, send an E-mail with the subject of
      <quote>unsubscribe</quote> to
	  <email>discuss-unsubscribe@en.tldp.org</email> or
	  <email>docbook-unsubscribe@en.tldp.org</email>.</para>

      <para>
        If you are interested in DocBook beyond the simple markup of your
		  LDP document, you may want to consider joining one of the <ulink url="http://www.oasis-open.org/">OASIS</ulink> DocBook mailing
		  lists. Please see <ulink url="http://docbook.org/mailinglist/index.html">http://docbook.org/mailinglist/index.html</ulink>
		  for more information.
      </para>
    </section>
  </chapter>

	<!-- 
        <!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
	$Id: ag-proposal.xml,v 1.16 2004/04/04 23:11:41 emmajane Exp $
-->		  

<chapter id="propose">
<title>Writing Your Proposal</title>

<section id="sg-subject">
<title>Choosing a Subject</title>

<para>
	It is likely that if you are reading the Author Guide, you already have a
	subject in mind. The idea may have come from your own frustrations in
	trying to get something to work; or maybe you are already writing or
	have written documentation for other purposes and you want to submit
	it to the LDP. 
	For example, if you posted a question to a mailing list
	and it took many posts to resolve the problem -- that might be an incentive to write documentation. 
</para>	
<para>
	Regardless of how you picked your subject, it is important that the LDP
	community understand why your documentation should be included in its
	collection. If someone has requested documentation, or you worked
	with a mailing list to resolve a problem you should include the details in
	your proposal to the LDP discuss mailing list. It may help others to
	understand the need for your specific document.
</para>
</section>

<section id="scope">
<title>Scope of Your Document</title>
<para>
	Now that you've got a subject, you will need to decide the
	<emphasis>scope</emphasis> of the document. The scope or subject area
	should be:
</para>

      <orderedlist>
        <listitem>
          <formalpara>          
            <title>Clearly defined.</title>

            <para>
              Define the boundaries of your
              subject area before you begin. Do not repeat information that is in
				  another HOWTO and do not leave gaps of information between
				  your HOWTO and someone else's HOWTO.
            </para>
          </formalpara>
        </listitem>
        
		<listitem>
          <formalpara>
            <title>Not too broad, and not too narrow.</title>
              <para>
                If you try to cover too much information you may sacrifice depth. 
				It is better to cover a small subject area in detail than to cover a large subject
                area poorly. Linux tools are known for doing exactly one
                thing and doing that one thing <emphasis>well</emphasis>. 
                Similarly, your HOWTO should cover one subject and cover it
                <emphasis>well</emphasis>.
              </para>
          </formalpara>

          <para>
			 	If the scope of your proposed document is very narrow, it might be better to
				include your information as part of another HOWTO.
            This makes it easier for readers to find the HOWTO they need. 
				Search the LDP repository for topics which relate to your
				document. If you find a document which is a good match, email the author
				and ask them if they would like to include your contribution.
          </para>
        </listitem>
        
        <listitem>
          <formalpara>
            <title>Undocumented.</title>
            
            <para>
              Before documenting a particular subject, always do a web
				  search (and specifically a search within the LDP documents)
				  to see if your topic is already covered in another
				  document. If it is, refer to the other document instead of
				  duplicating the information within your own document. You
				  may wish to include a brief summary of information that
				  can be found in other documents. 
            </para>
          </formalpara>
      
          <para>
            If the HOWTO already in place is insufficient or needs updating, 
            contact the author and offer to help.  See also <xref linkend="unmaintained"/> for taking over old or unmaintained documents.</para> 

		<para>
	    Most authors appreciate any help offered.  Additionally, sending
		 comments and remarks to the author is usually regarded both as a
		 reassurance and a reward: to the author, feedback is the ultimate proof that writing the documentation was not a pointless effort.</para>
        </listitem>
        
        <listitem>
          <formalpara>
            <title>Pre-approved by the LDP.</title>
            
            <para>
              Before you proceed with your HOWTO, post to the discuss list
              and get some feedback from other LDP volunteers. Checking with the
              list <emphasis>before</emphasis> you begin can save you headaches
              <emphasis>later</emphasis>.
            </para>
          
		  </formalpara>
        </listitem>
      </orderedlist>

<note><title>Stay in touch!</title><para>
 	Joining the discuss list and following
    it regularly, even if you never post, is a good way to stay current
    on the activities, needs and policies of the LDP.
</para></note>

<section id="typesofdocs">
<!-- Sub-Section added by EJH: August 12, 2003 -->
	<title>Documentation Templates</title>
	<para>
	After you've decided the scope of your document you
	should start to consider the type of document that you will write. There are
	a number of different LDP documentation templates:
	Guides, HOWTOs, man pages and FAQs. Rahul Sundaram
	describes their scope in the <ulink url="http://tldp.org/FAQ/LDP-FAQ/index.html">Linux Documentation
	Project (LDP) FAQ</ulink>. Here is a brief overview of what they are
	with pointers on how you can get started writing your own:	
	</para>

	<itemizedlist>
	<listitem>
		<formalpara>
		<title>Guides</title>
		<para>A guide covers a broad subject and is quite long. The Author
		Guide (this document) is a guide. Other guides include: 
		<ulink url="http://tldp.org/LDP/intro-linux/html/index.html">Introduction to Linux: A hands on
		guide</ulink>,
		<ulink url="http://tldp.org/LDP/lkmpg/index.html">The Linux Kernel
		Module Programming Guide</ulink>, etc. A full list of guides is
		available from: <ulink url="http://tldp.org/guides.html">Linux Project 
		Documentation Guides</ulink>. Guides use the <quote>book</quote>
		templates located in <xref linkend="templates"/>.
		</para>
		</formalpara>
	</listitem>
	
	<listitem>
		<formalpara>
		<title>HOWTOs</title>
		<para>A HOWTO is typically a set of instructions that outlines,
		step-by-step, how a specific task is accomplished. Examples of
		HOWTOs are: 
			<ulink url="http://tldp.org/HOWTO/CDROM-HOWTO/index.html">CDROM-HOWTO</ulink>
			<ulink url="http://tldp.org/HOWTO/Module-HOWTO/index.html">Module-HOWTO</ulink>.
		A full list of HOWTOs is available from: <ulink url="http://tldp.org/HOWTO/HOWTO-INDEX/howtos.html">Single List of
		HOWTOs</ulink> (warning: it's a BIG page). HOWTOs typically use the
		<quote>article</quote> template and are output to multiple HTML
		pages by default.
		Templates are available in <xref linkend="templates"/>.
		</para>
		</formalpara>
	</listitem>
	
	<listitem>
		<formalpara>
		<title>man pages</title>
		<para>man (Manual) pages are the standard form of help available for many
		linux applications and utilities. They can be viewed by typing
		<command>man applicationname</command> at a prompt. A full list of man
		pages is available from: 
		<ulink url="http://tldp.org/docs.html#man">Linux Man Pages</ulink>.
		Since man pages are bundled with software there is no LDP template
		at this time.</para>
		</formalpara>
	</listitem>
	
	<listitem>
		<formalpara>
		<title>FAQs</title>
		<para>FAQs (Frequently Asked Questions) are a list of questions and
		answers to help prevent new users from asking the same questions
		over and over again.
		A full list of FAQs is available from: <ulink url="http://tldp.org/FAQ/">Linux Documentation Project
		FAQs</ulink>. FAQs typically use the <quote>article</quote>
		template with some specific DocBook elements to form the
		Question/Answer structure.
		You can find a template for writing a FAQ in <xref linkend="templates"/>.
		</para>
		</formalpara>
	</listitem>
	</itemizedlist>

	<note><title>mini-HOWTOs and HOWTOs</title><para>
		The LDP no longer distinguishes between HOWTOs and mini-HOWTOs. All
		previously written mini-HOWTOs have been included in longer HOWTOs.
		All new documents must be at least HOWTO in length.  This means the
		documents should cover a bigger subject area rather than a small one. If
		your document is very small you may wish to submit it for inclusion
		in another, larger HOWTO that already exists. If you're not sure
		what size your document is, email the discuss list and ask for
		feedback.
	</para></note>
	
</section> <!-- end of types of docs -->
</section> <!-- end of choosing a subject -->

<section id="unmaintained">
<title>Unmaintained and Out-of-date Documents</title>

<para>
  If you wish to become the <quote>owner</quote> for an unmaintained document there are
  several steps you must go through.
</para>

<itemizedlist>
	<listitem><para>
	   Contact the author. Make sure the author no longer 
wishes to maintain the document in question. Note that the E-mail address 
shown may no longer be valid. In that case, try a <ulink url="http://google.com">search</ulink> for the 
author. If the original author of a document cannot be found after a <quote>good-faith</quote> effort, 
let us know (<email>feedback@en.tldp.org</email>).
	</para></listitem>

	<listitem><para>
      Determine if a more up-to-date copy of the document exists, outside
of what is available on the LDP. If so, try to secure a copy for yourself
to work on.
   	</para></listitem>

	<listitem><para>
      Inform the LDP which document you would like to maintain, so that we can
track who is working on what and prevent duplication of effort. We also
suggest that you join the LDP general discussion list
(<email>discuss@en.tldp.org</email>). This step is also required for new
documents.
	</para></listitem>   

    <listitem><para> 
	Submit the document to the LDP with any intended modifications. Make
sure to continue to reference the original author somewhere within the
document (Credits, Revision History, etc.). Once the document is
re-submitted, we will remove the entry from the list of unmaintained
documents.
	</para></listitem>
</itemizedlist>

<note><title>Feedback wanted</title><para>Some of unmaintained documents may be outdated, or the content may be
covered in another (actively maintained) HOWTO. If that is the situation,
contact us (preferably on the discuss mailing list) and let us know.</para></note>
	
</section>
  
<section id="sg-outline">
    <title>Developing an Outline</title>
    
    <para>
      Before you actually begin writing, prepare an outline.
      An outline will help you to get a clear picture of the subject matter
      and allow you to concentrate on one small part of the HOWTO
      at a time.
    </para>
    
    <para>
      Unless your HOWTO is exceptionally small, your outline will probably
      be multilevel.
      When developing a multilevel outline, the top level should contain general
      subject areas, and sub-headings should be more detailed and specific.
      Look at each level of your outline independently,
      and make sure it covers all key areas of the subject matter. Sub-headings
      should cover all key areas of the heading under which they fall.
    </para>
    
    <para>
      Each item in your outline should follow the item before it,
      and lead into the item that comes next. For example, a HOWTO about a particular
      program shouldn't have a section on <emphasis>configuration</emphasis>
      before one on <emphasis>installation</emphasis>.</para>
	  
	  <para>You may choose to use the following outline for a HOWTO about
	  using a specific program:</para>

	  <itemizedlist>
	  <listitem><para>development history</para></listitem>
		
	  <listitem><para>where to download the software from</para></listitem>
	  
	  <listitem><para>how to install the software</para></listitem>
	  
	  <listitem><para>how to configure the software</para></listitem>
	  
	  <listitem><para>how to use the software</para></listitem>
      </itemizedlist>
	
	<para>You may find it helpful to try a little <quote>card
	sorting</quote> at this stage of the writing process. Write all of your mini
	subject areas onto pieces of paper. Now sort these pieces of paper into
	main headings and their sub-sections. It may help to shuffle the slips of
	paper before you start. This will help to give you a fresh set of eyes
	while working.
	</para>
	
    <para>
      When you are comfortable with your outline, look it over once more,
      with a critical eye. Have you covered every relevant topic in
      sufficient detail? Have you not wandered beyond the scope of the document?
      It is a good idea to show your outline to others (including The LDP
	  discuss list) to get some feedback.
      Remember: it is much easier to reorganize your document at the outline stage 
	  than doing this after writing it. 
    </para>
    
	<tip><title>Writing a HOWTO made easy</title>
		<para>
		For help writing your HOWTO outline, and getting a head start on
		the markup of your document, check out <ulink url="http://www.nyx.net/~sgjoen/The_LDP_HOWTO_Generator.html">The LDP HOWTO
		Generator</ulink>.  Note that this is for generating HOWTOs.  Templates for FAQs and Guides are available in <xref linkend="templates"/>.
	</para></tip>
	 
    <note><title>You're not alone</title>
      <para>
        You might have noticed a theme developing here.
        Just like Free software, Free documentation is best when you
        <quote>release early, release often.</quote> The discuss list includes
        many experienced LDP authors, and you would be wise to seek their
        advice when making decisions about your contribution.
      </para>
    </note>
</section>

<section id="research">
<!-- Section added by EJH: August 12, 2003 -->
<title>Research</title>
	<para>
	  While you are working on your outline you will most likely research 
	  your topic--especially to confirm the document you are about to 
	  write does not yet exist! Here are a few pointers that will keep
	  you from pulling out your hair later:
	</para>

	<itemizedlist>
		<listitem>
			<formalpara>
			<title>Compile your resources as you research.</title>
			<para>It is almost guaranteed you will not remember where to
			find a critical piece of information when you need it most. It
			will help to bookmark important (and even not so important)
			pages as you go. Make sure the bookmark's title reflects why the
			page is important to you.
			If there are multiple key ideas in one page, you may want to bookmark the
			same page with different titles.</para>
			</formalpara>
		</listitem>

		<listitem>
			<formalpara>
			<title>Assume your most important resource will disappear.</title>
			<para>The dreaded <quote>Error 404: Page not found</quote>. Even if you have
			bookmarked a page it may not be there when you return to it. If
			a page contains a really critical piece of information: make a
			copy. You may do this by creating a text file with the title of 
			the document, the author's name, the page's URL and the text of 
			the page into a text file on your computer. You might also
			choose to <quote>print</quote> the file to a PDF (save as or convert to PDF format will
			capture the original URL on the page if you're using a smart
			browser).</para>
			</formalpara>
		</listitem>

		<listitem>
			<formalpara>
			<title>Start your <quote>Resources</quote> page now.</title>
			<para>As you find pages of interest add them to a Resources
			document. You may do this by exporting your bookmarks or by
			keeping a separate text file with the Resources sorted by
			sub-category. A little effort now will save you a lot of time
			later.</para>
			</formalpara>

			<para>
				There is more information about the DocBook markup of
				bibliographies in <xref linkend="doc-bib"/>.
			</para>
		</listitem>
		
		<listitem>
			<formalpara>
			<title>Write down subject areas as you go.</title>
			<para>If you are card sorting you may find it particularly
			useful to write topic cards as you find pages that cover that
			specific topic. At the top of the card write the subject area.
			In the main area of the card write a few notes about what you
			might cover under this topic--include the titles of pages that
			contain important information. If a sub-topic gets too big you
			may want to divide it into multiple cards.</para>
			</formalpara>
		</listitem>
		
		<listitem>
			<formalpara>
			<title>Separate generic information from version-specific
			information.</title>
			<para>A new version of the software that you describe might be released the day after you release your document.
			Other things, like where to download
			the software, won't change. Alternatively, you may 
			choose to document old problems with specific software as a way
			of encouraging readers to upgrade to the latest version available:
			<quote>Version X of the software is known for a specific bug.
			The bug was fixed as of Version Y.</quote>
			</para>
			</formalpara>
		</listitem>
	
		<listitem>
			<formalpara>
			<title>Save all related emails.</title>
			<para>People will often have interesting insight into the
			problem that you are writing about. Any questions that are asked
			about your topic should be addressed in the final document. If
			you are writing about software make sure to ask people what
			system they are using. Add information in your document about
			which system configurations your instructions have been tested
			on. (Having lots of friends with moderately different
			configurations can be very beneficial!)
			All of these personal experiences can add
			greatly to your final documentation.</para>
			</formalpara>
		</listitem>
	</itemizedlist>
</section>
</chapter>

	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<chapter id="write">
<title>Write</title>

  <section id="sg-writingstyle">
    <title>Writing the Text</title>
    
    <para>
      By now you should have organized your document; you collected bits of raw information
      and inserted them into the outline.
      Your next challenge is to massage all of the raw data you've collected 
	  into a readable, entertaining and understandable whole. If you are
	  working from an existing document make sure any new pieces of
	  information are in the best possible places.
    </para>
    
    <para>
      It has taken quite a bit of work to get to the point where you can
      actually start writing, hasn't it? Well, the hard work begins to pay
      off for you now. At this stage, you can begin to really use your
      imagination and creativity to communicate this heap of information. 
		Don't be too clever though! Your readers are already struggling with 
		new concepts--do not make them struggle to understand your language
		as well.
    </para>

	<para>
	  There are a number of classic guides to writing--many
	  of which are available on-line. 
	  Their language will
	  seem old, but the messages are still valuable to authors today.
	  These are listed in <xref linkend="ref-techwriting"/>. Also listed in the
	  resources section are a variety of sites that have 
	  information specific to technical writing.
	</para> 
	
	<para>
	  The Author Guide wouldn't be complete without
	  mentioning the Plain Language movement. Although
	  directed at simplifying government documents, <ulink url="http://www.blm.gov/nhp/NPR/pe_toc.html">Writing user-friendly
	  documents</ulink> is quite useful. It includes before and after
	  writing samples. There's also a 
	  	<ulink url="http://www.web.net/~plain/PlainTrain/IntroducingPlainLanguage.html">PlainTrain 
	  writing tutorial</ulink>.
	</para>

	<para>
	  And any document that discusses writing for the web wouldn't be complete without
	  a nod toward <ulink url="http://www.useit.com">useit.com</ulink>.
	  The following articles may be of specific interest:
	  <itemizedlist> 
	  <listitem><para><ulink url="http://www.useit.com/papers/webwriting/">Writing for the Web</ulink></para></listitem>
	  <listitem><para><ulink url="http://useit.com/alertbox/20030811.html">Information pollution</ulink></para></listitem>
	  <listitem><para><ulink url="http://useit.com/alertbox/9703b.html">Be Succinct! (Writing for the Web)</ulink></para></listitem>
	  </itemizedlist>
	  There are many, many resources for writing web
	  documents--a quick web search for <quote>web
	  writing</quote> will find lots of resources. 
	  Don't get too distracted, though: the ultimate goal is to
	  write, not to read about writing!
	</para>

	<section id="writing-style">
	<!-- Section Added by ejh: August 12, 2003 -->
    <title>Writing Style and Style Guides</title>
	<para>
	  There are a number of industry style guides which define how language
	  should be used in documents. A common example for American English is
	  the <ulink url="http://www.chicagomanualofstyle.org/">Chicago Manual
	  of Style</ulink>. It defines things like: whether a period (.) should be inside or
	  outside of <quote>quotes</quote>; and the format for citing 
	  another document. A style guide helps to keep documents
	  consistent--most corporations will follow a style guide to 
	  format media releases and other promotional material. 
	  Style guides mays also define how words should be spelled 
	  (is it color or colour?).
	</para>
	<para>
	  The LDP does not require a specific style
	  guide; however, you should use a consistent style throughout your
	  document. Your document should be spell checked for a single
	  language (e.g. American English vs. British English).
	  The <ulink url="http://tldp.org/HOWTO/LDP-Reviewer-HOWTO/">Reviewer's HOWTO</ulink> currently lists a number of
	  conventions for LDP documents and it is as close as it
	  gets to an official LDP Style Guide.
	</para>

<tip><title>A personal glossary</title>
<para>It helps to make a list of terms that you were new to you when you
first started researching and writing your document. You can refer to this
list while writing the text. You may also want to include it as a glossary in
your final document.
</para></tip>

	<para>
	  You can save yourself a lot of time in the editing phase if you
	  decide how you will write your document ahead of time. If you are
	  taking over someone else's document you may need to either: modify
	  your own style to fit the current document; or edit the
	  document so that it melds with the style you would like to
	  use from now on.
	</para>

    <para>
      From a writing style perspective, use of the
	  first-person in a HOWTO adds to its charm--an attribute most 
	  other documentation sorely lacks. Don't be afraid 
	  to speak for yourself--use the word <quote>I</quote> to 
	  describe your personal experiences and opinions.
    </para>
	</section>
   
    <section id="writing-resources">
	<title>On-line Writing Resources</title>

	<para>
      In the <xref linkend="ref-techwriting"/>
      section, you will find a list of resources that cover the subject
      better than this guide could hope to. Consult them, and follow their
      advice.
    </para>
	</section> <!-- writing-resources -->
  </section> <!-- sg-writingstyle -->
  
  <section id="sg-editing">
    <title>Edit and Proofread the Text</title>
    
    <para>
      Once you've written the text of your HOWTO, it is time 
	  to polish and refine it. Good editing can make the 
	  difference between a good HOWTO and a great one.
    </para>
    
    <para>
      One of the goals of editing is to remove <emphasis>[extraneous]</emphasis> material that
      has crept its way into your document.
      You should go through your HOWTO carefully, and ruthlessly
      delete anything that does not contribute to the reader's understanding
      of the subject matter. It is natural for writers to go off on tangents
      while in the process of writing. Now is the time to correct that. It
	  often helps to leave a bit of time between when you write a document
	  and when you edit it.
    </para>

	<para>
	  Make sure that the content of every section matches the title
	  precisely. It's possible that your original subject heading
	  is no longer relevant. If you've strayed from your original heading
	  it could mean one of the following: the original title was poorly
	  worded, the new material should actually go in a different section,
	  or the new material is not really necessary for your document. If you
	  need to change a title, check to see if the original subject heading 
	  is still important. If it is, make sure that topic is covered somewhere
	  else in the document.
	</para>
    
    <para>
      When editing and proofing your work, check for obvious mistakes, 
      such as spelling errors and typos. You should also check for deeper, but
      less obvious errors as well, such as <quote>holes</quote> in the
      information. If you are creating a set of instructions it may
	  help to test them on a new machine. Sometimes there
	  are packages that need to be installed which you've forgotten to
	  mention in your documentation, for instance.
	</para> 
	
	<para>
      When you are completely satisfied with the quality and accuracy of
      your work, forward it to someone else for third-party proofing.
      You will be too close to the work to see fundamental flaws.
	  Have others test the instructions as
	  well. Make sure they follow exactly what you have written. Ask anyone
	  who tests your documentation to make specific notes in any places
	  where they didn't follow your instructions (and the reason why they
	  didn't follow them). For example: <quote>I skipped step 2 because I
	  already have the required packages installed.</quote>
    </para>
    
    <para>
      In a sense, editing is like code review in software development.
      Having a programmer review their own code doesn't make much sense,
	  and neither does having a writer edit their own document.
      Recruit a friend, or write the discuss list 
	  to find a volunteer to proofread before submitting your document. You
	  may also want to submit your document to a mailing list that is
	  relevant to your document's topic. List members should be able to
	  help check the facts, clarity of your instructions and language of 
	  the document.
    </para>

    <note><title>Native speaker?</title>
      <para>
        If you are writing in a language in which you are not fluent,
        find an editor who is. Technical
        documentation, more than any other type of writing, must use
        extremely precise grammar and vocabulary. Misuse of language
		makes your document less valuable.
      </para>
    </note>
  </section>

  <section id="tools-writing">
  <title>Tools for Writing, Editing and Maintaining your Document</title>
  <caution><title>Reminder</title><para>
  You do <emphasis>not</emphasis> need to submit your
  initial document to the LDP in anything more than plain text! The LDP
  volunteers will convert your document to DocBook for you. Once it has
  been converted you will need to maintain your document in DocBook format.
  </para></caution>

  <section id="ag-edittools">
  <title>Editing Tools</title>
  <para>
  	You may use any word processing or text editing tool to write your
	initial document. When you get to the markup stage you may want to use
	a text editor which recognizes DocBook files. At a minimum a program
	which adds syntax highlighting to your markup will make life a lot
	easier. For a description of editors which can handle DocBook files
	please skip to <xref linkend="tools-edit"/>.
  </para>
  </section>

  <section id="cvs-brief">
  <title>Concurrent Versions System (CVS)</title>
	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

    <para>
	 	The LDP provides optional CVS access to its authors. This enables
		collaborative writing and has the following positive effects:
    </para>

    <orderedlist inheritnum="ignore" continuation="restarts">
      <listitem>
        <para> CVS will keep an off-site backup of your documents. In
        the event that you hand over a document to another author,
        they can just retrieve the document from CVS and continue
        on. In the event you need to go back to a previous version of
        a document, you can retrieve it as well.  </para>
      </listitem>
      <listitem>
        <para>However difficult from an organizational point of view, it's great to have multiple people working on the same
        document.  CVS enables you to do this. You can have CVS tell you what changes were made by another author 
        while you were editing your copy, and
        integrate those changes.</para>
      </listitem>
      <listitem>
        <para>CVS keeps a log of what changes were made. These logs (and
        a date stamp) can be placed automatically inside your documents
		  when they are published.
        </para>
      </listitem>
      <listitem>
        <para> CVS can be combined with scripts to automatically
      update the LDP web site with new documentation as it's written
      and submitted. This is not in place yet, but it is a goal. 
		Currently, CVS updates signal the HOWTO coordinator to
      update the LDP web page, meaning that if you use CVS, you're not
      required to e-mail your XML code. (Although you do
      still need to send the submit list an email when you
      are ready for your document to be published, because the whole publishing process has not been fully automated yet.) </para>
      </listitem>
    </orderedlist>



	 <para>
	 	For more information on how to use CVS to maintain your LDP
		documents, please read <xref linkend="cvs"/>.
	 </para>
  </section> <!-- cvs -->
  
  <section id="ag-spellcheck">
      <title>Spell Check</title>

		<para>
			Some writing tools will come with their own built-in spell
			check tools. This list is only if your application does not
			have a spell check option. 
		</para>

		<variablelist>
		<title>Spell Check Software</title>

		<varlistentry>
		<term>
			<application>aspell</application>
			<ulink url="http://aspell.sourceforge.net"/>
		</term>
		<listitem>
		<para>
        This spell check application can work around XML tags. By
		distinguishing between content and markup aspell is able to check
		your content and ignore the bits it shouldn't be looking at. If you
		are getting spelling errors in your markup tags you may be using an
		old version and should upgrade.
		</para>
		<para>The <command>aspell</command> command comes with the <application>aspell</application> package, included on most Linux distributions.  Use the command as follows:</para>
<cmdsynopsis><command>aspell <option>-c</option> <filename>file</filename></command></cmdsynopsis>
<para>An interactive user interface allows for fast and easy correction of errors.  Use the <option>--help</option> to read more about <command>aspell</command> features.</para>
		</listitem>
		</varlistentry>
	
		<varlistentry>
		<term>
			<application>ispell</application>
			 <ulink url="http://www.cs.hmc.edu/~geoff/ispell.html"/>	
		</term>
		<listitem>
		<para>
			Similar to <application>aspell</application>, but tries to spell
			check your markup tags. If you have a choice, use
			<application>aspell</application>, if not,
			<application>ispell</application> is a very acceptable substitute.
		</para>
		</listitem>
		</varlistentry>
		</variablelist>
	</section> <!-- end of spell check -->


  </section> <!-- end writing-tools -->
</chapter>

	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

<chapter id="ag-markup">
<title>Markup</title>

<section id="markup">
<title>Markup: A General Overview</title>
<para>
	A markup language is a system for marking or tagging a document to
	define the structure of the document. You may add tags to your document
	to define which parts of your document are paragraphs, titles, 
	sections, glossary items (the list goes on!).
	There are many markup languages in use today. XHTML and HTML will be
	familiar to those who author web documents. The LDP uses a markup
	language known as DocBook. Each of these markup languages uses its own
	<quote>controlled vocabulary</quote> to describe documents. For
	example: in XHTML a paragraph would be marked up with the tagset 
	&lt;p&gt;&lt;/p&gt; while in DocBook a paragraph would be marked up 
	with <sgmltag class="starttag">para</sgmltag><sgmltag class="endtag">para</sgmltag>. The tagsets are defined in a quasi
	dictionary known as a Document Type Definition (DTD).
</para>

<para>
	Markup languages also follow a set of rules on how a document
	can be assembled. The rules are either SGML (Standard Generalized
	Markup Language) or XML (eXtensible Markup Language). These rules are
	essentially the <quote>grammar</quote> of a document's markup. SGML and
	XML are very similiar. XML is a sub-set of SGML, but XML requires more 
	precise use of the tags when marking up a document. 
	The LDP accepts both SGML and XML documents, but prefers XML.
</para>

<para>There are three components to an XML/SGML document which is read by a
person.</para>
	  <itemizedlist>
		<listitem>
		<formalpara><title>Content</title><para>
      As a TLDP author it is good to remember
	  that this is the most important piece. Many authors will
	  write the content first and add their markup later. Content
	  may include both plain text and graphics. This is the only part that
	  is required of LDP authors!
		</para></formalpara>
		</listitem>

		<listitem>
		<formalpara><title>Markup</title><para>
	  To describe the structure of a document a controlled
	  vocabulary is added on top of the content. It is used to
	  distinguish different kinds of content: paragraphs,
	  lists, tables, warnings (and so on). The markup must also conform to
	  either SGML or XML rules. If you are not comfortable
	  adding markup to your document, a TLDP volunteer will do it for you.
		</para>
		</formalpara>
		</listitem>

		<listitem>
		<formalpara><title>Transformation</title><para>
      Finally the document is transformed from DocBook to PDF, HTML,
		PostScript for display in digital or paper form. This transformation is controlled
	  through the Document Style Semantics and Specification
	  Language (DSSSL).
      The DSSSL tells the program doing the transformation how to
      convert the raw markup into something that a human can read.
		The LDP uses a series of scripts to automate these transformations. 
		You are not required to transform your own documents.
		</para></formalpara>
		</listitem>
	</itemizedlist>
	  
	  <note><title>Content, markup and transformations</title>
	  <para>Steve Champeon does a great job of
	  explaining how content, markup languages, and transformations all fit
	  together in his article <ulink url="http://hotwired.lycos.com/webmonkey/02/42/index4a.html">The
	  Secret Life of Markup</ulink>. Although he is writing from an HTML
	  perspective, the ideas are relevant and there is an example of DocBook markup.</para></note>

</section>

<section id="docbook-why">
<title>DocBook: What it is and why we use it</title> 

<para>
	According to the official DocBook web site,
	<blockquote>
	<attribution>DocBook.org</attribution>
	<para>
	DocBook is a general purpose XML and SGML document type particularly well
	suited to books and papers about computer hardware and software (though
	it is by no means limited to these applications).
	</para></blockquote>
</para>

<tip><title>For the impatient</title><para>
	In the next sections we will be explaining about the theoretical side of DocBook, its origins, development, advantages and disadvantages.  If you just want the practical side, check out these sections for an overview of HOWTO DocBook:
	<xref linkend="ref-docbook"/>,
	<xref linkend="using-docbook"/>,
	and <xref linkend="x2docbook"/>
	from this guide.
</para></tip>

<para>
	Although there are other DTDs used to write documentation,
	there are a few reasons not to use them.
</para>

	  <itemizedlist> <listitem><para> DocBook is the most
	  popular DTD, being
      used by more than a dozen major open source projects from
      GNOME to Python to FreeBSD.
	  </para></listitem> <listitem><para> The tools for DocBook
	  are more developed than others.  DocBook support is
	  included in most Linux distributions, allowing you to
	  send raw files to be processed at the receiver's end.
	  </para></listitem> <listitem><para> And finally, DocBook
	  has an extensive set of tags (over 300 in all) which is
	  very useful when you are trying to describe the content
	  of a document.  Fortunately for new authors the majority
	  of them do not need to be used for simple documentation.
	  </para></listitem> </itemizedlist>

	  <para>Still not convinced? Eric
	  Raymond has written a <ulink url="http://en.tldp.org/HOWTO/DocBook-Demystification-HOWTO/">DocBook
	  Demystification HOWTO</ulink> which may help.  </para>

	  <para>
			Convinced, but still not comfortable with the thought of
			working with DocBook? Give David Lawyer's <ulink url="http://tldp.org/HOWTO/Howtos-with-LinuxDoc.html">Howtos-with-LinuxDoc-mini-HOWTO</ulink>
			a try.
	  </para>
</section>

<section id="docbookxml">
<title>XML and SGML: Why we use XML</title> 
<para>
	DocBook comes in a couple of different flavors--including both 
	XML and SGML formats. This means that you may use either the SGML
	grammar/rules when adding markup, or you may use the XML grammar/rules.
	Either way you may only use one set of rules throughout your document, 
	and you must define which one you are using at the top of your document.
</para>

<para>
	The LDP prefers the XML flavor of DocBook. There are a number of
	reasons for this including the following:
</para>

<orderedlist inheritnum="ignore" continuation="restarts">
	<listitem>
	<para>
	  Libraries for handling XML files are developing at a
	  rapid pace.  These utilities may make it easier for new
	  authoring tools to become available.
	</para>
   </listitem>
	<listitem>
	<para>
	  Many popular word processing programs are now creating
	  XML output.  While it may not be DocBook XML, this does
	  make it easier for application writers to either add
	  DocBook XML support, or provide some method of translating
	  between their format and DocBook XML.
	</para>
   </listitem>
	<listitem>
	<para>
	  Everyone else is doing it.  While this might not be a
	  real reason, it allows the LDP to keep up-to-date with
	  similar projects.  Tools, procedures, and issues can be
	  worked out in a common framework.
	</para>
   </listitem>
   </orderedlist>

<para>
		Still not convinced? Fortunately the LDP does
		accept a number of other file formats for input. The list of accepted markup
		languages can be found in <xref linkend="acceptedversions"/>
    </para>
</section>

<section id="acceptedversions">
<title>Markup Languages Accepted by TLDP</title> 
		<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

<para>
	The LDP stores its documents in the following markup languages:
</para>

<orderedlist>
<listitem>
<para>
	DocBook XML version 4.2 (preferred), 4.1.2
</para>
</listitem>
<listitem>
<para>
	DocBook SGML version 4.2, 4.1, or 3.x
</para>
</listitem>
<listitem>
<para>
	LinuxDoc SGML
</para>
</listitem>
</orderedlist>

<note><title>New Documents</title>
<para>
	A new document may be submitted to the LDP in any format. Documents
	which are not in DocBook or LinuxDoc will be converted by a volunteer.
	The author is responsible for adding markup to any revisions which are
	made.
</para>
</note>

</section>
<!--
<section id="doctype">
<title>DocBook Documents: Inserting a DOCTYPE</title>

      <para>When writing your DocBook header, it should look like
      this:</para> 

<screen>
<sgmltag class="starttag">!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"</sgmltag> 
</screen>

<section id="html2db">
	<title>HTML to DocBook</title>
	<para>
		If your document is already written in HTML, you may want to try
		<application>html2db</application> to convert your document.
		More information is available from <ulink
		url="http://www.cise.ufl.edu/~ppadala/tidy/" />.
	</para>
</section>
-->

</chapter>

	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<chapter id="distribute">
<title>Distributing Your Documentation</title>

<section id="pre-distribute">
<title>Before Distributing Your Documentation</title>
	<para>
		Before you distribute your documentation, there are a few more
		things that you will need to check and possibly add to your document.
	</para>

	<variablelist>
	<varlistentry>
	<term>Spelling and Grammar Check</term>
	<listitem>
	<para>
		You can read more about helper applications in <xref linkend="ag-spellcheck"/>. You should also check your document for
		its overall flow and clarity.
	</para>
	</listitem>
	</varlistentry>
	
	<varlistentry>
	<term>Abstract and Other Meta Data</term>
	<listitem>
	<para>
		Add a short paragraph which clearly defines the scope of your
		document.
		For more information on how to add this information using DocBook
		please read <xref linkend="metadata-markup"/>
	</para>
	</listitem>
	</varlistentry>
	
	<varlistentry>
	<term>Acknowledgments</term>
	<listitem>
	<para>
		Give credit where credit is due. For more information about when to
		give credit, read <xref linkend="crediting-ack"/>.
	</para>
	</listitem>
	</varlistentry>
	
	<varlistentry>
	<term>License and Copyright</term>
	<listitem>
	<para>
		The LDP distributes documents, however, the author maintains the
		copyright on the document. All documents accepted by the LDP must
		contain a license and copyright notice. You can read more about this
		in <xref linkend="doc-copyright"/>.
		You may also want to add a Disclaimer, but this is optional. More
		about this in <xref linkend="doc-disclaimer"/>.
	</para>
	</listitem>
	</varlistentry>

	<varlistentry>
	<term>Validate the Markup</term>
	<listitem>
	<para>
		If you are submitting a DocBook or LinuxDoc document, make sure the
		markup is valid. Read why in <xref linkend="why-validate"/>.
	</para>
	</listitem>
	</varlistentry>

	
	<varlistentry>
	<term>Obtain Peer Reviews</term>
	<listitem>
	<para>
		You may want to have others review your document before
		submitting it to the LDP. Ask people for a <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/peerreview.html">Peer
		Review</ulink> and/or a <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/techreview.html">Technical
		Accuracy Review</ulink>. Since not all mailing lists will respond favorably 
		to attachments, you may wish to set up a temporary web site which houses your
		document. Note: this is absolutely <emphasis>not</emphasis> required.
	</para>
	</listitem>
	</varlistentry>
	</variablelist>
</section>

<section id="doc-licensing">
      <title>Licensing and Copyright</title>
      <para> In order for a document to be accepted by the LDP,
      it must be licensed and conform to the <quote>LICENSE
		REQUIREMENTS</quote> section of the LDP Manifesto located at <ulink url="http://www.tldp.org/manifesto.html">http://www.tldp.org/manifesto.html</ulink>.
		</para>

      <para> We recommend using the <ulink url="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation 
      License (GFDL)</ulink>, one of the <ulink url="http://www.creativecommons.org/license">Creative Commons
		Licenses</ulink>, or the LDP license (currently under review). The 
		full text of the license must be included in your document, including 
		the title and version of the license you are using. The LDP will not
		accept new documents that do not meet licensing requirements.</para>
		
		<para>You can get DocBook markups of both the GNU GPL
      and the GNU FDL from <ulink url="http://developer.gnome.org/projects/gdp/licenses.html">
      the GNOME Documentation Project</ulink>.  You can then merely
      include the license in its entirety in your document. A
		DocBook-formatted copy of the license is available in
		<xref linkend="templates"/>.
		</para>
		
		<para>
			For more information about open source documentation and
			licensing, please check <xref linkend="ref-licenses"/>.
		</para>
		
		<section id="doc-copyright">
		<title>Copyright</title>
      <para>As an author, you may retain the copyright and add other
      restrictions (for example: require approval for any translations or
      derivative works). If you are a new
      maintainer of an already-existing HOWTO, you must include the
      previous copyright statements of the previous author(s) and the
      dates they maintained that document. </para>
		</section>
	 
	 <section id="doc-disclaimer">
		<title>Disclaimer</title>
		<para>If you would like to include a disclaimer, you may choose
		to use the following:</para>
		<blockquote>
		<!-- A Standard Disclaimer -->
<para>  
No liability for the contents of this document can be accepted.
Use the concepts, examples and information at your own risk.
There may be errors and inaccuracies, that could be damaging
to your system. Proceed with caution, and although it is highly
unlikely that accidents will happen because of following advice 
or procedures described in this document, the author(s) do not 
take any responsibility for any damage claimed to be caused by 
doing so.
</para>

<para>
All copyrights are held by their by their respective owners, 
unless specifically noted otherwise. Use of a term in this 
document should not be regarded as affecting the validity of
any trademark or service mark. Naming of particular products or
brands should not be seen as endorsements.
</para>

		</blockquote>
	 </section>

	<section id="doc-sourcecode">
		<title>Licensing source code</title>
      <para>If your HOWTO includes bits of source code that you want others to use,
      you may choose to release the source code under GPL.</para>
	</section>
</section>

<section id="crediting-ack">
	<title>Acknowledgments</title>

   <para>Your document should have an <quote>Acknowledgments</quote> section,
      in which you mention everyone who has contributed to your document in
      any meaningful way. You should include translators and converters, as well as
      people who have sent you lots of good feedback, perhaps the person who taught
      you the knowledge you are now passing on, and anybody else who was instrumental
      in making the document what it is. Most authors put this section at the end
      of their document.
	</para>
    
	 <para>When someone else assists in the production of an
	 LDP document,
    you should give them proper attribution, and there are DocBook tags
    designed to do this. This section will show you the tags you should
    use, as well as other ways of giving credit where credit is due.
    Crediting editors is easy - there is already an
    <sgmltag class="starttag">editor</sgmltag>tag in DocBook.
    But there are two special cases where you need to credit someone,
    but DocBook doesn't provide a special tag. These are <emphasis>translators</emphasis>
    and <emphasis>converters</emphasis>.</para>

    <para>A <emphasis>converter</emphasis> is someone
    who performs a source code conversion, for instance from HTML to DocBook XML.
    Source code conversions help the LDP achieve long term goals for meta-data,
    and allow us to distribute documentation in many different formats.</para>

    <para>Translators take your original document and translate it into other
    human-readable languages, from English to Japanese for example, or from German
    to English. Each translation allows many more people all over the world
    to make use of your document and of the Linux operating system!</para>

		<para>
		We recommend that 
		you acknowledge converters in the comment for the
      initial version released in the new format, and 
		we recommend that you credit translators in each 
		version which they have translated.</para>

	<note><title>Acknowledgments translated in DocBook</title><para>For more information on how to add these credits using DocBook
		please read <xref linkend="metadata-markup"/>
	</para></note>
</section>

<section id="ag-review">
<title>TLDP Review Process</title>

<para>
	Before your document is accepted to the LDP collection it will undergo
	at least three formal reviews. These reviews include a <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/techreview.html">technical accuracy
	review</ulink>, a <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/languagereview.html">language
	review</ulink> and a <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/metadatareview.html">metadata
	review</ulink>. All new documents must pass these reviews
	before being accepted into the collection.
</para>

<para>
	When you feel your document is finished, email a copy to the submit 
	mailing list. Please include the title of your document and
	<quote>Final Review Required</quote> in the subject line of your email. 
	A team of volunteers will be assigned to your document for each of the
	reviews. It may take up to a week to gather a team who is qualified to review your document.
	Typically the technical review happens first, followed by the language
	review and finally the metadata review. Your reviewers will read your document give you feedback on
	whether or not they think your document is ready for publication in the
	LDP collection.
</para>

<para>
	Your reviewers may have specific points that must be changed. Once you
	have made the changes submit your document back to your review team.
	They will review the document again and advise you on whether or not
	your document is ready for inclusion in the LDP collection. You may
	need to undergo several edits before your document is ready. Or it may
	not require any additional work. Be prepared to make at least one round
	of changes for both the technical and language reviews. Ideally this
	exchange will happen in the LDP's <ulink url="http://cvs.tldp.org">CVS</ulink> to better track each of the
	changes that are made, and keep track of the most current version of
	your document.
</para>

<para>
	Once your document has passed both the technical and language reviews,
	you may submit it by following the instructions in <xref linkend="submission"/>.
</para>

<para>
	For more information on what the reviewers will be looking for, please
	read the <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/index.html">Linux Documentation Project Reviewer HOWTO</ulink>. 
</para>
</section>

<section id="submission">
	<title>Submission to LDP for publication</title>
		<note><title>The final step</title><para>
			This section contains information on what to do after your
			document has received both a technical and language review by the
			LDP volunteers.
		</para></note>

		<para>
			As part of the review process a Review Coordinator will add your
			document to the CVS (including any associated image files) and
			notify the submit mailing list that your document is ready for
			publication.
		</para>

		<para>
			If you do not already have a CVS account, please apply for one
			when your document is submitted for publication. You can apply
			for an account at: <ulink url="http://tldp.org/cvs/"/>
		</para>
<!--
		
      <para> Once your LDP document has been carefully reviewed, you
      can release your document to the LDP. Send an e-mail with the
      source code as an attachment (you may gzip it if you like)
      to <email>submit@en.tldp.org</email>. </para>

      <para> Be sure to include the name of your work in the subject
      line, and use the body to outline changes you've made and attach
      your document's source code. This allows the maintainers to do their jobs faster, and
		means your revised document will appear on the site faster.
      If you haven't heard anything in 5 calendar days,
      please follow up with an e-mail to make sure things are still in
      process. </para> 

      <para>If your text contains extras, such as graphics or a
      special catalog, create a .tar.gz file with all the files in it,
      including the XML source code, and mail it as an attachment to
      the submit list.</para>

      <para>If you are using the LDP CVS tree while developing
      your document, the LDP will still need to be notified when your
      document is ready to be published. E-mail should be sent to
      <email>submit@en.tldp.org</email>. Indicate
      the title of your document and the relative path to the
      file(s) in the LDP CVS tree within your message. </para>

		<para> To get a CVS account please refer to: <ulink
		url="http://tldp.org/cvs/">http://tldp.org/cvs/</ulink>
		</para>
    </section>
	 <section id="compilations">
	 <title>Publishing Compilations of LDP Documents</title>
    <para>
		If you are interested in publishing a collection of
		LDP documents, please visit <ulink
      url="http://www.tldp.org/manifesto.html#pub">http://www.tldp.org/manifesto.html#pub</ulink>
		for more information.
	</para>
	</section>
	-->
</section>
</chapter>

	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<chapter id="sg-maintaining">
    <title>Maintaining Your HOWTO</title>
    
  <para>
      Just because your document has now been published doesn't mean your
      job is done. Linux documentation needs regular maintenance to make sure it
      is up to date, and to improve it in response to readers' ideas
      and suggestions. TLDP is a living, growing body of knowledge,
      not just a publish-and-forget-it static entity.
  </para>
    
	<para>
		Add relevant mailing lists to your document where people
		can get support. If you have the time, follow these
		mailing lists yourself to stay up-to-date on the
		latest information.
   </para>
  
  <para>
      Put your email address in the document, and politely request
      feedback from your readers. Once you are officially published,
      you will begin to receive notes with suggestions.
		Some of these emails will be very valuable. Create a 
		folder in your mail program for
		incoming suggestions--when the time is right review
		the folder and make updates to your document. If you
		are following a related mailing list you may also
		choose to save a copy of important emails from the list to
		this folder.
	</para>
		
	<note><title>We're not a free support service, but...</title><para>
	Some people who email you will request personal
	assistance.	You should feel free to decline personal 
	assistance if you cannot spare the time. Writing a 
	contribution to the LDP does not commit you to a lifetime
   of free support for anyone on the net; however, do try
	to reply to all requests and suggest a mailing list that
	will (hopefully) be able to provide support to your reader.
	</para></note>


	<section id="fixingerrors">
		<title>Fixing Errors</title>
		<para>
			If you find an error in your own document, please fix it
			and re-submit it. You can re-submit your files by emailing
			them to <email>submit@en.tldp.org</email>. If you've been
			using the CVS, you can simply <command>cvs commit</command> your revised document
			and then send an email saying the new version is ready for
			distribution. Remember to update the revision history at the
			top of the document.
		</para>

		<para>
			If you find an error in someone else's document please
			contact the author of the document, or the LDP 
        coordinator at <email>feedback@en.tldp.org</email> and
        mention the problem and how you think it needs to be
        fixed. 
		</para> 

		<note><title>Taking over unmaintained documentation</title><para>
			For more information on how to deal with unmaintained
			documents, please read:
			<ulink url="http://www.tldp.org/authors/unmaint.html">Unmaintained</ulink>
			(includes a list of steps to take to take over
			<quote>ownership</quote> of unmaintained documents, and a
			list of unmaintained documents).
		</para></note>
	</section>
		
</chapter>


<!-- Appendix: References -->
<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

<!-- 
Sample Bibliography Entry. Please follow this format!

<biblioentry>
<title></title>
<bibliosource><ulink url="" /></bibliosource>
<author><firstname></firstname><surname></surname></author>
<copyright><year></year>
<holder></holder></copyright>
<editor><firstname></firstname><surname></surname></editor>
<isbn></isbn>
<publisher>
<publishername></publishername>
</publisher>
<abstract></abstract>
</biblioentry>

or for a short item (title + url)
<biblioentry>
<title></title>
<bibliosource><ulink url="" /></bibliosource>
</biblioentry>
-->

<bibliography id="bibliography">
<title>References</title>

<bibliodiv id="ref-markup">
<title>Markup and general information</title>
<biblioentry>
<title>Secret Life of Markup, The</title>
<bibliosource><ulink url="http://hotwired.lycos.com/webmonkey/02/42/index4a.html"/></bibliosource>
<author><firstname>Steve</firstname><surname>Champeon</surname></author>
</biblioentry>
<biblioentry>
<title>Progressive Enhancement and the Future of Web Design</title>
<subtitle>
	Where We Are Now
</subtitle>
<bibliosource><ulink url="http://hotwired.lycos.com/webmonkey/03/21/index3a_page2.html"/></bibliosource>
<author><firstname>Steve</firstname><surname>Champeon</surname></author>
</biblioentry>
<biblioentry>
<title>SGML</title>
<bibliosource><ulink url="http://www.w3.org/MarkUp/SGML/"/></bibliosource>
</biblioentry>
</bibliodiv>

<bibliodiv id="ref-docbook">
<title>DocBook References</title>
<biblioentry>
<title>DocBook XML 4.1.2 Quick Start Guide</title>
<bibliosource><ulink url="http://www.jimweller.net/jim/dbxmlqs/index.html"/></bibliosource>
<author><firstname>Jim</firstname><surname>Weller</surname></author>
<abstract>
<para>
	<blockquote>
	<attribution>Jim Weller</attribution>
	<para>Describes how to install, configure and use the tools and resources for
	DocBook XML 4.1.2. The purpose of this quick start guide is to get new
	docbook authors, editors, and contributors up and running fast with the
	DoocBook tools. These are powerful tool in the hands of an author. It
	assumes a fair knowledge of building and installing source packages.
	There are probably a million and one ways to accomplish my ultimate
	goal of installing and using these tools. This one works well for
	me.
	</para></blockquote>
</para>
</abstract>
</biblioentry>

<biblioentry>
<title>
Installing And Using An XML/SGML DocBook Editing Suite
Setting Up A Free XML/SGML DocBook Editing Suite For Windows And
Unix/Linux/BSD</title>
<bibliosource><ulink url="http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/docbooksys/docbooksys.html"/>
</bibliosource>
<author><firstname>Ashley J.S.</firstname><surname>Mills</surname></author>
<copyright><year>2002</year>
<holder>The University Of Birmingham</holder></copyright>
</biblioentry>

<biblioentry>
<title>
Getting Upto Speed With DocBook</title>
<bibliosource><ulink url="http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/UniDocBook/UniDocBook.html"/></bibliosource>
<author><firstname>Ashley J.S.</firstname><surname>Mills</surname></author>
<copyright><year>2002</year>
<holder>The University Of Birmingham</holder></copyright>
</biblioentry>

<biblioentry>
<title>DocBook: The Definitive Guide</title>
<bibliosource><ulink url="http://www.docbook.org/"/></bibliosource>
<author><firstname>Norman</firstname><surname>Walsh</surname></author>
<author><firstname>Leonard</firstname><surname>Muellner</surname></author>
<copyright><year>1999</year>
<holder>O'Reilly &amp; Associates, Inc.</holder></copyright>
<isbn>1-56592-580-7</isbn>
<publisher>
<publishername>O'Reilly &amp; Associates, Inc.</publishername>
</publisher>
<abstract>
        <para>This book was released by O'Reilly in October 1999, and
        is a great reference to DocBook. I have not found it to be a
        great practical book. You can pick it up at the book vendor of 
		  choice, and the entire book is also available online (in HTML and SGML
        formats) at the above URL. </para>
</abstract>
</biblioentry>

<biblioentry>
<title>Simplified DocBook: The Definitive Guide</title>
<bibliosource><ulink url="http://www.docbook.org/tdg/simple/en/html/sdocbook.html"/></bibliosource>
<author><firstname>Norman</firstname><surname>Walsh</surname></author>
<author><firstname>Leonard</firstname><surname>Muellner</surname></author>
<copyright><year>1999</year>
<holder>O'Reilly &amp; Associates, Inc.</holder></copyright>
</biblioentry>

<biblioentry>
<title>Simplified DocBook</title>
<bibliosource><ulink url="http://www.oasis-open.org/docbook/xml/simple/"/></bibliosource>
</biblioentry>

<biblioentry>
	<title>XML Matters: Getting started with the DocBook XML
	dialect</title>
<bibliosource><ulink url="http://www-106.ibm.com/developerworks/xml/library/xml-matters3.html"/></bibliosource>
</biblioentry>

<biblioentry>
	<title>FAQ for DocBook markup</title>
<bibliosource><ulink url="http://www.dpawson.co.uk/docbook/markup.html"/></bibliosource>
</biblioentry>
 

<biblioentry>
<title>Single-Source Publishing with DocBook XML</title>
<abbrev/>
<bibliosource><ulink url=" http://www.lodestar2.com/people/dyork/talks/2002/ols/docbook-tutorial/frames/frames.html"/></bibliosource>
<author><firstname>Dan</firstname><surname>York</surname></author>
<copyright><year>2002</year>
<holder>Dan York</holder></copyright>
</biblioentry>

<biblioentry>
<title>
   DocBook Install mini-HOWTO</title>
<bibliosource><ulink url="http://tldp.org/HOWTO/mini/DocBook-Install/"/></bibliosource>
<author><firstname>Robert</firstname><surname>Easter</surname></author>
</biblioentry>

<biblioentry>
<title>Exploring SGML DocBook</title>
<bibliosource><ulink url="http://lwn.net/2000/features/DocBook/"/></bibliosource>
<author><firstname>Giorgio</firstname><surname>Zoppi</surname></author>
</biblioentry>
</bibliodiv>

<bibliodiv id="ref-linuxdoc">
<title>LinuxDoc</title>
<biblioentry>
<title>Howtos-with-LinuxDoc-mini-HOWTO</title>
<bibliosource><ulink url="http://www.tldp.org/HOWTO/Howtos-with-LinuxDoc.html"/></bibliosource>
<author><firstname>David</firstname><surname>Lawyer</surname></author>
</biblioentry>

<biblioentry>
<title>LinuxDoc-SGML User's Guide</title>
<bibliosource><ulink url="http://www.nmt.edu/tcc/doc/guide.html"/></bibliosource>
</biblioentry>
</bibliodiv>

<bibliodiv id="ref-x2docbook">
<title>Converting Other Formats to DocBook</title>
<biblioentry>
<title>
Converting HTML to Docbook SGML/XML Using html2db</title>
<bibliosource><ulink url="http://www.cise.ufl.edu/~ppadala/tidy/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>5-Minute Review: Using LyX for Creating DocBook</title>
<bibliosource><ulink url="http://www.teledyn.com/help/XML/lyx2db/t1.html"/></bibliosource>
</biblioentry>
<biblioentry>
<title>Document processing with LyX and SGML</title>
<bibliosource><ulink url="http://www.karakas-online.de/mySGML/"/></bibliosource>
</biblioentry>
</bibliodiv>

<bibliodiv id="ref-templates">
	<title>LDP templates, tools &amp; links</title>

<biblioentry>
<title>LDP Templates</title>
<abbrev/>
<bibliosource><ulink url="http://www.tldp.org/authors/index.html#resources">http://www.tldp.org/authors/index.html#resources</ulink>
</bibliosource>
<abstract>
        <para>Contains links to SGML templates and their resulting HTML output
        to help you see what your document will look like. Many of the tags
        just need to be replaced with information unique to your HOWTO.
        Also contains links to tools and other useful information.
        </para>
</abstract>
</biblioentry>

<biblioentry>
<title>Linux Documentation Project HOWTO Generator, The</title>
<bibliosource><ulink url="http://www.nyx.net/~sgjoen/The_LDP_HOWTO_Generator.html"/></bibliosource>
<abstract>
	<para>
This is a standalone web page with a number of fields to fill in
and a few buttons. When ready the compile button starts the
compilation of all the input fields and wraps it all in proper
LinuxDoc SGML, ready to process with the LinuxDoc SGML tools.
	</para>

	<para>
The compiled output is outputted to a read-only text area near
the bottom of the webpage, so the text has to be copied and
pasted into a file for compilation.
	</para>

	<para>
DocBook is not currently supported.
	</para>
</abstract>
</biblioentry>

</bibliodiv>

<bibliodiv id="ref-transform">
<title>DocBook Transformations</title>

<biblioentry>
<title>DocBook XML/SGML Processing Using OpenJade</title>
<abbrev/>
<bibliosource><ulink url="http://tldp.org/HOWTO/DocBook-OpenJade-SGML-XML-HOWTO/"/></bibliosource>
<author><firstname>Saqib</firstname><surname>Ali</surname></author>
</biblioentry>

</bibliodiv>

<bibliodiv id="ref-techwriting">
<title>General Writing Links and Style Guides</title>

<biblioentry>
<title>
Guide to Grammar and Style</title>
<bibliosource><ulink url="http://newark.rutgers.edu/~jlynch/Writing/"/></bibliosource>
<author><firstname>Jack</firstname><surname>Lynch</surname></author>
</biblioentry>

<biblioentry>
<title>Purdue's Online Writing Lab</title>
<bibliosource><ulink url="http://owl.english.purdue.edu/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>
Chicago Manual of Style</title>
<bibliosource><ulink url="http://www.chicagomanualofstyle.org/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>
Plain Language Resources</title>
<bibliosource><ulink url="http://www.plainlanguagenetwork.org/Resources/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Writing User-Friendly Documents</title>
<bibliosource><ulink url="http://www.blm.gov/nhp/NPR/pe_toc.html"/></bibliosource>
<abstract><para>
	This is quite useful. It includes before and after writing samples.
</para></abstract>
</biblioentry>

<biblioentry>
<title>PlainTrain Writing Tutorial</title>
<bibliosource><ulink url="http://www.web.net/~plain/PlainTrain/IntroducingPlainLanguage.html"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Writing for the Web</title>
<bibliosource><ulink url="http://www.useit.com/papers/webwriting/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Information Pollution</title>
<bibliosource><ulink url="http://useit.com/alertbox/20030811.html"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Be Succinct! (Writing for the Web)</title>
<bibliosource><ulink url="http://useit.com/alertbox/9703b.html"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Politics and the English Language</title>
<bibliosource><ulink url="http://www.k-1.com/Orwell/index.cgi/work/essays/language.html"/></bibliosource>
<author><firstname>George</firstname><surname>Orwell</surname></author>
<abstract>
	<para>A classic text on writing.</para>
</abstract>
</biblioentry>
     
<biblioentry>
<title>Elements of Style, The</title>
<bibliosource><ulink url="http://www.bartleby.com/141/"/></bibliosource>
<author><firstname/><surname>Strunk and White</surname></author>
<abstract>
	<para>A classic text on writing.</para>
</abstract>
</biblioentry>


<biblioentry>
<title>A Short Handbook and Style Sheet</title>
<bibliosource><ulink url="http://newark.rutgers.edu/~jlynch/Writing/m.html#mechanics"/></bibliosource>
<author><firstname>Thomas</firstname><surname>Pinney</surname></author>
</biblioentry>

<biblioentry>
<title>Technical Writing Links</title>
<bibliosource><ulink url="http://www.techcomplus.com/tips.htm"/></bibliosource>
</biblioentry>

<biblioentry>
<title>
Technical Writing Tutorial</title>
<bibliosource><ulink url="http://psdam.mit.edu/rise/tutorials/writing/technical-writing.html"/></bibliosource>
</biblioentry>

<biblioentry>
<title>
Strategies to succeed in technical writing</title>
<bibliosource><ulink url="http://www.school-for-champions.com/techwriting.htm"/></bibliosource>
</biblioentry>

<biblioentry>
<title>
User Guides Online Tutorial</title>
<bibliosource><ulink url="http://www.klariti.com/technical-writing/User-Guides-Tutorial.shtml"/></bibliosource>
</biblioentry>

<biblioentry>
<title>
DMOZ Technical Writing Links</title>
<bibliosource><ulink url="http://dmoz.org/Arts/Writers_Resources/Non-Fiction/Technical_Writing/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>
techwr-L</title>
<bibliosource><ulink url="http://www.raycomm.com/techwhirl/magazine/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Technical Writing Links</title>
<bibliosource><ulink url="http://academic.middlesex.cc.ma.us/PeterHarbeson/links.html"/></bibliosource>
<abstract><para>
An omnibus of links--scrounge for goodies.
</para></abstract>
</biblioentry>

</bibliodiv>

<bibliodiv id="ref-relatedtldp">
<title>Related TLDP Documents</title>
<biblioentry>
<title>
Linux Documentation Project (LDP) FAQ</title>
<bibliosource><ulink url="http://tldp.org/FAQ/LDP-FAQ/index.html"/></bibliosource>
<author><firstname>Rahul</firstname><surname>Sundaram</surname></author>
</biblioentry>
<biblioentry>
<title>LDP HOWTO-INDEX</title>
<bibliosource><ulink url="http://tldp.org/HOWTO/HOWTO-INDEX/"/></bibliosource>
<author><firstname>Guylhem</firstname><surname>Aznar</surname></author>
<author><firstname>Joshua</firstname><surname>Drake</surname></author>
<author><firstname>Greg</firstname><surname>Ferguson</surname></author>
</biblioentry>
</bibliodiv>

<bibliodiv id="ref-cvs">
<title>Software: CVS</title>

<biblioentry>
<title>CVS: Project Management</title>
<bibliosource><ulink url="http://doc.cs.byu.edu/programming/cvs/"/></bibliosource>
<author><firstname>Byron</firstname><surname>Clark</surname></author>
</biblioentry>

<biblioentry>
<title>CVS</title>
<bibliosource><ulink url="http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/cvstute/cvstute.html"/></bibliosource>
<author><firstname>Ashley J.S.</firstname><surname>Mills</surname></author>
<author><firstname>Alan P.</firstname><surname>Sexton</surname></author>
</biblioentry>

<biblioentry>
<title>CVS--Concurrent Versions System</title>
<bibliosource><ulink url="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html"/></bibliosource>
<author><firstname>Pascal</firstname><surname>Molli</surname></author>
</biblioentry>

<biblioentry>
<title>Learning About CVS	</title>
<bibliosource><ulink url="http://cvshome.org/docs/"/></bibliosource>
</biblioentry>

</bibliodiv>

<bibliodiv id="ref-software-edit">
<title>Software: Emacs</title>

<biblioentry>
<title>Information about PSGML	</title>
<bibliosource><ulink url="http://www.lysator.liu.se/~lenst/about_psgml/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Emacs: The Free Software IDE</title>
<bibliosource><ulink url="http://www.linuxjournal.com/article.php?sid=576"/></bibliosource>
</biblioentry>

<biblioentry>
<title>Emacs/PSGML Quick Reference</title>
<bibliosource><ulink url="http://www.snee.com/bob/sgmlfree/psgmqref.html"/></bibliosource>
<author><firstname>Bob</firstname><surname>Ducharme</surname></author>
</biblioentry>

<biblioentry>
<title>NT Emacs Installation</title>
<bibliosource><ulink url="http://www.charlescurley.com/emacs.html"/></bibliosource>
<author><firstname>Charles</firstname><surname>Curley</surname></author>
</biblioentry>

<biblioentry>
<title>Cygwin Packages for DocBook Authoring</title>
<bibliosource><ulink url="http://www.docbook.org/wiki/moin.cgi/CygwinPackages/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>SGML for Windows NT</title>
<subtitle>
	Setting up a free SGML/XML editing and publishing system on
	Windows/Cygwin
</subtitle>
<bibliosource><ulink url="http://ourworld.compuserve.com/homepages/hoenicka_markus/cygbook1.html"/></bibliosource>
<author><firstname>Markus</firstname><surname>Hoenicka</surname></author>
<copyright><year>2000</year>
<holder>Markus Hoenicka</holder></copyright>
</biblioentry>


<biblioentry>
<title>Vim</title>
<bibliosource><ulink url="http://www.newriders.com/books/opl/ebooks/0735710015.html"/></bibliosource>
<author><firstname>Steve</firstname><surname>Oualline</surname></author>
</biblioentry>
</bibliodiv>

<bibliodiv id="ref-xml">
<title>XML Authoring Tools</title>
<biblioentry>
<title>Saqib's list of XML Authoring Tools</title>
<bibliosource><ulink url="http://www.xml-dev.com/blog/#19"/></bibliosource>
</biblioentry>
</bibliodiv>

<bibliodiv id="ref-licenses">
<title>Documentation Licenses</title>

<biblioentry>
<title>Licensing HOWTO</title>
<bibliosource><ulink url="http://www.catb.org/~esr/Licensing-HOWTO.html"/></bibliosource>
<author><firstname>Eric</firstname><surname>Raymond</surname></author>
<author><firstname>Catherine</firstname><surname>Raymond</surname></author>
<abstract>
	<para><blockquote>
	<attribution>Eric Raymond and Catherine Raymond</attribution>
	<para>
This document explains how U.S. copyright and licensing law applies to
open-source software projects. It compares the strengths and weaknesses of
the existing open-source licenses, and gives guidance on how to choose a
license for your project. It also explains the legalities of changing a
project's license. It suggests new practice for coping with today's
high-threat legal environment--this part is a must-read for all
project leaders.
	</para>
	</blockquote></para>
</abstract>
</biblioentry>

<biblioentry>
<title>OPL</title>
<bibliosource><ulink url="http://www.opencontent.org/openpub/"/></bibliosource>
<abstract><para>OpenContent officially closed June 30, 2003.
</para></abstract>
</biblioentry>

<biblioentry>
<title>Creative Commons</title>
<bibliosource><ulink url="http://creativecommons.org/licenses/by-sa/1.0/"/></bibliosource>
</biblioentry>

<biblioentry>
<title>GNU Free Documentation License</title>
<bibliosource><ulink url="http://www.gnu.org/copyleft/fdl.html"/></bibliosource>
</biblioentry>

<biblioentry>
<title>GNU General Public License</title>
<bibliosource><ulink url="http://www.gnu.org/licenses/licenses.html#GPL"/></bibliosource>
<abstract><para>
	If you would like your documents to be included in the main Debian
	distribution, you should use this license. It is not, however, the
	LDP's license of choice.
</para></abstract>
</biblioentry>

</bibliodiv>

</bibliography>


<!-- Appendix: Sample Templates -->
<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

<appendix id="templates">
<title>Templates</title>

	<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

<para>
	The LDP stores its documents in the following markup languages:
</para>

<orderedlist>
<listitem>
<para>
	DocBook XML version 4.2 (preferred), 4.1.2
</para>
</listitem>
<listitem>
<para>
	DocBook SGML version 4.2, 4.1, or 3.x
</para>
</listitem>
<listitem>
<para>
	LinuxDoc SGML
</para>
</listitem>
</orderedlist>

<note><title>New Documents</title>
<para>
	A new document may be submitted to the LDP in any format. Documents
	which are not in DocBook or LinuxDoc will be converted by a volunteer.
	The author is responsible for adding markup to any revisions which are
	made.
</para>
</note>


<para>
	Most of the templates are available from the <ulink url="http://www.tldp.org/authors/index.html#resources">Author
	Resources</ulink> page. There are a few, additional, templates listed
	here.
</para>

<section id="templates-book">
<title>Book Templates</title>
  <para>
  	The following templates may be downloaded and used to create your
	documents. Documents that are prefixed with a t- were provided by <ulink url="http://tille.soti.org/">Machtelt Garrels</ulink> (also known as
	Tille, which is pronounced Tilly by the anglophiles). Thanks Tille!
	</para>

	<orderedlist>
	<listitem>
	<formalpara>
		<title>Article <ulink url="http://tldp.org/authors/template/Sample-HOWTO.xml"/></title>
		<para>
			Most HOWTO documents will use this template.
		</para>
	</formalpara>
	</listitem>
	<listitem>
	<formalpara>
		<title>Book <ulink url="t-book.xml"/></title>
		<para>
			Use this template to create a full book (like this Author Guide, 
		for instance). 
		</para>
	</formalpara>
	</listitem>
	
	<listitem>
	<formalpara>
		<title>Appendix <ulink url="t-appendix.xml"/></title>
		<para>
			Use this template to create an appendix. This list of templates
			is an example of an appendix. Note the letters instead of the
			numbers which are used to distinguish sections.
		</para>
	</formalpara>
	</listitem>

	<listitem>
	<formalpara>
		<title>Chapters <ulink url="t-chap1.xml"/> and <ulink url="t-chap2.xml"/></title>
	<para>
		Two sample chapters for <quote>book</quote> documents. This template
		is not required if you are using the <quote>article</quote> template.
	</para>
	</formalpara>
	</listitem>
	<listitem>
		<formalpara>
		<title>Glossary <ulink url="t-glossary.xml"/></title>
	<para>
		For making glossaries.
	</para>
	</formalpara>
	</listitem>
	
	<listitem>
        <formalpara>
                <title>FAQ <ulink url="t-faq.xml"/></title>
	<para>
		A standard article for writing a FAQ (Frequently Asked Questions) list.
	</para>
	</formalpara>
	</listitem>

	<listitem>
	<formalpara><title>Disclaimer <ulink url="disclaimer.xml"/></title>
	<para>
		A standard disclaimer which warns readers that (1) your document may
		not be perfect and (2) you are not responsible if things end up
		broken because of it.
	</para></formalpara>
	</listitem>
	</orderedlist>
</section>

<section id="templates-style">
<title>Style Sheets</title>

<para>
	The following style sheets can be used to make your document nicer to
	look at. Remember that the LDP will use its own style sheets to
	distribute your documentation.
</para>

<orderedlist>
<listitem>
<formalpara>
<title>DSL Style Sheet <ulink url="style.dsl"/></title>
<para>
	This DSL style sheet was provided by Tille and is to be used with DSSSL
	transformations.
</para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title>Cascading Style Sheet <ulink url="style-ob.css"/></title>
<para>
	This CSS file was provided by Saqib Ali and Emma Jane Hogbin. The
	<quote>ob</quote>	is for <quote>orange and blue</quote>. Use this CSS
	file with an HTML file. Instructions are included in the CSS file.
</para>
</formalpara>
</listitem>
</orderedlist>

</section>

<section id="templates-gdfl">
<title>GNU Free Documentation License</title>

  <para>
    The GFDL (GNU Free Documentation License) is available in XML format
    at <ulink url="http://www.gnu.org/licenses/fdl.xml">http://www.gnu.org/licenses/fdl.xml</ulink>.  For a version in appendix format suitable for including
    in your document, you can see get the XML for this document
    from CVS at <ulink url="http://cvsview.tldp.org/index.cgi/LDP/guide/docbook/LDP-Author-Guide/fdl-appendix.xml">http://cvsview.tldp.org/index.cgi/LDP/guide/docbook/LDP-Author-Guide/fdl-appendix.xml</ulink>.
  </para>
  <para>
    TLDP template files for DocBook (XML and SGML) and Linuxdoc SGML are
    available from the TLDP website at <ulink url="http://www.tldp.org/authors/index.html#resources">http://www.tldp.org/authors/index.html#resources</ulink>.
  </para>
</section>

</appendix>


<!-- Appendix: Editors, Validation and System Setup -->
<!--
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
--> 
<appendix id="tools">
    <title>System Setup: Editors, Validation and
	 Transformations</title>

    <para>In this section, we will cover some of the tools
	 that you may want to use to create your own LDP documentation.
    If you use some other tool to assist you in writing
	 documents for the LDP, please drop us a line and we'll add
	 a blurb for it here. <xref linkend="feedback"/> has contact
	 information.</para>

	 <section id="tools-distro"> <title>Tools for your operating
	 system</title>

	 <para>
		A few notes on setting up your system for DocBook
		publishing.  These tools focus more on the transformation
		of documents from DocBook to XHTML (for example).
	 </para>

	<variablelist> <title>Tools For Your Operating System</title>
	<!-- try to stay alphabetically correct... -->

	<varlistentry> <term>Debian</term>
		<listitem>
		<para>
			<ulink url="http://www.docbook.org/wiki/moin.cgi/DebianGnuLinuxPackages">
				http://www.docbook.org/wiki/moin.cgi/DebianGnuLinuxPackages
			</ulink>
		</para> 
		
		<para>
			<ulink url="http://www.surgo.net">Morgon Kanter</ulink> 
			suggests <command>apt-get install docbook-xml
			docbook-xsl xsltproc</command> as the minimum requirements.
			<ulink url="http://lists.tldp.org/index.cgi?1:mss:4851"/>
		</para>
		</listitem>
	</varlistentry>

	<varlistentry> <term>Fedora (aka the new
	RedHat)</term>
		<listitem> <para>
			Notes contributed by <ulink url="http://www.charlescurley.com">Charles
			Curley</ulink>.
		</para>

		<para>
		Tools for Docbook SGML and XML are included in the distrubution. So
		are <application>Emacs</application> and <application>PSGML
		mode</application>, although you will have to customize your
		<filename>.emacs</filename>. If you are missing a package after installing
		Fedora, get familiar with <application>yum</application> or
		<application>apt</application>.
		</para>

		<para> Installation instructions: none; use Red Hat 9
		until they are written: <ulink url="http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/"/>.
		</para> </listitem>
	</varlistentry>

	<varlistentry> <term>Mandrake</term>
		<listitem> <para>
			Notes contributed by <ulink url="http://www.artemio.net">Artemio</ulink>.
		</para>

		<para>
			In Mandrake (as of my current 9.2), all the
			stuff including openjade, xmlto, docbook-utils
			etc. comes as standard.
		</para>

		<para>
			So I just needed to get the TLDP XSL sheet and
			that's all.  Didn't ever have any dependency
			or other problems, everything works fine (knock
			on wood :-)).
		</para> </listitem>
	</varlistentry>

	<varlistentry> <term>RedHat</term>
		<listitem> <para>
			According to Hal Burgiss, your system is likely
			already ready to edit and process DocBook
			documents without installing any additional
			packages.
		</para> </listitem>
	</varlistentry>

	</variablelist>

</section> <!-- end of tools-distro -->

<!--
	Tools to edit your document.  Pretty straight forward
	stuff. I'd like to update the screen shots so that they're a
	printer-friendly size. And add screen shots for VIM *hearts to
	vi* and Morphon and whoever else is missing pretty pictures.
--> <!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="tools-edit">
  <title>Editing tools</title>
    <para>
	Editing tools have come a long way in their support for
	XML (and specifically DocBook). There are two types of
	editors outlined in this section: text editors (emacs,
	vim, etc); and word processors (OpenOffice, AbiWord,
	etc). New authors who are not comfortable working with
	markup languages should probably choose a word processor
	that can output DocBook files. For this reason the word
	processors are listed first. 
    </para>

    <para>
        Although many editors can also validate your DocBook
	files, this information has been separated into <xref linkend="tools-validate"/>.
    </para>

	 <note><title>More info</title><para>
	 	Check the resources section for more <xref linkend="ref-xml"/>.
	 </para></note>

<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="tools-word-processors">
<title>Word Processors</title>
<para>
	Even if you are not comfortable working DocBook's tagset
	in a text editor you can still produce valid DocBook
	documents using a word processor. Support at this point
	is very limited, but it does exist in the following
	programs. The up side, of course, is that things like
	spell check are built in to the program. In addition to
	this, support for DocBook (and XML) is constantly
	improving.
</para>

<note><title>Converting Microsoft Word documents</title><para>
	Even if you want to use MS Word to write your documents, you may
	find <ulink url="http://www.docsoft.com/w2xmlv2.htm">w2XML</ulink>
	useful. Note that this is not free software--the cost is around $130USD.
	There is, however, a trial version of the software.
</para></note>

<note><title>Work on the content!</title><para>
	Remember that all formatting changes you make to your
	document will be ignored when your document is released
	by the LDP. Instead of focusing on how your document
	<emphasis>looks</emphasis>, focus on the content.
</para></note>

<section id="abiword"> <title>AbiWord</title> <para>
	Through word of mouth I've heard that AbiWord can work (natively)
	with DocBook documents. This will need to be tested by someone
	(possibly me) and should definitely be included if it is
	the case.
</para> </section>

<section id="openoffice"> <title>OpenOffice.org</title> <para>
	<ulink url="http://openoffice.org">http://openoffice.org</ulink>
</para>

<para>
	As of OpenOffice.org (OOo) 1.1RC there has been support for
	exporting files to DocBook format.
</para>

<para>
	Although OOo uses the full DocBook document type declaration,
	it does not actually export the full list of DocBook elements. It
	uses a <quote>simplified</quote> DocBook tagset which is geared
	to on-the-fly rendering. (Although it is not the official
	Simplified DocBook which is described in <xref linkend="dtd"/>.)
  The OpenOffice simplified (or <quote>special</quote> docbook) is available from
	<ulink url="http://www.chez.com/ebellot/ooo2sdbk/">
		http://www.chez.com/ebellot/ooo2sdbk/
	</ulink>.
</para>

<section id="ooo-1-0">
<title>Open Office 1.0.x</title>
<para>
	OOo has been tested by LDP volunteers with mostly positive
	results. Thanks to Charles Curley
		(<ulink url="http://www.charlescurley.com">charlescurley.com</ulink>)
	for the following notes on using OOo version 1.0.x:
</para>

<note><title>Check the version of your OpenOffice</title>
	<para>
		These notes may not apply to the version of OOo you
		are using.
	</para>
</note>

<itemizedlist> <listitem><para>
	To be able to export to DocBook, you must have a Java runtime
  environment (JRE) installed and registered with OOo--a minimum of
  version 4.2.x is recommended. The configuration instructions will
  depend on how you installed your JRE.  Visit the OOo web site for
  help with your setup.
</para>

<para>
  Contrary to the OOo documentation, the Linux OOo did not come with
  a JRE. I got one from Sun.
</para> </listitem> <!-- openoffice -->

<listitem><para>
	The exported file has lots of empty lines. My 54 line exported
	file
  had 5 lines of actual XML code.
</para></listitem>

<listitem><para>
	There was no effort at pretty printing.
</para></listitem>

<listitem><para> The header is:
    <computeroutput>
	 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
	</computeroutput>
</para></listitem>

<listitem><para> The pull-down menu in the <menuchoice><guimenu>File</guimenu><guimenuitem>Save
As</guimenuitem></menuchoice> dialog box for
file format
  indicates that the export format is <quote>DocBook (simplified).</quote> There is
  no explanation of what that <quote>simplified</quote> indicates. Does OOo export
  a subset of DocBook? If so, which elements are ignored? Is there any
  way to enter any of them manually?
</para></listitem>

<listitem><para> There is NO documentation on the DocBook export filter
or whether
  OOo will import it again.
</para></listitem> </itemizedlist>

<para>
	Conclusions: OOo 1.1RC is worth looking at if you want a word
	processor for preparing DocBook documents.
</para>

<para>
	However, I hope they cure the lack of documentation.  For one
	thing, it would be nice to know which native OOo styles map to
	which DocBook elements. It would also be nice to know how to
	map one's own OOo styles to DocBook elements.
</para>
</section>

<section id="ooo-1-1">
<title>Open Office 1.1</title>
<para>
	<ulink url="http://www.merlinmonroe.com">Tabatha Marshall</ulink>
	offers the following additional information for OOo 1.1.
</para>

<blockquote>
	<para> The first problem was when I tried to do everything on version
	1.0.1.	That was
obviously a problem.  I have RH8, and it was installed via rpm packages,
so I ripped it out and did a full, new install of OpenOffice 1.1.
It took a while to find out 1.1 was a requirement for XML to work.
	</para>

	<para>
During the install process I believe I was offered the choice to install
the XML features.  I have a tendency to do full installs of my office
programs, so I selected everything.
	</para>

	<para>
I can't offer any advice to those trying to update their current
OO 1.1.  Their <quote>3 ways</quote> aren't documented very well at the site
(<ulink url="http://xml.openoffice.org">xml.openoffice.org</ulink>) and as of this writing, I can't even find THAT
on their site anymore.	I think more current documentation is needed
there to walk people through the process.  Most of this was unclear
and I had to pretty much experiment to get things working.
	</para>

	<para>
Well, after I installed everything I had some configuration to do.
I opened the application, and got started by opening a new file,
choosing templates, then selecting the DocBook template.  A nice menu
of <guisubmenu>Paragraph Styles</guisubmenu> popped up for me, which are the names for all those
tags, I noticed (you can see I don't use WYSIWYG often).
	</para>

	<para>
		With a blank doc before me (couldn't get to the <guisubmenu>XML Filter
		Settings</guisubmenu> menu unless some type of doc was opened), I went into
		<menuchoice><guimenu>Tools</guimenu><guimenuitem>XML
		Filter Settings</guimenuitem></menuchoice>, and edited the entry for DocBook file.
		I configured mine as follows:
	</para>

	<itemizedlist>
		<listitem>
		<para>
			<guilabel>Doctype</guilabel>  
			<userinput>-//OASIS//DTD DocBook XML V4.2//EN</userinput>
		</para>
		</listitem>

		<listitem>
		<para>
			<guilabel>DTD</guilabel>
			<userinput>http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd</userinput>
		</para>
		</listitem>

		<listitem>
		<para>
			<guilabel>XSLT for export</guilabel>
			<userinput>/usr/local/OpenOffice.org1.1.0/share/xslt/docbook/ldp-html.xsl</userinput>
		</para>
		</listitem>

		<listitem>
		<para>
			<guilabel>XSLT for import</guilabel>
			<userinput>/usr/local/OpenOffice.org1.1.0/share/xslt/docbook/docbooktosoffheadings.xsl</userinput>
			(this is the default)
		</para>
		</listitem>

		<listitem>
		<para>
			<guilabel>Template for import</guilabel>
			<userinput>/home/tabatha/OpenOffice/user/template/DocBook
			File/DocBookTemplate.stw</userinput>
		</para>
		</listitem>
	</itemizedlist>

	<para>
At first, if I opened an XML file that had even one parsing error, it
would just open the file anyway and display the markup in OO.  I have
many XML files that use &amp;copy; and other types of entities which show
up as parse errors (depending on the encoding) even though they can be
processed through.  But today I was unable to open any of those files.
I got input/output errors instead.  Still investigating that one.
	</para>

	<para>
However when you do successfully open a document (one parsing with no
errors), it puts it automatically into WYSIWYG based on the markup,
and you can then work from the paragraph styles menu like any other
such editor.
	</para>

	<para>
To validate the document, I used <menuchoice><guimenu>Tools</guimenu><guimenuitem>XML
Filter Settings</guimenuitem></menuchoice>, then
clicked the <guibutton>Test XSLTs</guibutton> button.  On my screen, I set up the XSLT
for export to be <filename>ldp-html.xsl</filename>.	If you test and there are errors,
a new window pops up with error messages at the bottom, and the lines
that need to be changed up at the top.	You can change them there and
progress through the errors until they're all gone, and keep testing
until they're gone.
	</para>

	<para>
If you want to open a file to see the source instead of the processed
results, go to <menuchoice><guimenu>Tools</guimenu><guimenuitem>XML Filter
Settings</guimenuitem><guisubmenu>Test XSLTs</guisubmenu></menuchoice>, and then
under the <menuchoice><guimenu>Import</guimenu></menuchoice> section, check the
<guilabel>Display Source</guilabel> box.  My import XSLT
is currently <filename>docbooktosoffheadings.xsl</filename> (the default) and the template
for import is <filename>DocBookTemplate.stw</filename> (also default).
	</para>

	<para>
I think this might work for some people, but unfortunately not for me.
I've never used WYSIWYG to edit markup.  <application>Emacs with
PSGML</application> can tell me
what my next tag is no matter where I am, validate by moving through
the trouble spots, and I can parse and process from command line.
	</para>

	<para>
With OpenOffice, you have to visit <ulink url="http://xml.openoffice.org/filters.html">http://xml.openoffice.org/filters.html</ulink>
to find conversion tools.
	</para> </blockquote>

</section> </section>

<section id="wordperfect"> <!-- I don't run Windows - can someone please
confirm this information is still true? --> <title>WordPerfect 9 (Corel
Office 2000)</title> <para>
	<ulink url="http://www.corel.com/">
		http://www.corel.com/</ulink>
</para>

<para>
	<!-- what about XML capabilities? Please replace if
	appropriate. --> WordPerfect 9 for the MS Windows platform has
	support for SGML and DocBook 3.0. WordPerfect 9 for Linux has
	no SGML capabilities.
</para>

<para>
	If you are using WordPerfect on the Linux operating system, please
	read: <ulink url="http://en.tldp.org/FAQ/WordPerfect-Linux-FAQ/">WordPerfect on
	Linux FAQ</ulink>
</para>

</section> <!-- wordperfect -->

<!-- xmlmind --> <section id="XMLmind">

<title>XMLmind's XML editor</title>
  <para>
    <ulink url="http://www.xmlmind.com/xmleditor/"/>
  </para>

    <para>
	Although strictly speaking, it is not a word processor,
	XMLmind's <application>XML editor</application> allows authors to concentrate
	on the content, and not the markup. It has built in
	spelling and conversion utilities which allow you to transform your
	documents without having to install and configure an additional
	processing tool such as jade. There is a free <quote>standard
	edition</quote>, which is a simplified version of their
	<quote>professional edition.</quote>
  </para>

  </section> <!-- xmlmind -->

</section> <!-- tools-word-processors -->

<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="tools-text-editors">
<title>Text Editors</title>

<caution><title>For advanced writers</title><para>
	The tools outlined in this section allow you to work with
	the DocBook tags directly. If you are not comfortable
	working with markup languages you may want to use a word
	processor instead. Word processors that support DocBook
	are described in <xref linkend="tools-word-processors"/>.
</para></caution>

<para>
	If you are comfortable working with markup languages and
	text editors, you'll probably want to customize your
	current editor of choice to handle DocBook files. Below
	are some of the more common text editors that can, with
	some tweaking, handle DocBook files.
</para>

<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="psgml">
<title>Emacs (PSGML)</title>
<indexterm> <primary>psgml</primary> </indexterm>
<indexterm> <primary>Emacs</primary> </indexterm>
<indexterm> <primary>Editors</primary>
				<secondary>Emacs</secondary> </indexterm>
<indexterm> <primary>Editors</primary>
				<secondary>psgml</secondary> </indexterm>
	
<para>
<ulink url="http://www.lysator.liu.se/~lenst/about_psgml/">
	http://www.lysator.liu.se/~lenst/about_psgml/
</ulink>
</para>
  
  	<para><application>Emacs</application> has an SGML 
	writing mode called <application>psgml</application> that is a
   major mode designed for editing SGML and XML documents. It
   provides:
	</para>
		  <itemizedlist>
		  <listitem><para>
		  <quote>syntax highlighting</quote> or <quote>pretty
        printing</quote> features that make the tags stand out
		  </para></listitem>
		  <listitem><para>
		  a way to insert tags other than typing them by hand
		  </para></listitem>
		  <listitem><para>
		  and the ability to validate your document while writing
		  </para></listitem>
		 </itemizedlist>

<para>
	For users of Emacs, it's a great way to go.
   PSGML works with DocBook, LinuxDoc and other DTDs equally well.
</para>

<section id="emacs-psgml-install">
<title>Verifying PSGML is Installed</title>
<para> 
	If you have installed a recent distribution, you may
        already have PSGML installed for use with Emacs. To check,
        start Emacs and look for the PSGML documentation (<keycombo moreinfo="none"><keycap moreinfo="none">C</keycap><keycap moreinfo="none">h</keycap></keycombo><keycap moreinfo="none">i</keycap><keycap moreinfo="none">m</keycap><keycap moreinfo="none">psgml</keycap>).
</para> 

<tip><title>Dependencies</title><para>
	If you don't have PSGML installed now might be a good
	time to upgrade Emacs. The rest of these instructions
	will assume you have PSGML installed.
</para></tip>
</section>

<section id="emacs-config">
<title>Configuring Emacs for Use With PSGML</title>
<para> 
	If you want GNU Emacs to enter PSGML mode when you open
   an <filename class="extension">.xml</filename> file, it
	will need to be able to find the DocBook DTD files.
	If your distribution already had PSGML set up for use 
	with GNU Emacs, you probably won't need to do anything. 
</para>

<note><title>Tuning Emacs</title>
<para>
	For more information on how to configure Emacs, check out
	<xref linkend="ref-software-edit"/>.
</para>
</note>

<para> 
	Once you've configured your system to use PSGML you will
	need to override Emacs' default <emphasis>sgml-mode</emphasis> with the
	<emphasis>psgml-mode</emphasis>. This can be done by configuring your
	<filename>.emacs</filename> file. After you've edited the
	configuration file you will need to restart Emacs.
</para> 

</section>
      
<section id="emacs-new-file">
<title>Creating New DocBook XML Files</title>
<para>
	There are a number of steps to creating a new DocBook XML
	file in Emacs.
</para>

<itemizedlist>
	<listitem><para>
	Create a new file with an 
		<filename class="extension">xml</filename> 
	extension.
	</para></listitem>

	<listitem><para>
	On the first line of the file enter the doctype for the
	version of DocBook that you would like to use.
	If you're not sure what a doctype is all about, check <xref linkend="dtd"/>
	</para></listitem>
        
	<listitem><para> 
	Enter 
	<keycombo moreinfo="none">
		<keycap moreinfo="none">C</keycap> 
		<keycap moreinfo="none">c</keycap>
	</keycombo>
	<keycombo moreinfo="none">
		<keycap moreinfo="none">C</keycap> 
      <keycap moreinfo="none">p</keycap>
	</keycombo>.
	
	If Emacs manages to parse your DTD, you will 
	see <computeroutput>Parsing prolog...done</computeroutput> 
	in the minibuffer.
	</para></listitem>
	
	<listitem><para>
	Enter 
	<keycombo moreinfo="none">
		<keycap moreinfo="none">C</keycap> 
		<keycap moreinfo="none">c</keycap>
	</keycombo>
	<keycombo moreinfo="none">
		<keycap moreinfo="none">C</keycap> 
      <keycap moreinfo="none">e</keycap>
	</keycombo>
	<keycombo moreinfo="none"><keycap moreinfo="none">Enter</keycap></keycombo>
	
	to auto-magically insert the parent element for your
	document. (New authors are typically writing 
	<sgmltag>article</sgmltag>s.)
	</para></listitem>
	
	<listitem><para>
	If things are working correctly, you should see new tags
	for the parent element for your document right after the
	document type declaration. In other words you should now
	see two extra tags: 
		<sgmltag class="starttag">article</sgmltag> 
		and
		<sgmltag class="endtag">article</sgmltag> 
	in your document. 
	</para></listitem>
	</itemizedlist>
</section>

<section id="emacs-spell">
<title>Spell Checking in Emacs</title>

<para>
	Emacs can be configured to use <application>aspell</application>
	by adding the following to your <filename>~/.emacs</filename> file.
	Thanks to <ulink url="http://www.ertius.org">Rob Weir</ulink> for
	this configuration information.
</para>

<programlisting>
;; Use aspell
(setq-default ispell-program-name "aspell")
;;Setup some dictionary languages
(setq ispell-dictionary "british")
(setq flyspell-default-dictionary "british")
</programlisting>

</section>

</section>


<section id="tools-vim">
<title>VIM</title>
	<indexterm><primary>vim</primary></indexterm>
        <indexterm>
          <primary>Editors</primary>
          <secondary>vim</secondary>
        </indexterm>
<para>
	<ulink url="http://www.vim.org">http://www.vim.org</ulink>
</para> 
<para>
	No mention of text editors is complete 
	without talking about <application>vi</application>.  
	The <application>VIM</application> (Vi IMproved) 
	editor has the functionality of
   regular vi and includes <quote>syntax
	highlighting</quote> of tags.</para>
	
<section id="usingvim">
<title>Getting Started</title>
<para>
	There are many versions of <application>vi</application>.
	New authors will likely want one of the more
	feature-packed versions for syntax highlighting and
	a graphical interface including mouse control.
</para>
<para>
	Red Hat users will want the following packages:
		vim-common, vim-minimal and vim-enhanced.
	Debian users will want the following package: vim.
	For an X interface (including <acronym>GUI</acronym> menus and 
	mouse control) users will want
	<application>gvim</application>. The <quote>g</quote> in gvim is for
	<quote>Graphical</quote>.
</para>
<para><application>VIM</application> compiles very easy should you need to build your own.  Both <command>vim</command> and <command>gvim</command> are built by default.  Syntax highlighting is included but not enabled by default if you have to start from scratch; use the <command>:syntax enable</command> command in <application>VIM</application> to turn this feature on.
</para>
</section>

<section id="vim-new-file">
<title>Creating New DocBook XML Files</title>
<para>
	In both <application>vim</application> and
	<application>gvim</application>, <filename class="extension">.xml</filename> files will be
	recognized and enter into <quote>SGML mode</quote>.  
	A series of known DocBook tags and attributes have 
	been entered into <application>vim</application> 
	and will be highlighted one color if the name is known
	and another if it is not (for this author the colors are yellow and blue).
</para>
<para>
	Having the
	correct document type declaration at the top of your
	document should add the syntax highlighting.
	If you do not see this highlighting you will need to
	force VIM into SGML mode (even for XML files) using the
	command <command>:set ft=sgml</command>. If you are
	working with multiple files for a single XML document you
	can add your document type in &lt;-- comments --&gt; to
	the top of the file to get the correct syntax
	highlighting (you will need to restart the program to see
	the change in highlighting). The top line of this file
	(<filename>tools-text-editors.xml</filename>) looks like this:
</para>
<screen>
<![CDATA[ 
<!-- <!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'> -->
]]>
</screen>

</section> <!-- vim-new-file -->

<section id="vim-spellcheck">
	<title>Spell Check</title>
	<para>
		As in <application>Emacs</application>,
		<application>Vim</application>, will work quite happily with
		<application>aspell</application>. It can be run from within Vim
		with the following:
		<userinput>:! aspell -c %</userinput>.
	</para>

	<para>
		For more sophisticated spell check alternatives, give <ulink url="http://cream.sourceforge.net/">Cream</ulink> or <ulink url="http://www.vim.org/scripts/script_search_results.php?keywords=vimspell&amp;script_type=&amp;order_by=rating&amp;direction=descending&amp;search=search">vimspell</ulink> a try.
	</para>
</section>

<section id="vim-tagcompletion">
	<title>Tag Completion</title>

	<para>
		The following information is provided by <ulink url="http://www.digitalhermit.com">Kwan Lowe</ulink>.
	</para>

	<para>
		Vim has a DocBook helper script which can be easily copied into
		your <filename class="directory">.vimscripts</filename>
		directory and used to <quote>auto complete</quote> tags while
		writing DocBook documents. The script can be downloaded from:
		<ulink url="http://www.vim.org/scripts/script.php?script_id=38"/>.
	</para>

	<blockquote>
	<para>
		Grab the file, then untar it. Copy the
		<filename>dbhelper.vim</filename> to your <filename class="directory">.vimscripts</filename> directory if you have one.
	</para>
	<screen>
  	<prompt>$ </prompt><command>mkdir</command> <filename class="directory">.vimscripts</filename>
	<prompt>$ </prompt><command>cp</command> <filename>dbhelper.vim</filename> <filename class="directory">.vimscripts</filename>
	</screen>

	<para>
		You'll also have to convert the <filename>dbhelper.vim</filename> file to unix formatting:
	</para>

	<screen>
	<prompt>$ </prompt><command>dos2unix</command> <filename>dbhelper.vim</filename>
	</screen>

	<para>
		Next, edit your <filename>.vimrc</filename> file and add the line:
		<userinput>source
		/home/yourname/.vimscripts/dbhelper.vim</userinput>
	</para>

	<para>
		To use the scripts, enter vi and go into insert mode. Press
		<keycap>,</keycap> (comma) followed by the shortcut. For example:
		<userinput>,dtbk</userinput>
	</para>
	</blockquote>

</section>

</section> <!-- vim -->
      
<section id="tools-epcEdit">
<title>epcEdit</title>
	<indexterm><primary>epcEdit</primary></indexterm>
        <indexterm>
          <primary>Editors</primary>
          <secondary>epcEdit</secondary>
        </indexterm>
<para>
	<ulink url="http://www.tksgml.de/">
		http://www.tksgml.de</ulink>
</para>

<para>
	The <application>epcEdit</application> program allows you to edit XML files.  
	It has the advantages of not needing to know <application>Emacs</application> or
   <application>vi</application> before starting, and is cross-platform, working in both
   Windows and Linux.  This is a commercial application, and
   pricing can be found at
   <ulink url="http://www.tksgml.de/pricing.html">
		http://www.tksgml.de/pricing.html</ulink>
</para>

<para>
	Along with visual editing, epcEdit will also validate
   documents on loading, and on demand by using the <menuchoice moreinfo="none"><guimenu moreinfo="none">Document</guimenu><guimenuitem moreinfo="none">Validate</guimenuitem></menuchoice>
        command.</para> 

<!-- replace this figure with one that shows an XML file -->
<!-- FIXME -->
        <figure>
          <title>epcEdit screen shot</title>
          <mediaobject>
            <imageobject>
              <imagedata format="EPS" fileref="sgeditscreenshot.eps"/>
            </imageobject>
            <imageobject>
              <imagedata format="JPG" fileref="sgeditscreenshot.jpg"/>
            </imageobject>
            <textobject>
              <phrase>The screen shot of the <application>epcEdit</application>
              program shows a
              tree on the left side that has the document in a
              hierarchy, while the right side shows the document.
              Tags are shown with a gray background.</phrase>
            </textobject>
          </mediaobject>
        </figure>  
</section>

<section id="tools-nedit">
<title>nedit</title>
        <indexterm><primary>nedit</primary></indexterm>
        <indexterm>
          <primary>Editors</primary>
          <secondary>nedit</secondary>
        </indexterm>
<para>
	<ulink url="http://nedit.org">
		http://nedit.org</ulink>
</para> 

<para>
	To be fair, <application>nedit</application> is more
   for programmers, so it might seem a bit of overkill for new
   users and especially non-programmers.  All that aside, it's
   extremely powerful, allowing for syntax highlighting.  Unlike
   <application>epcEdit</application>, <application>nedit</application> doesn't allow you to automatically insert tags
   or automatically validate your code.  However, it does allow
   for shell commands to be run against the contents of the
   window (as opposed to saving the file, then checking).

<!-- TODO replace this screen shot with one that shows an
XML file instead of an SGML file -->
<figure>
<title>nedit screen shot</title>
            <mediaobject>
          <!-- TODO
			 Most of the applications could do with fresh screen shots
			 using XML files instead of SGML files.
			 I've created a new JPG but the EPS no longer matches.   
			 		<imageobject>
                <imagedata fileref="neditscreenshot.eps" format="EPS"/>
              </imageobject> -->
              <imageobject>
                <imagedata fileref="neditscreenshot.jpg" format="JPG"/>
              </imageobject>
              <textobject>
                <phrase>The <application>nedit</application> program can provide line numbers
                across the left side of the screen, handy for when
                <command>nsgmls</command> complains of errors</phrase> 
              </textobject>
            </mediaobject>
          </figure>
</para>

<section id="usingnedit">
<title>Using nedit</title>
<para>When you open your DocBook file, <application>nedit</application> should already
have syntax highlighting enabled. If it does not you can
turn it on explicitly using:
	<menuchoice>
		<guimenu>Preferences</guimenu>
		<guimenuitem>Language Mode</guimenuitem>
		<guimenuitem>SGML HTML</guimenuitem>
	</menuchoice>
</para>

<para>
  If you have line numbers turned on (using
  <menuchoice><guimenu>Preferences</guimenu><guimenuitem>Show
  Line Numbers</guimenuitem></menuchoice>) then finding
  validation errors is much simpler.
  <application>nsgmls</application>, the validation tool
  we'll use, lists errors by their line number.
</para>
</section>

<section id="nedit-scripting">
<title>Configuring nedit</title>
<para>
	Since you can feed the contents of your window to
   outside programs, you can easily extend nedit to perform
   repetitive functions.  The example you'll see here is to
   validate your document using
	<application>nsgmls</application>.
	For more information about <application>nsgmls</application> and validating
	documents please read <xref linkend="tools-validate"/>.
</para> 

<!-- Make sure the guimenu markup is consistent and correct. -->
<itemizedlist>
<listitem><para>
	Select <menuchoice><guimenu>Preferences</guimenu><guimenuitem>Default
        Settings</guimenuitem><guimenuitem>Customize
        Menus</guimenuitem><guimenuitem>Shell
        Menu...</guimenuitem></menuchoice>.  This will bring up the
        Shell Command dialog box, with all the shell commands nedit
        has listed under the
        <menuchoice><guimenu>Shell</guimenu></menuchoice> menu.
</para></listitem>
<listitem><para>
	Under
        Menu Entry, enter <quote>Validate DocBook.</quote>  This will be the entry
        you'll see on the screen.
</para></listitem>
<listitem><para>
	Under Accelerator, press
        <keycombo><keycap>Alt</keycap><keycap>S</keycap></keycombo>.
        Once this menu item is set up, you can press
        <keycombo><keycap>Alt</keycap><keycap>S</keycap></keycombo>
        to have the Validate DocBook automatically run.
</para></listitem>
<listitem><para>
		  Under Command
        Input, select window,  and under Command Output, select
        dialog.
</para></listitem>
<listitem><para>
	Under Command to Execute, enter
		  <command>nsgmls
		  <parameter>-sv</parameter></command>. Using
		  <parameter>-v</parameter> outputs the version number
		  is output to the screen so that you know the command
		  has run.
	</para>
	<note><title>Check the PATH</title><para>Note
        that <application>nsgmls</application> has to be in your
        <envar>PATH</envar>  for this to work properly.
	</para></note>
</listitem>
</itemizedlist>
		  
<figure>
          <title>Adding shell commands to nedit</title>
          <mediaobject>
            <imageobject>
              <imagedata fileref="neditshellcommand.eps" format="EPS"/>
            </imageobject>
            <imageobject>
              <imagedata fileref="neditshellcommand.jpg" format="JPG"/>
            </imageobject>
          </mediaobject>
        </figure>

<itemizedlist>
<listitem><para>
	Click <guibutton>OK</guibutton> and you'll now be back
        at the main nedit screen. Load up an XML file, and select
        <menuchoice><guimenu>Shell</guimenu><guimenuitem>Validate
		  DocBook</guimenuitem></menuchoice> or press
        <keycombo><keycap>Alt</keycap><keycap>S</keycap></keycombo>.
</para></listitem>
<listitem><para>
        The <command>nedit</command> program will fire up and check
        the contents of the window.  
</para></listitem>
<listitem><para>
		If all you see is a version number for
		<application>nsgml</application> then your
		document is valid. Any errors are reported by line
		number in your document.
</para></listitem>
</itemizedlist>

        <figure>
          <title><application>nsgmls</application> output on success</title>
          <mediaobject>
            <imageobject>
              <imagedata fileref="neditsuccess.eps" format="EPS"/>
            </imageobject>
            <imageobject>
              <imagedata fileref="neditsuccess.jpg" format="JPG"/>
            </imageobject>
            <textobject>
              <phrase>If <application>nsgmls</application> reports
				  success, it merely reports the version of
				  <application>nsgmls</application></phrase>
            </textobject>
          </mediaobject>
        </figure>
      </section>
    </section>

<section id="tools-morphoneditor">
<title>Morphon XML editor</title>
<para>
	<ulink url="http://www.morphon.com/xmleditor/index.shtml">
		http://www.morphon.com/xmleditor/index.shtml</ulink>
</para>
<para>
	This is a commercial application which is currently
		available for free (with an optional user registration).
		It is written in Java, allowing it to run on any platform 
		that has a Java Virtual Machine (that is, works in both
      Windows and Linux).
</para>
<para>
	On the plus sides of <application>XMLEditor</application> is the left side of the
      screen shows the hierarchy of the document (starting with Book
      and so on).  Selecting an item in the list brings you to that
      part of the document so you can edit it.  The right part of the
      screen shows the text without any markup or tags being shown.
      If you have external files as ELEMENTS (as the LDP Author Guide
      does), <application>XMLEditor</application> will follow the links and load the files, so
      you always work on the entire work.  On the minus side of this,
      you will get errors if a file is missing. 
</para>
</section>

<section id="tools-xxe">
<title>XMLmind XML Editor (XXE)</title>

<para>
	<ulink url="http://www.xmlmind.com/xmleditor">
	http://www.xmlmind.com/xmleditor
	</ulink>
</para>

<para>
		David Horton offers the following information:
</para>

<blockquote><para>
	I am a big fan of XMLMind's <application>XXE</application> editor and <application>XFC</application> FO converter.
	It is <quote>free as in beer,</quote> but not necessarily
	<quote>free as in speech.</quote>  Very liberal license for personal use
	however. It's Java-based so it works on all sorts of OS's.
</para></blockquote>

</section>
</section>

<!-- </section> -->


</section>


<!--
	Tools to validate your XML/SGML There will be some duplication
	in here as editing and validation may or may not be considered
	the same thing. Mostly I'm keeping them separate because I use
	VIM and all the stuff on emacs is useless to me. ;)
--> <!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="tools-validate">
<title>Validation</title>

<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="why-validate">
	<title>Why Validate Your Document</title>

	<para>
		The LDP uses a number of scripts to distribute your document.
		These scripts submit your document to the LDP's CVS (a free 
		document version management system), and then they transform your document to other formats that
		users then read. Your document will also be mirrored on a number
		of sites worldwide (yet another set of scripts).
	</para>
	
	<para>
		In order for these scripts to work correctly, your document must 
		be both <quote>well formed</quote> and use <quote>valid
		markup</quote>. 
		<emphasis>Well formed</emphasis> means your document follows the rules that XML
		is expecting: it complies with XML grammar rules. <emphasis>Valid
		markup</emphasis> means you only use elements or tags
		which are <quote>valid</quote> for your
		document: XML vocabulary rules are applied. 
	</para>

	<para>
		If your document is not well formed or uses invalid markup, the
		scripts will not be able to process it. As a result, your revised
		document will not be distributed.
	</para>

	<note><title>The Docbook Section</title><para> There is more information about how to validate
	your document in the DocBook section. Check out <xref linkend="tools-validate"/> for more help with validating
	your document.	</para></note>
</section>


<section id="validate-online">
	<title>Validation for the Faint of Heart</title>
	<para>
          Your life is already hard enough without having to install a full 
          set of tools just to see if you validate as well. You can upload your 
          raw XML files to a web site, then go to
          <ulink url="http://validate.sf.net">http://validate.sf.net</ulink>,
          enter the URL to your document, then validate it.
	</para>	
		
	<note><title>External entities</title><para>
		When this information was added to the Author Guide external entities
		were not supported. Follow the instructions provided on the
		Validate site if you have trouble.
	</para></note>
</section>

  <section id="validate-local">
    <title>Validation for the Not So Faint Of Heart</title>
    <indexterm zone="validate-local">
      <primary>configurations</primary>
    </indexterm>

<section id="config-catalog">
<title>Catalogs</title>
<para>
	 	XML and SGML files contain most of the information you need;
		however, there are sometimes entities which are specific to SGML in
		general. For example &amp;copy; can be used to
		produce © and &amp;dollar; can be used to produce $. To
		match these entities to their actual values you need to use a
		<emphasis>catalog</emphasis>. The role of a catalog is to tell your
		system where to find the files it is looking for. You may want to think of
		a catalog as a guide book (or a map) for your tools.
</para>

<para>
	Most distributions (Red Hat/Fedora and Debian at least) have a common location 
   for the main SGML catalog file, called <filename>/etc/sgml/catalog</filename>.
   In times past, it could also be found in <filename>/usr/lib/sgml/catalog</filename>.
</para>

<para>
	The structure of XML catalog files is not the same as SGML catalog files.
	The section on tailoring a catalog (see <xref linkend="making-catalogs"/>) will give more details about what these
	files actually contain.
</para> 

<para>
      If your system cannot find the catalog file, or you are using
      custom catalog files, you may need to set the
		<envar>SGML_CATALOG_FILES</envar> and
		<envar>XML_CATALOG_FILES</envar> environment variables.  Using 
		<command>echo <varname>$SGML_CATALOG_FILES</varname></command>,
		check to see if it is currently set. If a blank line is returned,
		the variable has not been set. Use the same command to see if
		<envar>XML_CATALOG_FILES</envar> is set as well. If the variables
		are not set, use the following example to set them now.
</para>

    <example id="ex-catalog-files">
	 <title>Setting the SGML_CATALOG_FILES and XML_CATALOG_FILES
	 Environmental Variables</title>
      <para>
      <screen><prompt>bash$</prompt> <command>export</command> <envar>SGML_CATALOG_FILES="/etc/sgml/catalog"</envar></screen></para>
      
	 	<para>
			To make this change permanent, you can add the following lines to
			your <filename>~/.bashrc</filename> file.
		</para>
<screen>
<envar>SGML_CATALOG_FILES="/etc/sgml/catalog"</envar>
<command>export</command> <envar>SGML_CATALOG_FILES</envar>
</screen>

<para>
	If you installed XML tools via a RedHat or Debian package, you
	probably don't need to do this step. If you are using a custom XML catalog
	you will definitely need to do this. There is more on custom catalogs in the next
	section. To ensure my backup scripts grab this custom file, I have added
	mine in a sub-directory of my home directory named <quote>docbook</quote>.
</para>

<para>
<screen><prompt>bash$</prompt> <command>export</command> <envar>XML_CATALOG_FILES="/home/user/docbook/db-catalog.xml"</envar></screen></para>
  
<para>
You can also change your <filename>.bashrc</filename> if you want to
save these changes.</para>
<screen>
<envar>XML_CATALOG_FILES="/home/user/docbook/db-catalog.xml"</envar>
<command>export</command> <envar>XML_CATALOG_FILES</envar>
</screen>

<para>
			If you are adding the changes to your
			<filename>.bashrc</filename> you will not see the changes
			until you open a new terminal window. To make the changes immediate in the current terminal,
			<quote>source</quote> the configuration file.
</para>
</example>
	 
    <indexterm zone="ex-catalog-files">
      <primary>configurations</primary>
      <secondary>variables</secondary>
      <tertiary>SGML_CATALOG_FILES</tertiary>
    </indexterm>

  </section>
  </section> <!-- config-catalog -->


<section id="making-catalogs">
<title>Creating and modifying catalogs</title>

    <indexterm zone="making-catalogs">
      <primary>catalog</primary>
      <secondary>creating</secondary>
    </indexterm>

    <indexterm zone="making-catalogs">
      <primary>catalog</primary>
      <secondary>modifying</secondary>
    </indexterm>

<para>
	In the previous section I mentioned a catalog is like a guide book for
	your tools. Specifically, a catalog maps the rules from the public
	identifier to your system's files.
</para>

<para>
	At the top of every DocBook (or indeed every XML) file there is a
	DOCTYPE which tells the processing tool what kind of document it is
	about to be processed. At a minimum this declaration will include a public
	identifier, such as <literal>-//OASIS//DTD DocBook
	V4.2//EN</literal>. This public identifier has a number of sections all
	separated by <literal>//</literal>. It contains the following
	information: ISO standard if any (<literal>-</literal> -- in this case
	there is no ISO standard),
	author (OASIS), type of document (DTD DocBook V4.2), language
	(English). Your DOCTYPE may also include a URL.
</para>

<para>
	A public identifier is useless to a processing tool, as it needs to be
	able to access the actual DTD. A URL is useless if the processing tool
	is off-line. To help your processor deal with these problems you can
	download all of the necessary files and then <quote>map</quote> 
	them for your processing tools by using a catalog.
</para>

<para>
	If you are using SGML processing tools (for instance Jade), you will need an
	SGML catalog. If you are using XML processing tools (like XSLT), you
	will need an XML catalog. Information on both is included.
</para>

<section id="catalog-sgml">
<title>SGML Catalogs</title>
    <example id="example-catalog-sgml">
      <title>Example of an SGML catalog</title>
      <programlistingco>
        <areaspec>
          <area coords="1" id="ex.catalog.comment"/>
          <area coords="5" id="ex.catalog.definition"/>
          <area coords="11" id="ex.catalog.eof"/>
        </areaspec>
        <programlisting>
-- Catalog for the Conectiva Styles -- 

OVERRIDE YES
 
PUBLIC "-//Conectiva SA//DTD DocBook Conectiva variant V1.0//EN" 
			"/home/ldp/styles/books.dtd"

DELEGATE "-//OASIS"
        	"/home/ldp/SGML/dtds/catalog.dtd"

DOCTYPE BOOK /home/ldp/SGML/dtds/docbook/db31/docbook.dtd
 
-- EOF -- 
        </programlisting>
        <calloutlist>
          <callout arearefs="ex.catalog.comment">
            <para> Comment. Comments start with <quote>--</quote> and
            follow to the end of the line. </para> 
          </callout>
          <callout arearefs="ex.catalog.definition">
            <para> The public type association <parameter class="option">"-//Conectiva SA//DTD books V1.0//EN"</parameter>
            with the file <filename>books.dtd</filename> on the directory <filename class="directory">/home/ldp/styles</filename>. </para> 
          </callout>
          <callout arearefs="ex.catalog.eof">
            <para> Comment signifying the end of the file.</para>
          </callout>
        </calloutlist>
      </programlistingco>
    </example>

    <para>As in the example above, to associate an identifier to a file just 
    follow the sequence shown:</para>

    <orderedlist>
      <listitem>
        <para>Copy the identifier <emphasis>PUBLIC</emphasis></para>
      </listitem>
      <listitem>
        <para>Type the identifying text </para>
      </listitem>
      <listitem>
        <para>Indicate the path to the associated file</para>
      </listitem>
    </orderedlist>

<section id="making-catalogs-commands">
<title>Useful commands for catalogs</title>
<para>The most common mappings to be used in catalogs are:</para>

      <variablelist>
        <varlistentry>
          <term><literal>PUBLIC</literal></term>
          <listitem>
            <para>The keyword <literal>PUBLIC</literal> maps
            public identifiers for identifiers on the system.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><literal>SYSTEM</literal></term>
          <listitem>
            <para>The <literal>SYSTEM</literal> keyword maps
            system identifiers for files on the system.</para>
            <informalexample>
              <para>
SYSTEM
"http://nexus.conectiva/utilidades/publicacoes/livros.dtd"
              "publicacoes/livros.dtd"</para>
            </informalexample>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><literal>SGMLDECL</literal></term>
          <listitem>
            <para>The keyword <literal>SGMLDECL</literal> designates the
            system identifier of the SGML statement that should be used.
            </para>
            <informalexample>
              <para>
SGMLDECL "publishings/books.dcl"</para>
            </informalexample>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><literal>DTDDECL</literal></term>
          <listitem>
            <para>Similar to the <literal>SGMLDECL</literal> the
            keyword <literal>DTDDECL</literal> identifies the SGML statement
            that should be used. <literal>DTDDECL</literal> makes the 
            association of the statement with a public identifier to a
            <acronym>DTD</acronym>. Unfortunately, this association isn't 
            supported by the open source tools available. The benefits of this
            statement can be achieved somehow with multiple catalog files.
            </para>
            <informalexample>
              <para>
DTDDECL "-//Conectiva SA//DTD livros V1.0//EN" "publicacoes/livros.dcl"</para>
            </informalexample>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><literal>CATALOG</literal></term>
          <listitem>
            <para>The keyword <literal>CATALOG</literal> allows a catalog
            to be included inside another. This is a way to make use of several
            different catalogs without the need to alter them.
            </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><literal>OVERRIDE</literal></term>
          <listitem>
            <para>The keyword <literal>OVERRIDE</literal> informs whether an 
            identifier has priority over a system identifier.
            The standard on most systems is that the system identifier
            has priority over the public one.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><literal>DELEGATE</literal></term>
          <listitem>
            <para>The keyword <literal>DELEGATE</literal> allows the 
            association of a catalog to a specific type of public identifier.
            The clause <literal>DELEGATE</literal> is very similar to the
            <literal>CATALOG</literal>, except for the fact that it doesn't do
            anything until a specific pattern is specified.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><literal>DOCTYPE</literal></term>
          <listitem>
            <para>If a document starts with a type of document, but
            has no public identifier and no system identifier the clause 
            <literal>DOCTYPE</literal> associates this document
            with a specific DTD.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </section>
</section>

<section id="catalog-xml">
<title>XML Catalogs</title>

<para>The following sample catalog was provided by Martin A. Brown.</para>

<example id="ex-catalog-xml">
<title>Sample XML Catalog file</title>

<screen>
&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE catalog PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
          "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"&gt;

<sgmltag class="starttag">catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"</sgmltag>
    
	<sgmltag class="emptytag">public publicId="-//OASIS//DTD DocBook XML V4.2//EN"
       uri="/home/mabrown/docbook/dtds/4.2/docbookx.dtd"</sgmltag>
   <sgmltag class="emptytag">uri name="http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
       uri="/home/mabrown/docbook/dtds/4.2/docbookx.dtd"</sgmltag>
   <sgmltag class="emptytag">uri name="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"
       uri="/home/mabrown/docbook/xsl/xhtml/docbook.xsl"</sgmltag>
   <sgmltag class="emptytag">uri name="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"
       uri="/home/mabrown/docbook/xsl/xhtml/chunk.xsl"</sgmltag>
   <sgmltag class="emptytag">uri name="http://docbook.sourceforge.net/release/xsl/current/xhtml/profile-chunk.xsl"
       uri="/home/mabrown/docbook/xsl/xhtml/profile-chunk.xsl"</sgmltag>
<sgmltag class="endtag">catalog</sgmltag>
</screen>
</example>
</section>
</section> <!-- end of catalogs -->

<section id="validatexml">
<title>Validating XML</title>

<section id="validate-nsgmls">
<title>nsgmls</title>
     <para>
	  You can use <application>nsgmls</application>, which is part of the
	  <application>jade</application> suite (on Debian apt-get the 
	  <application>docbook-utils</application> package, see <xref linkend="docbook-utils"/>), to validate SGML or XML documents.
	  </para>
	  
<screen>
<prompt>bash$</prompt> <command>nsgmls <parameter>-s</parameter> <replaceable>HOWTO.xml</replaceable></command>
</screen>

        <para> If there are no issues, you'll just get your command
        prompt back. The <parameter>-s</parameter> tells
		  <application>nsgmls</application> to show only the errors.</para>

          <tip><title>Function not found</title>
            <para>
              If you get errors about a function not being found, or
				  something about an ISO character not having an
				  authoritative source, you may
	      need to point <command>nsgmls</command> to your
              <filename>xml.dcl</filename> file.  For Red Hat 9, it
              will look like this:
	      <command>nsgmls <parameter>-s</parameter>
	      <filename>/usr/share/sgml/xml.dcl</filename>
	      <replaceable>HOWTO.xml</replaceable></command>
            </para>
          </tip>
	<para>
	  For more information on processing files with Jade/OpenJade please read
     <ulink url="http://www.tldp.org/HOWTO/DocBook-OpenJade-SGML-XML-HOWTO/index.html">DocBook XML/SGML Processing Using OpenJade</ulink>.
   </para>
</section> <!-- end nsgmls -->

<section id="validate-onsgmls">
<title>onsgmls</title>
<para>
	This is an alternative to <application>nsgmls</application>. It ships
	with the OpenJade package. This program gives more options than nsgmls
	and allows you to quietly ignore a number of problems that arise while
	trying to validate an XML file (as opposed to an SGML file). This also
	means you don't have to type out the location of your
	<filename>xml.dcl</filename> file each time.
</para>

<para>
	I was able to simply use the following to validate a file with only
	error messages that were related to my markup errors.
</para>

<screen>
<prompt>bash$ </prompt><command>onsgmls -s <replaceable>HOWTO.xml</replaceable></command>
</screen>

<para>
	According to <ulink url="http://lists.oasis-open.org/archives/docbook-apps/200305/msg00081.html">Bob
	Stayton</ulink> you can also turn off specific error messages. The
	following example turns off XML-specific error messages.
</para>

<screen>
<prompt>bash$ </prompt><command>onsgmls <parameter>-s</parameter> <parameter>-wxml</parameter> <parameter>-wno-explicit-sgml-decl</parameter> <replaceable>HOWTO.xml</replaceable></command>
</screen>

</section>

<section id="validate-xmllint">
<title>xmllint</title>

<para>
	You can also use the <application>xmllint</application> command-line tool from the <application>libxml2</application> package to validate your documents. This tool does a simple check on completeness of tags and whether all tags that are opened, are also closed again. 
	By default
	<application>xmllint</application> will output a results tree. So if your document comes out until the last line, you know there are no heavy errors having to do with tag mismatches, opening and closing errors and the like.</para>
	<para>To prevent printing the entire document to your screen, add the <parameter>--noout</parameter> 
	parameter.
</para>

<screen>
<prompt>bash$</prompt> <command>xmllint <parameter>--noout</parameter> <replaceable>HOWTO.xml</replaceable></command>
</screen>

<para>
	If nothing is returned, your document contains no syntax errors. Else, start with the first error that was reported.  Fix that one error, and run the tool again on your document.  If it still returns output, again fix the first error that you see, don't botter with the rest since further errors are usually generated because of the first one.</para>

<para>
	If you would like to check your document for any errors which are
	specific to your Document Type Definition, add
	<parameter>--valid</parameter>. 
</para>

<screen>
<prompt>bash$</prompt> <command>xmllint <parameter>--noout</parameter> <parameter>--valid</parameter> <replaceable>HOWTO.xml</replaceable></command>
</screen>
<para>The <command>xmllint</command> tool may also be used for checking errors in the XML catalogs, see the man pages for more info on how to set this behavior.</para>
<para>
	If you are a Mac OSX or Windows user, you may also want to check out
	<application>tkxmllint</application>, a GUI version of
	<application>xmllint</application>. More information is available from:
	<ulink url="http://tclxml.sourceforge.net/tkxmllint.html"/>.
</para>

<example id="xmllint-example"><title>Debugging example using xmllint</title>
<para>The example below shows how you can use <application>xmllint</application> to check your documents.  I've created some errors that I made a lot, as a beginning XML writer.  At first, the document doesn't come through, and errors are shown:</para>

<screen>
<prompt>bash$</prompt> <command>xmllint <filename>ldp-history.xml</filename></command>
ldp-history.xml:22: error: Opening and ending tag mismatch: articlinfo line 6 and articleinfo
&lt;/articleinfo&gt;
              ^
ldp-history.xml:37: error: Opening and ending tag mismatch: listitem line 36 and orderedlist
&lt;/orderedlist&gt;
              ^
ldp-history.xml:39: error: Opening and ending tag mismatch: orderedlist line 34 and sect2
&lt;/sect2&gt;
        ^
ldp-history.xml:46: error: Opening and ending tag mismatch: sect1 line 41 and para
for many authors to contribute their part in their area of specialization.&lt;/para
                                                                               ^
ldp-history.xml:57: error: Opening and ending tag mismatch: para line 55 and sect1
&lt;/sect1&gt;
        ^
ldp-history.xml:59: error: Opening and ending tag mismatch: sect2 line 31 and article
&lt;/article&gt;
          ^
ldp-history.xml:61: error: Premature end of data in tag sect1 line 24
 
^
ldp-history.xml:61: error: Premature end of data in tag article line 5
 
^
</screen>
<para>Now, as we already mentioned, don't worry about anything except the first error.  The first error says there is an inconsistency between the tags on line 6 and line 22 in the file.  Indeed, on line 6 we left out the <quote>e</quote> in <quote>articleinfo</quote>.  Fix the error, and run <command>xmllint</command> again.  The first complaint now is about the offending line 37, where the closing tag for list items has been forgotten.  Fix the error and run the validation tool again, until all errors are gone.  Most common errors include forgetting to open or close the paragraph tag, spelling errors in tags and messed up sections.</para>

</example>

</section> <!-- end xmllint -->
</section> <!-- end validate -->
</section>


<!--
	Tools to Transform DocBook to other formats Mostly this is
	a Jade/DSSSL section; but I'd like to add some XSLT stuff
	because...well...  I found it about 100 times easier to install.
--> <!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<section id="transformations">
	<title>Transformations</title>
		<warning><title>TLDP can convert your document</title><para>
			This section is about how to transform documents
			from DocBook to other formats. If you do not want
			to transform documents on your own computer you may
			<emphasis>skip this section</emphasis>.
		</para>
	
		<para>
			If you would like to transform your documents for 
			proofreading purposes, please use the <ulink url="http://www.xml-dev.com/blog/xml2html.php">XML to HTML on-line
			converter</ulink>. You will need to upload your XML file(s)
			to a web site. Then simply drop the URL into the form and
			click the submit button. Your document will be magically
			transformed into a beautiful (and legible)
			HTML document. External files are supported. You may use 
			either absolute or relative URIs.
		</para>

		<para>
			Another fairly straight-forward package is
			<application>xmlto</application>. It is a front-end for
			<application>xsltproc</application>. It is available as a
			RedHat, Debian (etc) package or can be downloaded from <ulink url="http://cyberelk.net/tim/xmlto/"/>. You can use it to convert
			documents with:
		</para>
		
<programlisting>
<prompt>bash$ </prompt><userinput>xmlto html <filename>mydoc.xml</filename></userinput>
<prompt>bash$ </prompt><userinput>xmlto text <filename>mydoc.xml</filename></userinput>
</programlisting>

		<para>
			You do not ever need to transform documents
			before submitting to the LDP. The LDP
			volunteers have a system which transforms
			your DocBook file into HTML, PDF and plain
			text formats. There, you've been warned.
		</para></warning>

<para>
	Still here? Great! Transformations are
	a pretty basic requirement to get what
	you've written from a messy tag-soup into
	something that can be read.  This section
	will help you get your system set up and
	ready to transform your latest document
	into other formats. This is very useful
	is you want to <emphasis>see</emphasis>
	your document before you release it to
	the world.
</para>

<para>
	There are currently two ways to transform
	your document: Document Style Semantics and
	Specification Language (DSSSL); and XML
	Style sheets (XSLT). Although the LDP web site uses
	DSSSL to convert documents you may use XSLT
	if you want. You only need to choose <emphasis>one</emphasis> of these
	methods. For more information about DSSSL read: <xref linkend="dsssl"/>, for more information about XSLT read: <xref linkend="xsl"/>.
</para>

<section id="dsssl">
<title>DSSSL</title>
<para>
	There are three basic requirements to transform a document using DSSSL:
</para> 
<itemizedlist>
<listitem><para>
	The Document Style and Semantics Specification Language files
	(these are plain text files). <xref linkend="dsssl-files"/>
	</para>
</listitem> 
<listitem><para>
	The Document Type Definition file
	which matches the DOCTYPE of your
	document (this is a plain text file).
	<xref linkend="dtd"/>
</para></listitem> 
<listitem><para>
	A processor to do the actual work. <xref linkend="dsssl-processors"/>
	</para>
</listitem>
</itemizedlist> 

<section id="dsssl-files">
<title>The Style Sheets</title>
<para>There are two versions of the
		Document Style Semantics and Specification Language
		used by the LDP to transform documents from your
		raw DocBook files into other formats (which are then
		published on the Web). The LDP version of the style
		sheets requires the Norman Walsh version--which
		basically means if you're using DSSSL the Norman
		Walsh version can be considered a requirement for
		system setup.</para>

	<formalpara>
	<title>Norman Walsh DSSSL <ulink url="http://docbook.sourceforge.net/projects/dsssl/"/></title>
	<para>The
				<indexterm><primary>DSSSL</primary></indexterm>
	Document Style Semantics and Specification Language tells
	Jade (see <xref linkend="dsssl-processors"/>) how to render
		  a DocBook document into print or on-line
	form. The DSSSL is what converts a
		  <sgmltag>title</sgmltag> tag into an
	&lt;h1&gt; HTML tag, or to 14 point bold Times Roman for
	RTF, for example. Documentation for DSSSL is located at
	the same site. Note that modifying the DSSSL doesn't modify
	DocBook itself. It merely changes the way the rendered text
	looks. The LDP uses a modified DSSSL (see below).</para>
	</formalpara>

	<formalpara>
	<title>LDP DSSSL <ulink url="http://www.tldp.org/authors/tools/ldp.dsl">http://www.tldp.org/authors/tools/ldp.dsl</ulink></title>
	<para>The LDP DSSSL requires the Norman Walsh version (see
	above) but is a slightly modified DSSSL to provide things
	like a table of contents.</para>
	</formalpara>

	<example id="ex-dsssl">
	<title><quote>Installing</quote> DSSSL style sheets</title>
	<para>Create a base directory to store everything such as <filename moreinfo="none" class="directory">/usr/share/sgml/</filename>. Copy the DSSSL
			style sheets into a sub-directory named 
			<filename class="directory">dsssl</filename>.
	</para>
	</example>
</section>

<section id="dsssl-processors"> 
<title>DSSSL Processors</title>
<para>
	<indexterm><primary>jade</primary></indexterm> 
		There are two versions of the <application>Jade</application> processor: the
		  original version by James Clark; and an open-source
		  version of approximately the same program, <application>OpenJade</application>.
		  You only need <emphasis>one</emphasis> of these programs. It should
		  be installed <emphasis>after</emphasis> the DTD
		  and DSSSL have been <quote>installed.</quote>
</para>

	<variablelist>
	<title>DSSSL Transformation Tools</title>
	<varlistentry>
	<term>Jade</term>
	<listitem>
	<para>
	<ulink url="ftp://ftp.jclark.com/pub/jade/"/></para>
	<para>Currently, the latest version of the package is <filename>jade-1.2.1.tar.gz</filename>.</para>
	<para>Jade is the front-end processor for SGML and
	XML. It uses the DSSSL and DocBook DTD to perform the
	verification and rendering from SGML and XML into the target
	format.</para> 
	</listitem>
	</varlistentry>

	<varlistentry>
	<term>OpenJade</term>
	<listitem>
	<para><ulink url="http://openjade.sourceforge.net/">http://openjade.sourceforge.net/</ulink></para>
	<para>An extension of Jade written by the DSSSL
	community. Some applications require jade, but are being
	updated to support either software package.</para>
	</listitem>
	</varlistentry>
	</variablelist>
</section>

<section id="dsssl-setup">
<title>System Setup for DSSSL Transformations</title>
<orderedlist>
<listitem>
<para>
	Tell your system where to find the SGML_CATALOG_FILES (yes, even if you
	are using XML). You can find an example of how to do this in <xref linkend="ex-catalog-files"/>.
<!--
export
SGML_CATALOG_FILES=$_toolroot/dtd/docbook.cat:\
$_toolroot/dsssl/docbook/catalog:$_toolroot/jade-1.2.1/dsssl/catalog</command>
-->
</para>
</listitem>
<listitem>
<para>
	Download the DSSSL and DTD files and copy them into your working
	directory. You can find an example of how to do this in <xref linkend="ex-dsssl"/> and <xref linkend="ex-dtd"/>.
</para>
</listitem>
</orderedlist>
</section>
	
<section id="usingjade">
<title>Transformations with DSSSL</title>
<para>
	Once your system is configured (see the previous section), you should
	be able to start using <application>jade</application> to transform
	your files from XML to XHTML.
</para>

<!--
     <para>To do this you must add the following lines to the file
	<filename>/etc/sgml/catalog</filename>, by bringing it up under
	your favorite text editor:</para>

      <informalexample>
        <screen format="linespecific">
PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN"
  /usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl<co id="html"/>

PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"
 /usr/lib/sgml/stylesheets/nwalsh-modular/print/docbook.dsl<co
 id="print"/>

PUBLIC "-//Norman Walsh//DOCUMENT DSSSL Library//EN"
  /usr/lib/sgml/stylesheets/nwalsh-modular/lib/dblib.dsl

PUBLIC "-//Norman Walsh//DOCUMENT DSSSL Library V2//EN"
  /usr/lib/sgml/stylesheets/nwalsh-modular/lib/dblib.dsl
</screen>
      </informalexample>
-->

<para>
	To create individual HTML files, point <application>jade</application>
	at the correct DSL (style sheet). The following example uses the LDP
	style sheet.
</para> 
<screen format="linespecific">
<prompt>bash$ </prompt><command>jade -t xml -i html \
	-d /usr/local/sgml/dsssl/docbook/html/ldp.dsl#html \
	<replaceable>HOWTO.xml</replaceable></command>
</screen>

	<para>
		If you would like to produce a single-file HTML page, add the
		<parameter>-V nochunks</parameter> parameter. You can specify the 
		name of the final HTML file by appending the command with <parameter>
		&gt; <replaceable>output.html</replaceable></parameter>.
	</para>

<screen format="linespecific">
<prompt>bash$ </prompt><command>jade -t xml -i html -V nochunks \
	-d /usr/local/sgml/dsssl/stylesheets/ldp.dsl#html \
	<replaceable>HOWTO.sgml</replaceable> &gt; output.html</command>
</screen>

<note id="dcl-errors">
	<title><emphasis>Not a function name</emphasis> errors</title>
	<para>
		If you get an error about <quote>is not a function name</quote>, you
		will need to add a pointer to <filename>xml.dcl</filename>. It has
		to be listed immediately before the pointer to your XML
		document. Try one of the following locations:
		<filename>/usr/lib/sgml/declaration/xml.dcl</filename>, or
		<filename>/usr/share/sgml/declaration/xml.dcl</filename>. Use
		<application>locate</application> to find the file if it is not in
		either of those two places. The modified command would be as
		follows:
	</para> 
	<screen>
<prompt>bash$ </prompt><command>jade -t xml -i html \
	-d /usr/local/sgml/dsssl/docbook/html/ldp.dsl#html \
	/usr/lib/sgml/declaration/xml.dcl <replaceable>HOWTO.xml</replaceable></command>
	</screen>
</note>

<para>
	If you would like to create print-friendly files instead of HTML files,
	simply change the style sheet that you are using. In the file name
	above, note <quote>html/ldp.dsl</quote> at the end. Change this to
	<quote>print/docbook.dsl</quote>, or if you want XHTML output, instead
	of HTML, change the file name to <quote>xhtml/docbook.dsl</quote>.
</para>

<section id="dsssl-css">
<title>Changing CSS Files</title>
	<para>If you want your HTML files to use a specific 
	<acronym>CSS</acronym> stylesheet, you will need to edit 
	<filename>ldp.dsl</filename>. Immediately after
 	<literal>;; End of $verbatim-display$ redefinition</literal> 
	add the following lines:</para>

<screen format="linespecific">
(define %stylesheet-type%
  ;; The type of the stylesheet to use
  "text/css")

(define %stylesheet%
  ;; Name of the css stylesheet to use, use value #f if you don't want to
  ;; use css stylesheets
  "base.css")
</screen>

	<para>
		Replace <filename>base.css</filename> with the name of the
		<acronym>CSS</acronym> file you would like to use.
	</para>
</section>
</section>
</section>
<!--Emma: I found that all these thingies you were talking about were way too difficult, no wonder people are objecting.  I've never bothered setting any variable at all, for instance, using the docbook-utils.  I took the liberty of adding a section about them. -->
<section id="docbook-utils"><title>The docbook-utils Package</title>
<para>The <application>docbook-utils</application> provide commands like <command>db2html</command>, <command>db2pdf</command> and <command>db2ps</command>, based on the <command>jw</command> scripts, that is a front-end to <application>Jade</application>.  These tools ease the everyday management of documentation and add comfortable features.</para>
<para>The package, originally created by RedHat and available from <ulink url="http://sources.redhat.com/docbook-tools/"/> can be installed on most systems.</para>

<example id="ex-htmloutput">
<title>Example creating HTML output</title>
<para>After validating your document, simply issue the command
<command>db2html <filename>mydoc.xml</filename></command> to create (a)
HTML file(s).  You can also use the
<application>docbook-utils</application> as validation tools.  Remember: when errors occur, always start by solving only the first problem. The rest of the problems may be fixed when you fix the first error.</para>
<para>
	If you get errors about a function name, please read <xref linkend="dcl-errors"/>.
</para>
</example>

<section id="stylesheets"><title>Using CSS and DSL for pretty output</title>
<para>You can define your own additional DSL instructions, which can
include a pointer to a personalized CSS file. Sample DSL and CSS files are
provided in <xref linkend="templates"/>.</para>

<para>The sample DSL file will create a table of contents, and have all
HTML files start with the prefix <filename>intro2linux-</filename> and end
with a suffix of <filename>.html</filename>.  The
<varname>%stylesheet%</varname> variable points to the CSS file which
should be called by your HTML file.</para>

<para>To use a specific DSL style sheet the following command should be
used:</para>
<cmdsynopsis><command>db2html <option>-d</option> <filename>mystyle.dsl</filename> <filename>mydoc.xml</filename></command></cmdsynopsis>
<para>You can compare the result here: <ulink url="http://tille.soti.org/training/unix/"/> is a book formatted with the standard tools; <ulink url="http://tille.soti.org/training/tldp/"/> is one using personalized DSL and CSS files.  Soft tones and special effects, for instance in buttons, were used to achieve maximum effect.</para>
</section>

</section>

<section id="xsl"> 
<title>XSL</title> 
<para>
	There are alternatives to DSSSL and Jade/OpenJade.</para>

<para>When working with DocBook XML, the LDP offers a series of 
      XSL<footnote><para>In truth, "XSL" is actually comprised of three
      components: the <emphasis>XSLT</emphasis> transformation language,
      the <emphasis>XPath</emphasis> expression language (used by XSLT), 
      and XSL Formatting Objects (FO) that are used for describing a page.
      The style sheets are actually written in XSLT and generate either HTML
      or (for print output) FO. The FO file is then run through a FO processor
      to create the actual print (PDF or PostScript) output. See the
      <ulink url="http://www.w3.org/Style/XSL/WhatIsXSL.html">W3C web 
      site</ulink> for more information.</para></footnote>
      style sheets to process documents into HTML.  These style 
sheets create
      output files using the XML tool set that are similar to those produced by
      the SGML tools using <link linkend="dsssl">ldp.dsl</link>.
      </para>

      <para>The major difference between using <filename>ldp.dsl</filename>
      and the XSL style sheets is the way that the generation of multiple
      files is handled, such as the creation of a separate file for each chapter,
      section and appendix.  With the SGML tools, such as
      <application>jade</application> or
		<application>openjade</application>, the tool
      itself was responsible for generating the separate files. Because of
      this, only a single file, <filename>ldp.dsl</filename> was necessary as
      a customization layer for the standard DocBook DSSSL style sheets.
      </para>
      <para>With the DocBook XSL style sheets, generation of multiple files is
      controlled <emphasis>by the style sheet</emphasis>. If you want to
      generate a single file, you call one style sheet. If you want to generate
      multiple files, you call a different style sheet.  For that reason the
      LDP XSL style sheet distribution is comprised of four files:
      </para>
      <orderedlist>
      <listitem>
      <para><filename>tldp-html.xsl</filename> - style sheet called to generate
      a <emphasis>single</emphasis> file.
      </para>
      </listitem>
      <listitem>
      <para><filename>tldp-html-chunk.xsl</filename><footnote><para>In XSL
      terminology, the process of generating multiple files is referred to
      as "chunking".</para></footnote> - style sheet called to generate
      multiple files based on chapter, section and appendix elements.
      </para>
      </listitem>
      <listitem>
      <para><filename>tldp-html-common.xsl</filename> - style sheet containing
      the actual XSLT transformations. It is called by the other two HTML
      style sheets and is <emphasis>never</emphasis> directly called.
      </para>
      </listitem>
      <listitem>
      <para><filename>tldp-print.xsl</filename> - style sheet for generation of
      XSL Formatting Objects for print output.
      </para>
      </listitem>
      </orderedlist>
		
      <para>
      You can find the latest copy of the files at <ulink url="http://my.core.com/~dhorton/docbook/tldp-xsl/">http://my.core.com/~dhorton/docbook/tldp-xsl/</ulink>.
		The package includes installation instructions which are duplicated
		at <ulink url="http://my.core.com/~dhorton/docbook/tldp-xsl/doc/tldp-xsl-howto.html"/>. The short version of the install instructions is as follows: 
		Download and unzip the latest package from the web site. Take the 
		files from the <filename class="directory">html</filename> 
		directory of TLDP-XSL and put them in the
		<filename class="directory">html</filename> directory of Norman Walsh's 
		stylesheets. Take the file from the TLDP-XSL <filename class="directory">fo</filename> directory and put it in the Norman Walsh
		<filename class="directory">fo</filename> directory.
		</para>
    
	 <para>
	 	Once you have installed these files you can use
		<application>xsltproc</application> to generate HTML files from your
		XML documents. To transform your XML file(s) into a single-page HTML
		document use the following command:
    </para>
		
      <screen format="linespecific">
<prompt>bash$</prompt> <command> xsltproc -o <replaceable>HOWTO.html</replaceable> /usr/local/sgml/stylesheets/tldp-html.xsl <replaceable>HOWTO.xml</replaceable></command>
</screen>

    <para>To generate a set of linked HTML pages, with a separate page for each 
	 <sgmltag>chapter</sgmltag>, <sgmltag>sect1</sgmltag> or
	 <sgmltag>appendix</sgmltag>,  use the following
    command:
    </para>

      <screen format="linespecific">
<prompt>bash$ </prompt><command>xsltproc /usr/share/sgml/stylesheets/tldp-html-chunk.xsl <replaceable>HOWTO.xml</replaceable></command>
</screen>

    <para>Note that you never directly call the style sheet
    <filename>tldp-html-common.xsl</filename>. It is called by both of the
    other two style sheets.
    </para>

<section id="xsl-css">
<title>Changing CSS Files</title>
	<para>If you want your HTML files to use a specific 
	<acronym>CSS</acronym> stylesheet, you will need to edit 
	<filename>tldp-html-common.xsl</filename>. Look for a line that
	ressembles <literal>&lt;xsl:param name="html.stylesheet"
	select="'style.css'"/&gt;</literal>.</para>
	
	<para>
		Replace <filename>style.css</filename> with the name of the
		<acronym>CSS</acronym> file you would like to use.
	</para>
</section>
</section>
</section>

<section id="dtd">
<!-- not sure if this is in the right place.... -->
<title>DocBook DTD</title> 
<para>
	<indexterm><primary>DocBook DTD</primary></indexterm>
	The DocBook DTD defines the structure of a DocBook
		  document. It contains rules about how the elements
		  may be used; and what the elements ought to be
		  describing. For example: it is the DocBook DTD
		  which states all <sgmltag>warning</sgmltag>s are to
		  <emphasis>warn</emphasis> the reader (this is the
		  definition of the element); and may not contain
		  plain text (this is the content model--and the
		  bit which forces you to wrap your warning text
		  in a <sgmltag>para</sgmltag> or perhaps a list).
      </para>

		<caution><title>Versions</title><para>
			It is important that you download the
			version(s) that match your document. You
			may want to configure your system now to
			deal with <quote>all</quote> DocBook DTDs
			if you are going to be editing older LDP
			documents. If you are a new author, you
			only need the first one listed: XML DTD
			for DocBook version 4.2.
		</para></caution>

      <para>The XML DTD is available from <ulink url="http://www.oasis-open.org/docbook/xml/4.2">http://www.oasis-open.org/xml/4.2/</ulink>.
		The LDP prefers this version of the DocBook DTD.
      </para>

      <para>
			If you are going to be working with SGML
			versions of DocBook you will need one
			(or both) of:
		<ulink url="http://www.oasis-open.org/docbook/sgml/4.1/docbk41.zip">http://www.oasis-open.org/docbook/sgml/4.1/docbk41.zip</ulink>
      or <ulink url="http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip">http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip</ulink>
		</para>
	
	<example id="ex-dtd">
	<title><quote>Installing</quote> DocBook Document Type Definitions</title>
	<para>Create a base directory to store everything such as <filename moreinfo="none" class="directory">/opt/local/sgml/</filename>. Copy the DTDs 
			into a sub-directory named <filename class="directory">dtd</filename>.
	</para>
	</example>

	<warning><title>Do not edit DTD files</title><para>
		 The DocBook standard is described in these
		 files.  If you change these files, you are no longer working
		 with DocBook.
	</para></warning>
   </section>

<section id="doc-components">
<title>Formatting Documents</title>
    <section id="toc-articles">
      <title>Inserting a summary on the initial articles page</title>

      <indexterm>
	<primary>tools</primary> <secondary>articles</secondary>
	<tertiary>summary</tertiary>
      </indexterm>

      <para>A feature that might be valuable in some cases is
      the insertion of the summary on the initial page of an
      article. DocBook articles do not include it as a standard
      feature.</para>

      <para>To enable this, it is necessary to modify the style
      sheet file.</para>

<example>
<title>Style sheet to insert summaries in articles</title>
<programlisting>
&lt;!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
&lt;!entity html-docbook PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL&gt;
&lt;!entity print-docbook PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL&gt;
]&gt;

&lt;style-sheet&gt;
&lt;style-specification use="html"&gt;
&lt;style-specification-body&gt;

; Includes a summary at the beginning of an item. 
(define %generate-article-toc% #t)

&lt;/style-specification-body&gt;
&lt;/style-specification&gt;
&lt;style-specification use="print"&gt;
&lt;style-specification-body&gt;

; Includes a summary at the beginning of an item.    
(define %generate-article-toc% #t)

&lt;/style-specification-body&gt;
&lt;/style-specification&gt;
&lt;external-specification id="html" document="html-docbook"&gt;
&lt;external-specification id="print" document="print-docbook"&gt;
&lt;/style-sheet&gt;

</programlisting>
</example>

</section>

    <section id="automatic-indexes">
      <title>Inserting indexes automatically</title>

      <indexterm>
	<primary>tools</primary> <secondary>indexes</secondary>
	<tertiary>automatic generation</tertiary> <seealso>edition,
	index</seealso>
      </indexterm>

      <para>
	Although DocBook has markups for the composition of
	them, indexes are not generated automatically. The
	<command>collateindex.pl</command> command allows indexes
	to be generated from the source DocBook for inclusion into the
	finished/transformed document.
      </para>

      <orderedlist>
	<listitem>
	  <para>Process the document with
	  <application>jade</application> using the style to
	  <glossterm><acronym>HTML</acronym></glossterm> with
	  the option <option>-V html-index</option>.</para>
	  <informalexample>
<screen>
<prompt>bash$</prompt> <command>jade</command> <option>-t sgml \
	-d html/docbook.dsl -V html-index document.sgml</option>
</screen>
</informalexample>
</listitem> 
<listitem>
	  <para>
	    Generate the <filename>index.sgml</filename> file with
	    <command>collateindex.pl</command>.
	  </para> <informalexample>
<screen>
<prompt>bash$ </prompt> <command>perl</command> <option>collateindex.pl \
	-o index.sgml HTML.index</option>
</screen>
</informalexample>
</listitem>
</orderedlist>

      <para>For the above example to work, it is necessary to define
      an <glossterm>external entity</glossterm> by calling the
      file <filename>index.sgml</filename>.</para>

      <example id="ex-entity-external-index">
	<title>Configuring an external entity to include the
	index</title>
	 <programlisting>
<sgmltag class="starttag">!DOCTYPE article PUBLIC "-//OASIS//DTD
DocBook V3.1//EN" [

&lt;!-- Insertion of the index --&gt; &lt;!entity index SYSTEM
"index.sgml"&gt; ]</sgmltag>
	</programlisting>
      </example>

      <para>See also <xref linkend="encoding-index"/> for information
      on how to
	  insert necessary information on the text.</para>

      <note><title>Odd behavior generating indexes for print versions</title>
	<para>Remember that if you're trying to get Tables of
	Contents or Indexes on PS or PDF output you'll need to
	run <application moreinfo="none">jadetex</application>
	or <application moreinfo="none">pdfjadetex</application>
	at least three times. This is required by <application moreinfo="none">TeX</application> but not by DocBook or
	related applications.</para>
      </note>
</section>
</section>



</appendix>


<!-- Appendix: CVS -->
<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<appendix id="cvs">
<title>Concurrent Version System (CVS)</title>

<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

    <para>
	 	The LDP provides optional CVS access to its authors. This enables
		collaborative writing and has the following positive effects:
    </para>

    <orderedlist inheritnum="ignore" continuation="restarts">
      <listitem>
        <para> CVS will keep an off-site backup of your documents. In
        the event that you hand over a document to another author,
        they can just retrieve the document from CVS and continue
        on. In the event you need to go back to a previous version of
        a document, you can retrieve it as well.  </para>
      </listitem>
      <listitem>
        <para>However difficult from an organizational point of view, it's great to have multiple people working on the same
        document.  CVS enables you to do this. You can have CVS tell you what changes were made by another author 
        while you were editing your copy, and
        integrate those changes.</para>
      </listitem>
      <listitem>
        <para>CVS keeps a log of what changes were made. These logs (and
        a date stamp) can be placed automatically inside your documents
		  when they are published.
        </para>
      </listitem>
      <listitem>
        <para> CVS can be combined with scripts to automatically
      update the LDP web site with new documentation as it's written
      and submitted. This is not in place yet, but it is a goal. 
		Currently, CVS updates signal the HOWTO coordinator to
      update the LDP web page, meaning that if you use CVS, you're not
      required to e-mail your XML code. (Although you do
      still need to send the submit list an email when you
      are ready for your document to be published, because the whole publishing process has not been fully automated yet.) </para>
      </listitem>
    </orderedlist>



   <para>
      You can browse the LDP CVS repository via the web at <ulink url="http://cvsview.tldp.org/">http://cvsview.tldp.org/</ulink>.
    </para>

    <section id="getaccount">
      <title> Getting a CVS account </title>

		<caution>
		<title>CVS accounts will not be granted to all applicants</title>
		<para>To be granted a CVS account you must qualify under one of the following categories:</para>
		<itemizedlist>
		<listitem>
		<para>authors with documents already in the collection who have made a minimum of three submits to the LDP through <email>submit@en.tldp.org</email></para>
		</listitem>
		<listitem>
		<para>technical and language reviewers approved by one of the Review Coordinators</para>
		</listitem>
		<listitem>
		<para>new authors in the review process (also requires approval from one of the Review Coordinators)</para>
		</listitem>
		</itemizedlist>
		<para>Please do not apply for a CVS account if you do not qualify.</para>
		</caution>
      
		<para>
			If you qualify for a CVS account you may apply for one using the form at <ulink url="http://tldp.org/cvs/"/>
			Include information about which documents you maintain.
      	Remember your password, it will <emphasis>not</emphasis>
     		be sent in the confirmation email. 
      </para>
		</section>
		
	<section id="usingcvs">
	  <title>Using CVS</title>
		<section id="cvs-setup">
		<title>Setting Up Your CVS Account</title>
      <para> First you'll need to get an account at the LDP's CVS
      Repository. Please see the notes above on obtaining an account. This repository houses various documents including
		HOWTOs and Guides. Documents are sorted by the type of document (for
		example a HOWTO or a Guide), and by the markup language the document
		uses (for example DocBook or LinuxDoc).
		</para>

      <para>When your account is ready you can log in using one of the following commands. In all instances <replaceable>your_userid</replaceable> should be replaced by the user name you were issued in the response email. You will be prompted for a password after this first step.</para>

		<variablelist>
		<title>Initializing Your CVS Account</title>
		
		<varlistentry>
		<term>Linux system (two steps)</term>
		<listitem>
			<para><command>export <varname>CVSROOT</varname>=:pserver:<replaceable>your_userid</replaceable>@cvs.tldp.org:/cvsroot</command></para>
			<para>(this can also be added to your <filename>~/.bash_profile</filename> if you do not use any other CVS accounts.</para>
			<para>
      	<command>cvs <parameter>-d <varname>$CVSROOT</varname></parameter> login</command>
      	</para>
			</listitem>
		</varlistentry>
		<varlistentry>
		<term>Linux system (one step)</term>
		<listitem>
		<para>
            <command>cvs <parameter>-d :pserver:<replaceable>your_userid</replaceable>@cvs.tldp.org:/cvsroot</parameter> login</command>
		</para>
		</listitem>
		</varlistentry>
		<varlistentry>
		<term>Windows system</term>
		<listitem>
		<para><command>set <varname>CVSROOT</varname>=":pserver:<replaceable>your_userid</replaceable>@cvs.tldp.org:/cvsroot"</command>
		</para>
		<para><command>cvs <parameter>-d %CVSROOT%</parameter> login</command></para>
		</listitem>
		</varlistentry>
		</variablelist>

		<para> Wait patiently while the system tries to log you in. It can often take more
      that 10-20 seconds for the system to either accept (or reject)
      your password. Once you've
      used <command>cvs login</command> for the first time and have
      been given access to the system, your password is stored in
      <filename>.cvspass</filename> and you will not
      have to use <command>cvs login</command>
      again. Just set the CVSROOT with the export command listed above
      and continue on.  If TLDP's CVS server is the only one you work with, you might also add an <command>export <varname>CVSROOT</varname></command> line to your <filename>~/.bashrc</filename> shell configuration file.</para>

	</section>	
     
	<section id="get-repository">
	  <title>Getting the Documents</title>
	  <para>
         You can get the entire repository with: <command>cvs checkout LDP</command>
		</para>

      <para> Or you can get the source for your own document with:
			<command>cvs checkout LDP/howto/docbook/YOUR-HOWTO.xml</command> OR
			<command>cvs checkout LDP/guide/docbook/YOURGUIDE</command>
		</para>

		<para>Windows users will need to use a modified version of this command. Instead they should use:
			<command>cvs -d %CVSROOT% checkout LDP/howto/docbook/YOUR-HOWTO.xml</command>
		</para>

   <note><title>Keep an overview</title><para>
      <command>checkout</command> will add the full directory structure
      from tldp.org on down. Although it doesn't really matter where
      you put these files on your local file system you may not want to
      bury the directories too deeply.
   </para></note>
	</section>

	<section id="cvs-commands">
	<title>CVS Commands</title>
	<variablelist>
        <title>CVS Commands: a brief reminder</title>

        <varlistentry>
        <term>commit</term>
        <listitem><para>
			This CVS command will upload your changes to the CVS server.</para>
			<para>Please be sure to include a useful description of the changes that have been made to your document.</para>
			<para>If you want to bypass the editor screen you can use </para>
			<cmdsynopsis><command>
				cvs <option>commit</option> <option>-m "A description of the work done on this version of the document."</option>
			</command></cmdsynopsis>

		
		<note><title>Ready for publication warning</title><para>You must still email <email>submit@en.tldp.org</email> 
			when you are ready to have your changes
			appear on the live site. Your email should include the relative
			path to the file(s) in the LDP CVS tree that you wish to
			update.
        </para></note>
		
		</listitem>
        </varlistentry>

        <varlistentry>
        <term>add</term>
        <listitem><para>
		You can add new files to your CVS repository. These may be image
		files or additional XML files. First check that your HOWTO is in
		its own directory.           You may want to coordinate with the
		people at <email>submit@en.tldp.org</email> to ensure you can
		add graphics or other files to your HOWTO.
		</para>
		
		<para>
			Copy the files you want to add into your local CVS repository
			(where all of your downloaded/working files are). Then:</para> 
		<cmdsynopsis><command>cvs add <replaceable>filename</replaceable></command></cmdsynopsis>
		<para>
			After you've added the files, you still need to <command>commit</command> them to the
			repository (see above).
		</para>
		</listitem>
		</varlistentry>
		<varlistentry>
		<term>remove</term>
		<listitem>
		<para>
		</para>
		</listitem>
		</varlistentry>

       <varlistentry>
		 <term>$Id: cvs.xml,v 1.28 2004/07/15 14:20:00 emmajane Exp $</term>
        <listitem><para>
		  	While this is not a CVS <quote>command</quote> it can be used to
			automatically insert information about the file including the
			time and date it was last modified, the version number it was
			assigned by the CVS and the filename of this particular file.
			The output will look like this: 
			<computeroutput>$Id: cvs.xml,v 1.9 2002/04/21 09:44:26 serek Exp
			$</computeroutput>
        </para></listitem>
        </varlistentry>
		
		</variablelist>
		
		<para>
		If you need to change a file name, you
		still need to use the <command>add</command> command. First remove the copy of the
		file from your local disk. Then remove it from the CVS tree with:
		<command>cvs remove <replaceable>filename</replaceable></command>.
		As with the <command>add</command> command, you need to <command>&gt;commit</command> your
		removed file. Finally, now that the old file has been removed, add
		your new file using the instructions above (first <command>add</command> and then
		<command>commit</command> the additional file).
		</para>
      
		<section id="recovery">
        <title>Recovering old versions</title>
        <para>
          There you are, typing away, when you screw up.  Real bad.
          Doesn't matter what it is, but suffice it to say that you've
          toasted not only the version on your local drive, but
          created a new version on the CVS server.  What you need
          to do is go back in time and resurrect an older
          version of your file.
        </para>
        <para>
          To do this, you'll need to know the version number of the
          file you want to retrieve. <command>cvs diff</command>
          will give a list of revisions if there are differences.  You
          can pick the revision number, subtract one, and that is
          probably the revision you want to look at.
        </para>
        <para>
          The command</para>
<cmdsynopsis><command>cvs -Q update -p -r <replaceable>revision</replaceable>
          <replaceable>filename</replaceable></command></cmdsynopsis>
	  <para>will output to stdout
          the contents of the <replaceable>revision</replaceable> version
          of <replaceable>filename</replaceable>.  You can pipe it to
          <command>more</command> or redirect the output to a file.
          Conveniently, you can redirect stdout to a file called
          <replaceable>filename</replaceable>.  Your local file
          is now the revision you want, and</para>
	<cmdsynopsis><command>cvs update</command></cmdsynopsis>
	  <para>will update the CVS server with the new (old)
          version of <replaceable>filename</replaceable>.
        </para>
      </section>
		</section>
		</section>

<section id="cvs-resources">
<title>CVS Resources</title>
    <para> If you're completely new to CVS, there are a few web pages
    you may want to look at which can help you out: </para>

    <itemizedlist>
      <listitem>
        <para> <ulink url="http://cvshome.org/docs/blandy.html">http://cvshome.org/docs/blandy.html</ulink>
        </para>
      </listitem>
      <listitem>
        <para> <ulink url="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html">http://www.loria.fr/~molli/cvs/doc/cvs_toc.html</ulink></para>
      </listitem>
    </itemizedlist>
</section>
</appendix>


<!-- Appendix: Converting to DocBook XML 4.x 
-->
<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->

<appendix id="using-docbook">
<title>DocBook: Sample Markup</title>

  <section id="writing-docbook">
    <title>General Tips and Tricks</title>

    <indexterm zone="writing-docbook">
      <primary>edition</primary>
      <secondary>using DocBook</secondary>
    </indexterm>

	<para>
		For a general overview of what markup is all about, please read <xref linkend="ag-markup"/>
	</para>

<itemizedlist>
<listitem>
    <para>An editor capable of inserting elements according to the
    <acronym>DTD</acronym> will help a lot since it will enforce
    the DTD.
    This way you can be sure that no invalid elements were added
    anywhere in your document.</para>
</listitem>
<listitem>
    <para>In order to ensure that future changes are as easy as possible,
    authors should try to keep compatibility with
    the <acronym>XML</acronym> version of the DocBook DTD.  This means
    keeping element names in lower case, using double quotes in all
    attributes, and not omitting end tags. Most tools that
    automatically insert elements (like psgml+emacs) follow these
    rules automatically or with some fine tuning.</para> 
</listitem>
<listitem>
    <para>Each type of document created has a specific structure. This
	 document is in <quote>book</quote> format. Most authors, however, will
	 want to use the shorter <quote>article</quote> format instead.
	 Templates are available from <xref linkend="templates"/>.
	 </para>
</listitem>
</itemizedlist>

    <section id="useful-markup">
      <title>Useful markup</title>

      <indexterm>
        <primary>edition</primary>
        <secondary>using DocBook</secondary>
        <tertiary>markup</tertiary>
      </indexterm>

      <para><xref linkend="table-useful-markup"/> shows some markup that 
      is useful for generating generic documents. Remember that some
      elements are valid only on some contexts.</para>

      <tip><title>Check several formats</title>
        <para>Sometimes the appearance of a particular tag changes
        from one conversion format to another. As a beginner in DocBook writing,
        you may wish to see how your document looks in several formats
        before you publish them.  You are advised to look at how your document is presented in HTML, PDF and PostScript, since these formats will be made available by TLDP once you publish your document.</para>
      </tip>

      <note><title>Better too much than not enough</title>
        <para>Since the formatting depends on the output style chosen, it's
        recommended to use as much markup as possible. Even if the appearance
        of the output doesn't seem to change with the standard output
        style, there may be specific output formats that will make
        these tags stand out.</para>
      </note>

      <table id="table-useful-markup">
        <title>Useful markup</title>
        <tgroup cols="3">
          <thead>
            <row>
              <entry>Description</entry>
              <entry>Sample markup</entry>
              <entry>Result</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>E-mail address</entry>
              <entry><sgmltag class="starttag">email</sgmltag>address@domain<sgmltag class="endtag">email</sgmltag></entry>
              <entry><email>address@domain</email></entry>
            </row>
            <row>
              <entry>About the author</entry>
              <entry><sgmltag class="starttag">author</sgmltag>...<sgmltag class="endtag">author</sgmltag></entry>
              <entry>(see example below)</entry>
            </row>
            <row>
              <entry>Author's name</entry>
              <entry><programlisting>
<sgmltag class="starttag">firstname</sgmltag>Mary<sgmltag class="endtag">firstname</sgmltag>
<sgmltag class="starttag">othername</sgmltag>Margaret<sgmltag class="endtag">othername</sgmltag>
<sgmltag class="starttag">surname</sgmltag>O'Hara<sgmltag class="endtag">surname</sgmltag>
              </programlisting></entry> 
              <entry><author>
                  <firstname>Mary</firstname>
                  <othername>Margaret</othername>
                  <surname>O'Hara</surname>
                </author></entry>
            </row>
            <row>
              <entry>Keys' name (printings on the keyboard)</entry>
              <entry><sgmltag class="starttag">keycap</sgmltag>F1<sgmltag class="endtag">keycap</sgmltag></entry>
              <entry><keycap>F1</keycap></entry>
            </row>
            <row>
              <entry>Symbol represented by the keys</entry>
              <entry><sgmltag class="starttag">keysym</sgmltag>KEY_F1<sgmltag class="endtag">keysym</sgmltag></entry>
              <entry><keysym>KEY_F1</keysym></entry>
            </row>
            <row>
              <entry>Key's code</entry>
              <entry><sgmltag class="starttag">keycode</sgmltag>0x3B<sgmltag class="endtag">keycode</sgmltag></entry>
              <entry><keycode>0x3B</keycode></entry>
            </row>
            <row>
              <entry>Combinations or sequences of keys</entry>
              <entry><programlisting>
<sgmltag class="starttag">keycombo</sgmltag>
   <sgmltag class="starttag">keycap</sgmltag>Ctrl<sgmltag class="endtag">keycap</sgmltag>
   <sgmltag class="starttag">keycap</sgmltag>S<sgmltag class="endtag">keycap</sgmltag>
<sgmltag class="endtag">keycombo</sgmltag>
              </programlisting></entry> 
              <entry><keycombo>
                  <keycap>Ctrl</keycap>
                  <keycap>S</keycap>
                </keycombo></entry>
            </row>
            <row>
              <entry>Program Menus</entry>
              <entry><sgmltag class="starttag">guimenu</sgmltag>File<sgmltag class="endtag">guimenu</sgmltag></entry>
              <entry><guimenu>File</guimenu></entry>
            </row>
            <row>
              <entry>Menu Items</entry>
              <entry><sgmltag class="starttag">guimenuitem</sgmltag>Save<sgmltag class="endtag">guimenuitem</sgmltag></entry> 
              <entry><guimenuitem>Save</guimenuitem></entry>
            </row>
            <row>
              <entry>Menu Sequences</entry>
              <entry><programlisting>
<sgmltag class="starttag">menuchoice</sgmltag>
   <sgmltag class="starttag">shortcut</sgmltag>
      <sgmltag class="starttag">keycombo</sgmltag>
         <sgmltag class="starttag">keycap</sgmltag>Ctrl<sgmltag class="endtag">keycap</sgmltag>
         <sgmltag class="starttag">keycap</sgmltag>S<sgmltag class="endtag">keycap</sgmltag>
      <sgmltag class="endtag">keycombo</sgmltag>
   <sgmltag class="endtag">shortcut</sgmltag>
   <sgmltag class="starttag">guimenu</sgmltag>File<sgmltag class="endtag">guimenu</sgmltag>
   <sgmltag class="starttag">guimenuitem</sgmltag>Save<sgmltag class="endtag">guimenuitem</sgmltag>
<sgmltag class="endtag">menuchoice</sgmltag>
              </programlisting></entry>
              <entry><menuchoice>
                  <shortcut>
                    <keycombo>
                      <keycap>Ctrl</keycap>
                      <keycap>S</keycap>
                    </keycombo>
                  </shortcut>
                  <guimenu>File</guimenu>
                  <guimenuitem>Save</guimenuitem>
                </menuchoice></entry>
            </row>
            <row>
              <entry>Mouse Button</entry>
              <entry><sgmltag class="starttag">mousebutton</sgmltag>left<sgmltag class="endtag">mousebutton</sgmltag></entry> 
              <entry><mousebutton>left</mousebutton></entry>
            </row>
            <row>
              <entry>Application Names</entry>
              <entry><sgmltag class="starttag">application</sgmltag>application<sgmltag class="endtag">application</sgmltag></entry> 
              <entry><application>application</application></entry>
            </row>
            <row>
              <entry>Text Bibliographical Reference</entry>
              <entry><sgmltag class="starttag">citation</sgmltag>reference<sgmltag class="endtag">citation</sgmltag></entry> 
              <entry><citation>reference</citation></entry>
            </row>
            <row>
              <entry>Quote</entry>
              <entry><programlisting>
<sgmltag class="starttag">blockquote</sgmltag>
   <sgmltag class="starttag">attribution</sgmltag>Text Author<sgmltag class="endtag">attribution</sgmltag>
   <sgmltag class="starttag">para</sgmltag>Quote Text.<sgmltag class="endtag">para</sgmltag>
<sgmltag class="endtag">blockquote</sgmltag>
              </programlisting></entry>
              <entry><para><blockquote>
                    <attribution>Text Author</attribution>
                    <para>Quote Text.</para>
                  </blockquote></para></entry>
            </row>
            <row>
              <entry>Index</entry>
              <entry>(NA)</entry>
              <entry>See <xref linkend="encoding-index"/>.</entry>
            </row>
            <row>
              <entry>File Names</entry>
              <entry><programlisting>
<sgmltag class="starttag">filename</sgmltag>file<sgmltag class="endtag">filename</sgmltag></programlisting></entry>
              <entry><filename>file</filename></entry>
            </row>
            <row>
              <entry>Directories</entry>
              <entry><programlisting>
<sgmltag class="starttag">filename id="directory"</sgmltag>directory<sgmltag class="endtag">filename</sgmltag></programlisting></entry>
              <entry><filename class="directory">directory/</filename></entry>
            </row>
            <row>
              <entry>Emphasize Text<footnote>
                  <para>Text can be emphasized in a few ways. The most 
                  common ways are italics and bold. DocBook, however, supports only
                  italics. The use of bold requires additional settings on the 
                  style sheet used.</para>
                </footnote>
</entry>
              <entry><programlisting>
<sgmltag class="starttag">emphasis</sgmltag>text<sgmltag class="endtag">emphasis</sgmltag></programlisting></entry>
              <entry><emphasis>text</emphasis></entry>
            </row>
            <row>
              <entry>Footnotes</entry>
              <entry><programlisting>
<sgmltag class="starttag">footnote</sgmltag>
   <sgmltag class="starttag">para</sgmltag>Footnote text<sgmltag class="endtag">para</sgmltag>
<sgmltag class="endtag">footnote</sgmltag></programlisting></entry>
              <entry>(See note at the end of this table for an example)</entry>
            </row>
            <row>
              <entry>URLs</entry>
              <entry><programlisting>
<sgmltag class="starttag">ulink url="http://www.conectiva.com</sgmltag>Conectiva S.A.<sgmltag class="endtag"/></programlisting></entry> 
              <entry><ulink url="http://www.conectiva.com">Conectiva S.A.</ulink></entry>
            </row>
            <row>
              <entry>Itemized (unnumbered) List</entry>
              <entry><programlisting>
<sgmltag class="starttag">itemizedlist</sgmltag>
   <sgmltag class="starttag">listitem</sgmltag>
      <sgmltag class="starttag">para</sgmltag>item<sgmltag class="endtag">para</sgmltag>
   <sgmltag class="endtag">listitem</sgmltag>
   <sgmltag class="starttag">listitem</sgmltag>
      <sgmltag class="starttag">para</sgmltag>item<sgmltag class="endtag">para</sgmltag>
   <sgmltag class="endtag">listitem</sgmltag>
<sgmltag class="endtag">itemizedlist</sgmltag>
</programlisting></entry>
              <entry><itemizedlist>
                  <listitem>
                    <para>item</para>
                  </listitem>
                  <listitem>
                    <para>item</para>
                  </listitem>
                </itemizedlist></entry>
            </row>
            <row>
              <entry>Ordered (numbered) List</entry>
              <entry><programlisting>
<sgmltag class="starttag">orderedlist</sgmltag>
   <sgmltag class="starttag">listitem</sgmltag>
      <sgmltag class="starttag">para</sgmltag>item<sgmltag class="endtag">para</sgmltag>
   <sgmltag class="endtag">listitem</sgmltag>
   <sgmltag class="starttag">listitem</sgmltag>
      <sgmltag class="starttag">para</sgmltag>item<sgmltag class="endtag">para</sgmltag>
   <sgmltag class="endtag">listitem</sgmltag>
<sgmltag class="endtag">orderedlist</sgmltag>
</programlisting></entry>
              <entry><orderedlist>
                  <listitem>
                    <para>item</para>
                  </listitem>
                  <listitem>
                    <para>item</para>
                  </listitem>
                </orderedlist></entry>
            </row>
            <row>
              <entry>Segmented List</entry>
              <entry><programlisting>
<sgmltag class="starttag">segmentedlist</sgmltag>
   <sgmltag class="starttag">title</sgmltag>Binary to decimal conversion<sgmltag class="endtag">title</sgmltag>
   <sgmltag class="starttag">segtitle</sgmltag>Binary<sgmltag class="endtag">segtitle</sgmltag>
   <sgmltag class="starttag">segtitle</sgmltag>Decimal<sgmltag class="endtag">segtitle</sgmltag>
   <sgmltag class="endtag">seglistitem</sgmltag><sgmltag class="starttag">seg</sgmltag>00<sgmltag class="endtag">seg</sgmltag><sgmltag class="starttag">seg</sgmltag>0<sgmltag class="endtag">seg</sgmltag>
   <sgmltag class="endtag">seglistitem</sgmltag>
   <sgmltag class="starttag">seglistitem</sgmltag><sgmltag class="starttag">seg</sgmltag>01<sgmltag class="endtag">seg</sgmltag><sgmltag class="starttag">seg</sgmltag>1<sgmltag class="endtag">seg</sgmltag>
   <sgmltag class="endtag">seglistitem</sgmltag>
   <sgmltag class="starttag">seglistitem</sgmltag><sgmltag class="starttag">seg</sgmltag>10<sgmltag class="endtag">seg</sgmltag><sgmltag class="starttag">seg</sgmltag>2<sgmltag class="endtag">seg</sgmltag>
   <sgmltag class="endtag">seglistitem</sgmltag>
<sgmltag class="endtag">segmentedlist</sgmltag>
</programlisting></entry>
              <entry><segmentedlist>
                  <title>Binary to Decimal Conversion</title>
                  <segtitle>Binary</segtitle>
                  <segtitle>Decimal</segtitle>
                  <seglistitem>
                    <seg>00</seg>
                    <seg>0</seg>
                  </seglistitem>
                  <seglistitem>
                    <seg>01</seg>
                    <seg>1</seg>
                  </seglistitem>
                  <seglistitem>
                    <seg>10</seg>
                    <seg>2</seg>
                  </seglistitem>
                </segmentedlist></entry>
            </row>
            <row>
              <entry>Variable List</entry>
              <entry><programlisting>
<sgmltag class="starttag">variablelist</sgmltag>
   <sgmltag class="starttag">varlistentry</sgmltag>
      <sgmltag class="starttag">term</sgmltag>Entry 1<sgmltag class="endtag">term</sgmltag>
      <sgmltag class="starttag">listitem</sgmltag>
         <sgmltag class="starttag">para</sgmltag>Description<sgmltag class="endtag">para</sgmltag>
      <sgmltag class="endtag">listitem</sgmltag>
   <sgmltag class="endtag">varlistentry</sgmltag>
   <sgmltag class="starttag">varlistentry</sgmltag>
      <sgmltag class="starttag">term</sgmltag>Entry 2<sgmltag class="endtag">term</sgmltag>
      <sgmltag class="starttag">listitem</sgmltag>
         <sgmltag class="starttag">para</sgmltag>Description<sgmltag class="endtag">para</sgmltag>
      <sgmltag class="endtag">listitem</sgmltag>
   <sgmltag class="endtag">varlistentry</sgmltag>
<sgmltag class="endtag">variablelist</sgmltag>
</programlisting></entry>
              <entry><variablelist>
                  <varlistentry>
                    <term>Entry 1</term>
                    <listitem>
                      <para>Description</para>
                    </listitem>
                  </varlistentry>
                  <varlistentry>
                    <term>Entry 2</term>
                    <listitem>
                      <para>Description</para>
                    </listitem>
                  </varlistentry>
                </variablelist></entry>
            </row>
            <row>
              <entry>Simple Lists</entry>
              <entry><programlisting>
<sgmltag class="starttag">simplelist type="horiz" columns="3"</sgmltag>
   <sgmltag class="starttag">member</sgmltag>1<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>2<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>3<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>4<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>5<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>6<sgmltag class="endtag">member</sgmltag>
<sgmltag class="endtag">simplelist</sgmltag>
<sgmltag class="starttag">simplelist type="inline"</sgmltag>
   <sgmltag class="starttag">member</sgmltag>A<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>B<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>C<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>D<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>E<sgmltag class="endtag">member</sgmltag>
   <sgmltag class="starttag">member</sgmltag>F<sgmltag class="endtag">member</sgmltag>
<sgmltag class="endtag">simplelist</sgmltag>
</programlisting></entry>
              <entry><simplelist columns="3" type="horiz">
                  <member>1</member>
                  <member>2</member>
                  <member>3</member>
                  <member>4</member>
                  <member>5</member>
                  <member>6</member>
                </simplelist><simplelist type="inline">
                  <member>A</member>
                  <member>B</member>
                  <member>C</member>
                  <member>D</member>
                  <member>E</member>
                  <member>F</member>
                </simplelist></entry>
            </row>
            <row>
              <entry>Pictures</entry>
              <entry>(NA)</entry>
              <entry>See <xref linkend="inserting-pictures"/></entry>
            </row>
            <row>
              <entry>Glossary</entry>
              <entry><programlisting>
<sgmltag class="starttag">glossentry</sgmltag>
   <sgmltag class="starttag">glossterm</sgmltag>Term<sgmltag class="endtag">glossterm</sgmltag>
   <sgmltag class="starttag">glossdef</sgmltag>
      <sgmltag class="starttag">para</sgmltag>Definition<sgmltag class="endtag">para</sgmltag>
   <sgmltag class="endtag">glossdef</sgmltag>
<sgmltag class="endtag">glossentry</sgmltag></programlisting></entry>
              <entry>(See the glossary at the end of this document)</entry>
            </row>
            <row>
              <entry>Crossed References</entry>
              <entry><programlisting>
<sgmltag class="starttag">section id="secao"</sgmltag>
...
<sgmltag class="endtag">section</sgmltag>
<sgmltag class="starttag">section id="reference the other section"</sgmltag>
...
<sgmltag class="starttag">para</sgmltag>Please, see<sgmltag class="starttag">xref linkend="secao" /</sgmltag> for more information.</programlisting></entry>
              <entry>(NA)</entry>
            </row>
          </tbody>
        </tgroup>
      </table>

    </section>

  </section>

  <section id="section">
	<title><sgmltag class="starttag">section</sgmltag> and <sgmltag class="starttag">sectN</sgmltag>: what's the difference?</title>
		
	<note><title>Acknowledgment</title><para>
		These notes were provided by: 
		<ulink url="http://geekhavoc.com">John Daily</ulink> and
		Saqib Ali (<email>saqib@seagate.com</email>).
	</para></note>

	<para>
	<sgmltag class="starttag">section</sgmltag> versus <sgmltag class="starttag">sectN</sgmltag> is largely a
question of flexibility. The stylesheets can make a
<sgmltag class="starttag">section</sgmltag> in a <sgmltag class="starttag">section</sgmltag> look just
like a <sgmltag class="starttag">sect2</sgmltag> within a <sgmltag class="starttag">sect1</sgmltag>, so there's no output advantage.
	</para>

	<para>
		But, a <sgmltag class="starttag">section</sgmltag> within a
		<sgmltag class="starttag">section</sgmltag> can be extracted into its own
		top-level section, nested even more deeply, or moved to an
		entirely different part of the document, without it and its own
		<sgmltag class="starttag">section</sgmltag> children being renamed.  That is not true of the
		numbered section tags, which are very sensitive to
		rearrangements. This can be easier for authors who are new to
		DocBook than using <sgmltag class="starttag">sectN</sgmltag>.
	</para>

	<para>
		The main idea behind creating structured data is that it should be easy
		to access and query. One should be able to retrieve a subsection of any
structured data, by using querying languages for XML (<application>XPath</application> and <application>XQuery</application>).
		<sgmltag class="starttag">sectN</sgmltag> are useful when traversing a document using <application>XPath</application>/<application>XQuery</application>.
		<sgmltag class="starttag">sectN</sgmltag> gives more flexibility, and control while writing an <application>XPath</application>
		expression.
	</para>

	<para>
		A well-defined, valid and well-structured document makes it easier for
		one to write <application>XPath</application>/<application>Query</application> to retreive <quote>specific</quote> data from a document.
		For example you can use <application>XPath</application> to retrieve information in the
		<sgmltag class="starttag">sect3</sgmltag> block with certain attributes.
		However if you just used <sgmltag class="starttag">section</sgmltag> for all subsections,
		it becomes harder to retrieve the block of information that you need.
	</para>

	<para>
		So which one should you use? The one you feel most
		comfortable with is a good place to start. This document
		is written with <sgmltag class="starttag">section</sgmltag>s. You may,
		or may not, think this is a good idea. :)
	</para>

  </section> <!-- section and sectN -->

  <section id="commandprompt">
  	<title>Command Prompts</title>
	<para>
		There are likely as many ways of doing this as there are DocBook
		authors; however, here are two ways that you might find useful.
		Thanks to <ulink url="http://www.pratapgarh.com/appaji">Y Giridhar Appaji Nag</ulink>
		and 
		<ulink url="http://linux-ip.net/">Martin Brown</ulink>
		for the markup used here.
	</para>
	<example id="ex-programlisting">
	<title>Command Prompt with <sgmltag>programlisting</sgmltag></title>
	<screen>
<sgmltag class="starttag">programlisting</sgmltag>
	<sgmltag class="starttag">prompt</sgmltag># <sgmltag class="endtag">prompt</sgmltag><sgmltag class="starttag">userinput</sgmltag><sgmltag class="starttag">command</sgmltag>cd<sgmltag class="endtag">command</sgmltag> /some/dir<sgmltag class="endtag">userinput</sgmltag>
	<sgmltag class="starttag">prompt</sgmltag># <sgmltag class="endtag">prompt</sgmltag><sgmltag class="starttag">userinput</sgmltag><sgmltag class="starttag">command</sgmltag>ls<sgmltag class="endtag">command</sgmltag> -l<sgmltag class="endtag">userinput</sgmltag>
<sgmltag class="endtag">programlisting</sgmltag>
	</screen>

	<para>Displays as:</para>

  <programlisting>
<prompt># </prompt><userinput><command>cd</command> /some/dir</userinput>
<prompt># </prompt><userinput><command>ls</command> -l</userinput>
    </programlisting>
	</example>

	<example id="ex-screen">
	<title>Command Prompt with <sgmltag>screen</sgmltag></title>
	<para>
		First create a general entity in the internal subset at the very
		beginning of your document. This entity will define a name for the
		shortcut which you can use to display the full prompt at any point
		in your document.
		<literal>&lt;!ENTITY prompt "&lt;prompt&gt;[user@machine
		~/dir]$&lt;/prompt&gt;"&gt;</literal>
	</para>

	<para>
		For more information about entities, read <xref linkend="tools-entities"/>.
	</para>

	<screen>
<sgmltag class="starttag">screen</sgmltag>
&amp;prompt; <sgmltag class="starttag">userinput</sgmltag>cd /some/dir<sgmltag class="endtag">userinput</sgmltag>
&amp;prompt; <sgmltag class="starttag">userinput</sgmltag>ls -l<sgmltag class="endtag">userinput</sgmltag> <sgmltag class="endtag">screen</sgmltag>
	</screen>

	<para>Displays as:</para>

  <screen> 
<prompt>[user@machine ~/dir]$ </prompt><userinput>cd /some/dir</userinput> 
<prompt>[user@machine ~/dir]$ </prompt><userinput>ls -l</userinput>
  </screen>
	</example>

	<para>
		If you would like to add the output of your commands you can add
		<sgmltag class="starttag">computeroutput</sgmltag> text<sgmltag class="endtag">computeroutput</sgmltag> within the
		<sgmltag class="starttag">screen</sgmltag> or <sgmltag class="starttag">programlisting</sgmltag>
		as appropriate.
	</para>
  </section>

  <section id="encoding-index">
    <title>Encoding Indexes</title>

    <indexterm zone="encoding-index">
      <primary>edition</primary> <secondary>index</secondary>
    </indexterm>

    <para>The generation of indexes depends on the markups inserted in
    the text.</para>

    <para>Such markups will be processed afterwards by an external
    tool and will generate the index. An example of such a
    tool is the <filename>collateindex.pl</filename> script
    (see <xref linkend="automatic-indexes"/>). Details about the
    process used to generate these indexes are shown in <xref linkend="automatic-indexes"/>.</para>

    <para>The indexes have nesting levels. The markup of an index is
    done by the code <xref linkend="example-code-index"/>.</para>

    <example id="example-code-index">
      <title>Code for the generation of an index</title> 
<programlisting>
<sgmltag class="starttag">indexterm</sgmltag>
   <sgmltag class="starttag">primary</sgmltag>Main level<sgmltag class="endtag">primary</sgmltag>
   <sgmltag class="starttag">secondary</sgmltag>Second level<sgmltag class="endtag">secondary</sgmltag> 
	<sgmltag class="starttag">tertiary</sgmltag>Third level<sgmltag class="endtag">tertiary</sgmltag>
	<sgmltag class="endtag">indexterm</sgmltag>
</programlisting>
</example>

    <para>It is possible to refer to chapters, sections, and other
    parts of the document using the <glossterm>attribute</glossterm>
    <sgmltag class="attribute">zone</sgmltag>.</para>

    <example id="index-zone">
      <title>Use of the attribute <sgmltag class="attribute">zone</sgmltag></title> 
		<programlisting>
<sgmltag class="starttag">section id="encoding-index"</sgmltag>
<sgmltag class="starttag">title</sgmltag>Encoding Indexes<sgmltag class="endtag">title</sgmltag>
<sgmltag class="starttag">indexterm zone="encoding-index"</sgmltag>
<sgmltag class="starttag">primary</sgmltag>edition<sgmltag class="endtag">primary</sgmltag> <sgmltag class="starttag">secondary</sgmltag>index<sgmltag class="endtag">secondary</sgmltag>
<sgmltag class="endtag">indexterm</sgmltag>

<sgmltag class="starttag">para</sgmltag>
	The generation of indexes depend on the inserted markups on the text.
<sgmltag class="endtag">para</sgmltag>
</programlisting>
</example>

    <para>The <xref linkend="index-zone"/> has the code used to
    generate the entry of this edition on the index. In fact, since
    the attribute <sgmltag class="attribute">zone</sgmltag> is used,
    the index statement could be located anywhere in the document or
    even in a separate file.  </para>

    <para>However, to facilitate maintenance the entries for the index
    were all placed after the text to which it refers.	</para>

    <example id="ex-index">
      <title>Usage of values <sgmltag class="attvalue">startofrange</sgmltag> and <sgmltag class="attvalue">endofrange</sgmltag> on the attribute<sgmltag class="attribute">class</sgmltag></title> <programlisting>
    <sgmltag class="starttag">para</sgmltag>Typing the text normally
    sometimes there's the need of
   <sgmltag class="starttag">indexterm class="startofrange"
   id="example-band-index"</sgmltag>
      <sgmltag class="starttag">primary</sgmltag>examples<sgmltag class="endtag">primary</sgmltag> <sgmltag class="starttag">secondary</sgmltag>index<sgmltag class="endtag">secondary</sgmltag>
   <sgmltag class="endtag">indexterm</sgmltag> mark large amounts of
   text.<sgmltag class="endtag">para</sgmltag>

   <sgmltag class="starttag">para</sgmltag>Keep inserting the paragraphs
   normally.<sgmltag class="endtag">para</sgmltag>

   <sgmltag class="starttag">para</sgmltag>Until the end of the section
   intended to be indexed.  <sgmltag class="starttag">indexterm
   startref="example-band-index" class="endofrange"</sgmltag>.
   <sgmltag class="endtag">para</sgmltag></programlisting>
    </example>

  </section>

  <section id="inserting-pictures">
    <title>Inserting Pictures</title>

    <indexterm zone="inserting-pictures">
      <primary>graphics</primary> <secondary>inserting</secondary>
      <tertiary><sgmltag class="starttag">graphic</sgmltag></tertiary>
    </indexterm> <indexterm zone="inserting-pictures">
      <primary>figures</primary> <secondary>inserting</secondary>
      <tertiary><sgmltag class="starttag">figure</sgmltag></tertiary>
    </indexterm>


    <para>It is necessary to insert pictures formats for all possible
	 finished document types. For example: JPG files for web pages and EPS
	 for PostScript and PDF files.</para>

    <para>If you use the TeX format you'll need the images as
    a PostScript file. For on-line publishing you can use any
    kind of common image file, such as <acronym>JPG</acronym>,
    <acronym>GIF</acronym> or <acronym>PNG</acronym>.</para>

    <para>
      The easiest way to insert pictures is to use the <sgmltag class="attribute">fileref</sgmltag> attribute. Usually pictures are
      generated in <acronym>JPG</acronym> and in PostScript (PS or EPS).
   </para>

    <example id="ex-picture-fileref">
      <title>Inserting a picture</title> <programlisting>
<sgmltag class="starttag">figure</sgmltag>
   <sgmltag class="starttag">title</sgmltag>Picture's
   Title<sgmltag class="endtag">title</sgmltag> <sgmltag class="starttag">graphic fileref="images/file"</sgmltag><sgmltag class="endtag">graphic</sgmltag>
<sgmltag class="endtag">figure</sgmltag> </programlisting>
    </example>

    <para>Replacing <sgmltag class="starttag">figure</sgmltag> by
    <sgmltag class="starttag">informalfigure</sgmltag> eliminates the
    need to insert a title for the picture.</para>

    <para>There's still the <sgmltag class="attribute">float</sgmltag>
    attribute on which the value <literal>0</literal> indicates that
    the picture should be placed exactly where the tag appears. The
    value <literal>1</literal> allows the picture to be moved to a
    more convenient location (this location can be described on the
    style sheet, or it can be controlled by the application).</para>

	 <section id="acceptedgfx">
      <title>Graphics formats</title> <para> When
      submitting graphics to the LDP, please submit one
      set of graphics in <filename>.eps</filename>, and
      another in <filename moreinfo="none">.gif</filename>,
      <filename moreinfo="none">.jpg</filename> or <filename moreinfo="none"> .png</filename>. The preferred format is
      <filename moreinfo="none"> .png</filename> or <filename moreinfo="none">.jpg</filename> due to patent problems with
      <filename moreinfo="none">.gif</filename>.  </para> <para>
      You can use <filename moreinfo="none">.jpg</filename> files for
      continuous-tone images such as photos or images with gradual
      changes in color.  Use <filename moreinfo="none">.png</filename>
      for simple images like diagrams, some screen shots, and images
      with a low number of colors.  </para>
    </section>

    <section id="inserting-figures-mediaobject">
      <title>Alternative Methods</title>

      <indexterm zone="inserting-figures-mediaobject">
	<primary>graphics</primary>
	<secondary>inserting</secondary> <tertiary><sgmltag class="starttag">mediaobject</sgmltag></tertiary>
      </indexterm> <indexterm zone="inserting-figures-mediaobject">
	<primary>figures</primary>
	<secondary>inserting</secondary> <tertiary><sgmltag class="starttag">mediaobject</sgmltag></tertiary>
      </indexterm>

      <para>The first alternative to <xref linkend="ex-picture-fileref"/>
      is to eliminate the <sgmltag class="starttag">figure</sgmltag> or
      <sgmltag class="starttag">informalfigure</sgmltag> elements.</para>

      <para>Another interesting alternative when you have
      decided to publish the text on media where pictures
      are not accepted, is the use of a wrapper, <sgmltag class="starttag">imageobject</sgmltag>.</para>

      <example id="former-figure-imageobject">
	<title>Using <sgmltag class="starttag">imageobject</sgmltag></title> <programlisting>
<sgmltag class="starttag">figure</sgmltag>
   <sgmltag class="starttag">title</sgmltag>Title<sgmltag class="endtag">title</sgmltag> 
   <sgmltag class="starttag">mediaobject</sgmltag>
      <sgmltag class="starttag">imageobject</sgmltag>
	 <sgmltag class="starttag">imagedata fileref="images/file.eps" format="EPS"</sgmltag>
      <sgmltag class="endtag">imageobject</sgmltag> 
   <sgmltag class="starttag">imageobject</sgmltag>
	 <sgmltag class="starttag">imagedata fileref="images/file.jpg" format="JPG"</sgmltag>
      <sgmltag class="endtag">imageobject</sgmltag> 
      <sgmltag class="starttag">textobject</sgmltag>
	 <sgmltag class="starttag">phrase</sgmltag>Here there's an image of this example<sgmltag class="endtag">phrase</sgmltag>
      <sgmltag class="endtag">textobject</sgmltag> 
   <sgmltag class="starttag">caption</sgmltag>
   <sgmltag class="starttag">para</sgmltag>Image Description. Optional. <sgmltag class="endtag">para</sgmltag>
   <sgmltag class="endtag">caption</sgmltag>
   <sgmltag class="endtag">mediaobject</sgmltag>
<sgmltag class="endtag">figure</sgmltag> </programlisting>
      </example>

      <para>Files using the following formats are available <simplelist type="inline">
	<member>BMP</member> <member>CGM-BINARY</member>
	<member>CGM-CHAR</member> <member>CGM-CLEAR</member>
	<member>DITROFF</member> <member>DVI</member>
	<member>EPS</member> <member>EQN</member> <member>FAX</member>
	<member>GIF</member> <member>GIF87A</member>
	<member>GIF89A</member> <member>IGES</member>
	<member>JPEG</member> <member>JPG</member>
	<member>LINESPECIFIC</member> <member>PCX</member>
	<member>PIC</member> <member>PS</member> <member>SGML</member>
	<member>TBL</member> <member>TEX</member> <member>TIFF</member>
	<member>WMF</member> <member>WPG</member>
      </simplelist>.</para>

      <para>This method presents an advantage: a better
      control of the application. The elements <sgmltag class="starttag">imageobject</sgmltag> are consecutively tested
      until one of them is accepted. If the output format does not
      support images the <sgmltag class="starttag">textobject</sgmltag>
      element will be used. However, the biggest advantage in usage
      of the format <xref linkend="former-figure-imageobject"/>
      is that in DocBook <literal>5.0</literal>, the <sgmltag class="starttag">graphic</sgmltag> element will cease to
      exist.</para>

      <para>As a disadvantage, there is the need for more than one
      representation code of the same information. It is up to the
      author to decide how they will implement illustrations and
      pictures in the document, but for compatibility with future
      versions <emphasis>I recommend</emphasis> the use of this method
      for pictures and graphics.</para>

		<warning><title>Title page exception</title><para>
			<sgmltag class="starttag">mediaobject</sgmltag>s will not display if they are
			used on a title page. For more information read:
			<ulink url="http://www.sagehill.net/docbookxsl/HtmlCustomEx.html#HTMLTitlePage"/>
		</para></warning>

		<note><title>ASCII Images</title><para>
			You may also want to try converting your image to an ASCII
			representation of the file. <application>JavE</application>
			(Java ASCII Versatile Editor) can do this conversion for you. 
			It can be downloaded from <ulink url="http://www.jave.de/"/>. It has an easy to use GUI interface.
			</para>
			
			<para>
				If you're more command-line oriented you may want to try:
			<application>tgif</application>
			(<ulink url="http://bourbon.usc.edu:8001/tgif/"/>) and
			AA-Lib (<ulink url="http://aa-project.sourceforge.net/"/>).
		</para></note>

    </section>

  </section>

<section id="metadata-markup"> <title>Markup for Metadata</title>

<section id="crediting">
	<title>Crediting Translators, Converters and Co-authors</title>

    <para>There are several ways that these folks, as well as other
    contributors to your document, can be given some recognition for
    the help they've given you.</para>

    <section id="crediting-othercredit"> <title><sgmltag class="starttag">othercredit</sgmltag></title>

      <para>All translators, converters and co-authors
		should be credited with an
      <sgmltag class="starttag">othercredit</sgmltag> tag entry.
      To properly credit a translator or converter, use the <sgmltag class="starttag">othercredit</sgmltag> tag with
		the <sgmltag>role</sgmltag>
      attribute set to <quote>converter</quote> or
		<quote>translator</quote>,
      as indicated in the example below:</para>

<example id="ex-othercredit">
<title>Other Credit</title>
      <screen>
<sgmltag class="starttag">othercredit role='converter'</sgmltag>
  <sgmltag class="starttag">firstname</sgmltag>David<sgmltag class="endtag">firstname</sgmltag> 
  <sgmltag class="starttag">surname</sgmltag>Merrill<sgmltag class="endtag">surname</sgmltag> 
  <sgmltag class="starttag">contrib</sgmltag>Conversion from HTML to DocBook v3.1 (SGML).<sgmltag class="endtag">contrib</sgmltag>
<sgmltag class="endtag">othercredit</sgmltag>
</screen>
</example>
</section>

<section id="crediting-editors">
<title>Crediting Editors and Reviewers</title>
<para>
	To help track the review process all new documents must include a
	reference to the reviewers for the <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/techreview.html">technical</ulink>,
	<ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/languagereview.html">language</ulink>
	and <ulink url="http://www.tldp.org/HOWTO/LDP-Reviewer-HOWTO/metadatareview.html">metadata</ulink>
	reviews.
</para>

<example id="ex-editor">
<title>Editor</title>
<screen>
<sgmltag class="starttag">editor</sgmltag>
  <sgmltag class="starttag">firstname</sgmltag>Tabatha<sgmltag class="endtag">firstname</sgmltag> 
  <sgmltag class="starttag">surname</sgmltag>Marshall<sgmltag class="endtag">surname</sgmltag> 
  <sgmltag class="starttag">contrib</sgmltag>Language review of version 0.8<sgmltag class="endtag">contrib</sgmltag>
<sgmltag class="endtag">editor</sgmltag>
</screen>
</example>
</section>

</section>

    <section id="crediting-version">
      <title><sgmltag class="starttag">revremark</sgmltag>s</title>

      <para>Within the <sgmltag class="starttag">revision</sgmltag>
		tag hierarchy is a tag called <sgmltag class="starttag">revremark</sgmltag>. Within this tag,
      you can make any brief notes you wish about each
		particular revision of your document.</para>
    </section>

    <section id="acceptedrev">
      <title> Revision History </title> <para> The <sgmltag class="starttag">revhistory</sgmltag> tag should be used to denote
      the various revisions of the document. Specify the date, revision
      number and comments regarding what has changed.</para> <para>
       Revisions should be listed with the most-recent version at the
       top (list in descending order).
      </para>
    </section>

    <section id="accepteddates">
      <title> Date formats </title> <para> The <sgmltag class="starttag">pubdate</sgmltag> tag in your header should list
      the publication date of this particular version of the document
      (coincide with the revision date).  It should be in the following
      format: </para> <programlisting format="linespecific"><sgmltag class="starttag">pubdate</sgmltag>2002-04-25<sgmltag class="endtag">pubdate</sgmltag></programlisting>
      <para>
	The date is in the format YYYY-MM-DD, which is one of the <ulink url="http://www.w3.org/TR/NOTE-datetime">ISO 8601</ulink>
	standard formats for representing dates.  For you Yanks out
	there (me too), think of it as going from the largest unit of
	time to the smallest.
      </para>
    </section>

    <section id="sampleai">
      <title> Sample Article (or Book) Information Element </title>
      <para> Here is a sample of a complete DocBook (SGML or XML)
      <sgmltag class="starttag">articleinfo</sgmltag> element
      which contains some of the items and constructs previously
      described. </para> 

<example id="sample-metadata">
<title>Sample Meta Data</title>
<programlisting>
<![CDATA[<!--
   Above these lines in a typical DocBook article would be the article
   element (the immediate parent of the articleinfo element) and above
   that typically, the DOCTYPE declaration and internal subset.
  -->]]>

<sgmltag class="starttag">articleinfo</sgmltag>

  &lt;!-- 
  	Use "HOWTO", "mini HOWTO", "FAQ" in title, if appropriate
  --&gt; 
  
<sgmltag class="starttag">title</sgmltag>Sample HOWTO<sgmltag class="endtag">title</sgmltag>

<sgmltag class="starttag">author</sgmltag>   
	<sgmltag class="starttag">firstname</sgmltag>Your Firstname<sgmltag class="endtag">firstname</sgmltag>
	<sgmltag class="starttag">surname</sgmltag>Your Surname<sgmltag class="endtag">surname</sgmltag>
	<sgmltag class="starttag">affiliation</sgmltag>
		<sgmltag class="starttag">address</sgmltag><sgmltag class="starttag">email</sgmltag>your email<sgmltag class="endtag">email</sgmltag><sgmltag class="endtag">address</sgmltag>
		<sgmltag class="endtag">affiliation</sgmltag>
<sgmltag class="endtag">author</sgmltag>

<sgmltag class="starttag">editor</sgmltag>
  <sgmltag class="starttag">firstname</sgmltag>Tabatha<sgmltag class="endtag">firstname</sgmltag> 
  <sgmltag class="starttag">surname</sgmltag>Marshall<sgmltag class="endtag">surname</sgmltag> 
  <sgmltag class="starttag">contrib</sgmltag>Language review of version 0.8<sgmltag class="endtag">contrib</sgmltag>
<sgmltag class="endtag">editor</sgmltag>

<sgmltag class="starttag">othercredit role='converter'</sgmltag>
  <sgmltag class="starttag">firstname</sgmltag>David<sgmltag class="endtag">firstname</sgmltag> 
  <sgmltag class="starttag">surname</sgmltag>Merrill<sgmltag class="endtag">surname</sgmltag> 
  <sgmltag class="starttag">contrib</sgmltag>Conversion from HTML to DocBook v3.1 (SGML).<sgmltag class="endtag">contrib</sgmltag>
<sgmltag class="endtag">othercredit</sgmltag>

   <sgmltag class="starttag">pubdate</sgmltag>YYYY-MM-DD<sgmltag class="endtag">pubdate</sgmltag>

	<sgmltag class="starttag">revhistory</sgmltag>
		<sgmltag class="starttag">revision</sgmltag>
		<sgmltag class="starttag">revnumber</sgmltag>1.0<sgmltag class="endtag">revnumber</sgmltag>
		<sgmltag class="starttag">date</sgmltag>YYYY-MM-DD<sgmltag class="endtag">date</sgmltag>
		<sgmltag class="starttag">authorinitials</sgmltag>ABC<sgmltag class="endtag">authorinitials</sgmltag>
		<sgmltag class="endtag">revremark</sgmltag>first official release<sgmltag class="endtag">revremark</sgmltag>
		<sgmltag class="endtag">revision</sgmltag>
		
		<sgmltag class="starttag">revision</sgmltag>
		<sgmltag class="starttag">revnumber</sgmltag>0.9<sgmltag class="endtag">revnumber</sgmltag>
		<sgmltag class="starttag">date</sgmltag>YYYY-MM-DD<sgmltag class="endtag">date</sgmltag>
		<sgmltag class="starttag">authorinitials</sgmltag>ABC<sgmltag class="endtag">authorinitials</sgmltag>
		<sgmltag class="starttag">revremark</sgmltag>First draft<sgmltag class="endtag">revremark</sgmltag>
		<sgmltag class="endtag">revision</sgmltag>
	<sgmltag class="endtag">revhistory</sgmltag>

   &lt;!-- 
		Provide a good abstract; a couple of sentences is sufficient
   --&gt;

  <sgmltag class="starttag">abstract</sgmltag>    
		<sgmltag class="starttag">para</sgmltag>
       This is a sample DocBook (SGML or XML) HOWTO which has been
       constructed to serve as a template.
		<sgmltag class="endtag">para</sgmltag>
	<sgmltag class="endtag">abstract</sgmltag>

<sgmltag class="endtag">articleinfo</sgmltag>
</programlisting>
</example>

</section>
</section> <!-- end of metadata-markup -->

<section id="doc-bib">
	<title>Bibliographies</title>
	<para>
		Not everyone will choose to use the correct formatting for a
		bibliography. Most will use a list of some kind. And that's ok. But
		when you're ready to move to the next level, here's how to do it.
	</para>

	<para>
		Below are two examples of bibliographic entries. The first is a very
		simple entry. It has only a title, URL and possibly a short
		description (abstract). The second is a little more complex and is
		for a full entry (for instance a book) with an ISBN, publisher and copyright
		date.
	</para>

	<note><title>DocBook requirements for bibliographic references</title>
		<para>
			At least one element within <sgmltag class="starttag">biblioentry</sgmltag> is
			required, but it doesn't matter which one you have. So you might
			have a <sgmltag class="starttag">title</sgmltag>, or a URL (<sgmltag class="starttag">bibliosource</sgmltag>), or an
			<sgmltag class="starttag">author</sgmltag>, or, ...
		</para>
		<para>
			For a full list of all options, visit <ulink url="http://docbook.org/tdg/en/html/biblioentry.html"/>. For
			more examples visit <ulink url="http://docbook.org/tdg/en/html/bibliography.html"/>.
		</para>
	</note>

	<caution><title>Displaying <sgmltag class="starttag">abstract</sgmltag> content</title>
		<para>
			By default <sgmltag class="starttag">abstract</sgmltag>s do not display on web
			pages. You need to modify the <filename>biblio.xsl</filename> file.
			Do a search for the word <quote>abstract</quote> and then add
			this information inside the &lt;xsl:template&gt; tags. If that
			doesn't make sense, don't worry about it too much, but do be
			aware that it's required for the abstracts to show up.
			<!-- it is not automatic, you must change the biblio.xsl file.
			-->
		</para>

		<screen>
&lt;div xmlns="http://www.w3.org/1999/xhtml" class="{name(.)}"&gt;
    &lt;xsl:apply-templates mode="bibliography.mode"/&gt;
&lt;/div&gt;
		</screen>
	</caution>

	<example id="ex-bib">
	<title>A Bibliography</title>
	<screen>
<sgmltag class="starttag">bibliography</sgmltag>
<sgmltag class="starttag">title</sgmltag>Bibliography title<sgmltag class="endtag">title</sgmltag>

<sgmltag class="starttag">bibliodiv</sgmltag>
<sgmltag class="starttag">title</sgmltag>Section title<sgmltag class="endtag">title</sgmltag>
<sgmltag class="starttag">biblioentry</sgmltag>
<sgmltag class="starttag">title</sgmltag>Book or Web Site Title<sgmltag class="endtag">title</sgmltag>
<sgmltag class="starttag">bibliosource</sgmltag><sgmltag class="emptytag">ulink url=""</sgmltag><sgmltag class="endtag">bibliosource</sgmltag>
<sgmltag class="starttag">abstract</sgmltag><sgmltag class="endtag">abstract</sgmltag>
<sgmltag class="endtag">biblioentry</sgmltag>

<sgmltag class="starttag">biblioentry</sgmltag>
<sgmltag class="starttag">title</sgmltag><sgmltag class="endtag">title</sgmltag>
<sgmltag class="starttag">bibliosource</sgmltag><sgmltag class="emptytag">ulink url=""</sgmltag><sgmltag class="endtag">bibliosource</sgmltag>
<sgmltag class="starttag">author</sgmltag><sgmltag class="starttag">firstname</sgmltag><sgmltag class="endtag">firstname</sgmltag><sgmltag class="starttag">surname</sgmltag><sgmltag class="endtag">surname</sgmltag><sgmltag class="endtag">author</sgmltag>
<sgmltag class="starttag">copyright</sgmltag><sgmltag class="starttag">year</sgmltag><sgmltag class="endtag">year</sgmltag>
<sgmltag class="starttag">holder</sgmltag><sgmltag class="endtag">holder</sgmltag><sgmltag class="endtag">copyright</sgmltag>
<sgmltag class="starttag">editor</sgmltag><sgmltag class="starttag">firstname</sgmltag><sgmltag class="endtag">firstname</sgmltag><sgmltag class="starttag">surname</sgmltag><sgmltag class="endtag">surname</sgmltag><sgmltag class="endtag">editor</sgmltag>
<sgmltag class="starttag">isbn</sgmltag><sgmltag class="endtag">isbn</sgmltag>
<sgmltag class="starttag">publisher</sgmltag>
<sgmltag class="starttag">publishername</sgmltag><sgmltag class="endtag">publishername</sgmltag>
<sgmltag class="endtag">publisher</sgmltag>
<sgmltag class="starttag">abstract</sgmltag><sgmltag class="endtag">abstract</sgmltag>
<sgmltag class="endtag">biblioentry</sgmltag>
<sgmltag class="endtag">bibliodiv</sgmltag>
<sgmltag class="endtag">bibliography</sgmltag>
	</screen>

	<para>
		View <xref linkend="bibliography"/> to see this in action.
	</para>

	</example>
</section>

	 <section id="tools-entities"> <title>Entities (shortcuts,
	 text macros and re-usable text)</title>

       <indexterm zone="tools-writing">
	<primary>entities</primary> <secondary>parameters</secondary>
	<tertiary>usage</tertiary>
      </indexterm>

		<para>
			There may be some segments of text, or markup
			that you want to use over and over again. Instead
			of typing it up multiple times (and then having
			to edit it multiple times if you want to make
			a change) you can use <glossterm>external
		entities</glossterm>. Entities can give you a short
		cut to:
			re-using whole documents, text snippets, and
			special markup.  Some common ways to use an
			entity would be for:
		</para>

		<itemizedlist>
			<listitem><formalpara> <title>text macros
			for markup</title> <para>An example would be a company
			URL. By using a parameter entity you
			could refer simply to &amp;my-company-url;
			instead of typing out the full &lt;ulink
			url="http://foo.bar"&gt;Foo.bar&lt;/ulink&gt;
			each time.  </para> </formalpara></listitem>

			<listitem><formalpara> <title>software
			license</title> <para>Such as the GNU Free
			Documentation License: it is long. And must
			be included in full in each document. By
			leaving the license in a separate file you can
			easily include it in many documents without
			having to redo the markup each time.  </para>
			</formalpara></listitem>

			<listitem><formalpara> <title>repeated
			text</title> <para>For instance an introduction to a
			topic which is included both as a summary in
			one section and as an introduction to the full
			information in another. Saves on editing time if
			you need to make changes to both sets of text.
			</para> </formalpara> </listitem>
		</itemizedlist>

			<example id="ex-entities"> <title>Adding
			Entities</title> <screen>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ 
&lt;-- I can add comments here --&gt; 
&lt;!ENTITY shortcut "Replace 'shortcut' with this text."&gt; 

&lt;!ENTITY sc-to-a-file SYSTEM "anotherfile.xml"&gt;
&lt;-- note: the square bracket on the third line is closed on the next
line--&gt; ]&gt;
			</screen> </example>

		<para>
			To use these entities simply insert the name
			you gave the entity between a <quote>&amp;</quote> (ampersand) and a <quote>;</quote> (semicolon). For
			example: <quote>&amp;shortcut;</quote> would expand into <quote>Replace
			'shortcut' with this text</quote>; <quote>&amp;sc-to-a-file;</quote>
			would include the full contents of whatever
			is in <replaceable>anotherfile.xml</replaceable>.
		</para>

      <para>An important feature while writing a text is the ability to
      check whether or not it will be presented in the final draft. It is
      common to have several parts of the text marked as draft,
      especially when updating an already existing document.</para>

      <para>With the use of parameter entities, you can include or
      eliminate these drafts by altering only one line at the beginning
      of a document.</para>

      <example id="ex-entity-parameters">
	<title>Use of parameter entities</title> <programlisting>
<sgmltag class="starttag">!ENTITY % review "INCLUDE"</sgmltag> ...
<sgmltag class="starttag">![%review;[ &lt;para&gt;This paragraph will
be included on the draft when the entity "review" is defined with the
value "INCLUDE". &lt;/para&gt; ]]</sgmltag>
	</programlisting>
      </example>

      <indexterm zone="ex-entity-parameters">
	<primary>entities</primary> <secondary>parameters</secondary>
	<tertiary>example</tertiary>
      </indexterm>

      <para>The entity <literal>review</literal> might have several texts
      defined, as in <xref linkend="ex-entity-parameters"/>. When the
      changes to the text are considered final, you need only to remove
      parts of the text between the 3<superscript>rd.</superscript>
      and 6<superscript>th.</superscript> lines.</para>

      <para>To keep the draft definitions and hide the text in the
      final draft, just alter the specification of the entity from
      <literal>INCLUDE</literal> to <literal>IGNORE</literal>.</para>
    </section>

    <section id="namedfiles">
      <title>Customizing your HTML files</title> 
		
		<section id="filenames">
		<title>HTML file names</title>
		<para>By default,
      when separate HTML files are made, the SGML processor will assign
      arbitrary names to the resulting files.  This can be confusing
      to readers who may bookmark a page only to have it change.
      Whatever your reasoning, here's how to make separate files
      named the way you want:</para> <para>In your first <sgmltag class="starttag">article</sgmltag> tag (which should be the only
      one) include an <parameter>id</parameter> parameter and call it <quote>index</quote>.  This will make
      your tag look like this:</para>

      <programlisting format="linespecific">
<sgmltag class="starttag">article id="index"</sgmltag> </programlisting>

      <para>Do not modify the first
		<sgmltag class="starttag">chapter</sgmltag>
      tag, as it's usually an introduction and you want that on the first
      page.  For each other <sgmltag class="starttag">section</sgmltag>
      tag, include the id parameter and name it.  A name should include
      only alphanumeric characters, and it should be short enough to
      understand what it is.</para>

<programlisting format="linespecific"> 
	<sgmltag class="starttag">chapter id="tips"</sgmltag> 
</programlisting>

<note><title>Pick section IDs intelligently</title><para>
	We all know that <ulink url="http://www.w3.org/Provider/Style/URI.html">Cool URIs Don't
	Change</ulink>. This means your ids should not change either. Unless of
	course the content for the id has changed substantially and the id name is no longer
	relevant.
</para></note>

	<warning><title>HTML file name generation using Jade</title><para>
		If you are using <application>Jade</application> to transform
		your DocBook into HTML you must use the following parameter:
		<parameter>-V %use-id-as-filename%</parameter>.
	</para></warning>
	</section>

	<section id="header">
		<title>Headers and Footers</title>
		<para>
			There is no <quote>easy</quote> way to add headers and
			footers to your document. If you are using DocBook XSL and
			doing your own document transformations you
			may customize the XSL template to suit your needs. For more
			information read <ulink url="http://www.sagehill.net/docbookxsl/HTMLHeaders.html"/>.
		</para>

	</section>

</section>

</appendix>


<!-- Appendix: Converting Documents 2 DocBook -->
<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<appendix id="x2docbook">
	<title>Converting Documents to DocBook XML</title>
  
    <section id="xmldifferences">
      <title>Differences between XML and SGML</title>
      <para>
        There are a few changes between DocBook XML and SGML.  Handling
        these differences should be relatively easy for most small documents,
        and many authors will not need to make any changes
		to convert their documents other than the XML and DocBook 
		declarations at the start of their document.
      </para>

      <para>
        For others, here is a list of what you should keep in mind
        when converting your documents from SGML to XML.
      </para>

	  <note><title>Differences between XML and SGML elements</title>
	  <para>
	  	An XML element typically has three parts: the start tag,
		the content (your words) and the end tag. Qualifiers
		are added in the start tag and are known as
		attributes. They will always have a name and a
		quoted value.</para>
	  <screen>
&lt;filename class="directory"&gt;/usr/local&lt;filename&gt;
	</screen>
	  <para>
	  The start tag contains one attribute (class)
	  with a value of <quote>directory</quote>. The end tag (also filename)
	  must not contain any attributes.
	  </para>
	  </note>

      <itemizedlist>
        <listitem>
          <para>
            Element names (tags) and their attributes are 
			case-dependent--typically lowercase. 
			The following will not validate because the end tag
			&lt;PARA&gt; is uppercase:
          </para>
<screen>
&lt;para&gt;This part will fail XML validation&lt;/PARA&gt;
</screen>
        </listitem>

        <listitem>
          <para>
            All attributes in the start tag must be
			"quoted".  This can
            be either single (') or double (") quotes, but
			not
            reverse (`) or <quote>smart quotes</quote>. 
			The quote used to start a name="value"
			pair must be the same quote used at the end of
			the value. In other words: "this" would
			validate, but 'that" would not.
          </para>
        </listitem>

        <listitem>
          <para>
            Tags that have a start tag, but no end tag are
			referred to as <quote>empty</quote> because they do
			not contain (wrap around) anything. These tags must still be
			closed with a trailing slash (/). For example: 
			<sgmltag>xref</sgmltag> must be written as 
			&lt;xref linkend="software"/&gt;. You may not 
			have any spaces between the / and &gt;.
			(Although you may have a space after the final
			attribute: &lt;xref linkend="foo" /&gt;.)
          </para>
        </listitem>

        <listitem>
          <para>
            Processing instructions that get sent to the transformation
				engine (DSSSL or XSLT) and must have a question mark at the
            end of the tag.  All processing instructions are removed from
				the output stream. The XML version of this tag
			would look like this:
          </para>
<screen>
&lt;?dbhtml filename="foo"?&gt;
</screen>
        </listitem>

        <listitem>
          <para>
            If you're converting from SGML to XML, be sure 
			file names refer to .xml files instead of .sgml.  
			Some tools may get confused if a .sgml file contains XML.
          </para>
        </listitem>

        <listitem>
          <para>
            Tag minimizations were used in SGML instead of
			writing out the element name in the end tag.
			Example: <sgmltag class="starttag">para</sgmltag>This is foo.<sgmltag class="endtag"/> Tag minimizations are
			not supported in XML and their use is
			discouraged in DocBook.
          </para>
        </listitem>

      </itemizedlist>
    </section>

    <section id="differences">
      <title>Changing DTDs</title>
      <para>
        The significant changes between version changes in the DTD
		involve changes to the elements (tags). Elements may be:
		deprecated (which means they will be removed in
		future versions); removed; modified; or added.
		Almost all authors will run into a changed or 
		deprecated tag when going from a lower version 
		of DocBook to a higher version.
	</para>
	<para>
		<citetitle>DocBook: The Definitive Guide</citetitle> does
		an excellent job of showing you how elements fit
		together. For each element it tells you what an
		element must contain (its content model) and what is
		may be contained in (who its parents are). For
		example: a <sgmltag>note</sgmltag> must contain a
		<sgmltag>para</sgmltag>. If you try to write
		&lt;note&gt;Content in a
		note&lt;/note&gt; your document will not validate.
		Learning how elements are assembled will make it a
		lot easier to understand any validation errors that
		are thrown at you. If you get truly stuck you can
		also email the LDP's docbook mailing list for extra
		hints. Information on subscribing is available from
		<xref linkend="mailinglists"/>
	</para>
	<para>
        All tags that have been deprecated or changed for 4.x are listed
        in <citetitle>DocBook: The definitive guide</citetitle>, 
		published by O'Reilly and Associates. This book is
		also available on-line from <ulink url="http://www.docbook.org">http://www.docbook.org</ulink>.
      </para>

	<section id="differences3040">
	<title>Differences between version 3.x and 4.x</title>
	<para>
		Here are a few elements that are of particular
		relevance to LDP authors:
	</para>
	<itemizedlist>
        <listitem>
          <formalpara>
            <title><sgmltag>artheader</sgmltag></title>
			<para>has been changed to
			<sgmltag>articleinfo</sgmltag>.
            Most other header elements have been renamed to info.
          </para>
			 </formalpara>
        </listitem>

        <listitem>
          <formalpara>
            <title><sgmltag>graphic</sgmltag></title> 
			<para>has been deprecated and will be removed as of DocBook 5.x.
			To prepare for this, start using 
			<sgmltag>mediaobject</sgmltag>. There is more
			information about <sgmltag>mediaobject</sgmltag>
			in <xref linkend="inserting-pictures"/>.
          </para>
			 </formalpara>
        </listitem>

        <listitem>
          <formalpara>
            <title><sgmltag>imagedata</sgmltag></title>
				<para>file formats
			must now be written in UPPERCASE letters. If you 
			use lowercase or mixed-case spellings
            for your file formats, it will fail.
          </para>
			 </formalpara>
          <para>
            Valid:
          </para>
<screen>
&lt;imagedata format="EPS" fileref="foo.eps"&gt;
</screen>
          <para>
            Invalid:
          </para>
<screen>
&lt;imagedata format="eps" fileref="foo.eps"&gt;
</screen>
        </listitem>

      </itemizedlist>

    </section>
  </section>
</appendix>  


<!-- 
	The sadly too short glossary 
	TODO: see the index terms? Add glossary items 
	for them. (see below re. index terms)
	I'm stretching into the depths of my memory to remember
	this...but...didn't Bin make a huge big "glossary" a few
	months back? Should there be a link to that document?
-->
<!-- <!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook V4.2//EN"> -->
<?dbhtml filename="glossary.html"?>
<glossary id="glossary">
  <title>Glossary</title>

  <glossentry>
    <glossterm>Abiword</glossterm>
    <glossdef>
      <para>Open Source word processor.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>aspell</glossterm>
    <glossdef>
      <para>Spell check program.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>attribute</glossterm>
    <glossdef>
      <para>An attribute makes available extra information regarding the 
          element on which it appears. The attributes always appear as a 
          name-value pair on the initialization pointers
			 (i.e. the <quote>start tag</quote>). Example of an
          attribute is <parameter class="option">id="identification"</parameter>, which gives the
          attribute <parameter class="option">id</parameter> the value
          <parameter class="option">identification</parameter>.</para>
    </glossdef>
    </glossentry>

  <glossentry>
    <glossterm>Cascading Style Sheet
    (<acronym>CSS</acronym>)</glossterm>
    <glossdef>
      <para>Set of overlay rules that are read by your HTML browser, which uses these rules for doing the display, layout and formatting of the XML-generated HTML file(s).  <acronym>CSS</acronym> allows for fast changes in look and feel without having to plunge in the HTML file(s).
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Catalog</glossterm>
    <glossdef>
      <para>Helper file for the display and transformation tools, which
		maps public identifiers and URLs to the local file system.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Concurrent Versions System
    (<acronym>CVS</acronym>)</glossterm>
    <glossdef>
      <para>A common document management system used by the LDP.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>DocBook</glossterm>
    <glossdef>
      <para>An SGML (and XML) application, describing a document format
		that allows easy management of documentation.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>docbook-utils</glossterm>
    <glossdef>
      <para>Software package easing XML conversions.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Document Type Definition      
    (<acronym>DTD</acronym>)</glossterm> 
    <glossdef>
      <para>A group of statements that define element names and their attributes
          specifying the rules for combinations and sequences. It's the
          <acronym>DTD</acronym> that defines which elements can or cannot
          be inserted in the given context.   
          </para>
    </glossdef>
  </glossentry>
  <glossentry>
    <glossterm><acronym>DSSSL</acronym></glossterm>
    <glossdef>
      <para><acronym>DSSSL</acronym> stands for Document Style Semantics and
          Specification Language. It's an <acronym>ISO</acronym> standard
          (ISO/IEC 10179:1996). The <acronym>DSSSL</acronym> standard is
          internationally used as a language for documents style sheets pages for
          <acronym>SGML</acronym>.</para>
    </glossdef>
  </glossentry>
  <glossentry>
    <glossterm>element</glossterm>
    <glossdef>
      <para>
		The elements describe the content's structure in a document.
		Most elements contain a start tag, content and a closing tag. For
		example a paragraph element includes all of the following <sgmltag class="starttag">para</sgmltag>This is the paragraph.<sgmltag class="endtag">para</sgmltag>. Some elements are <quote>empty</quote> and do not
		contain content and a closing tag. An example of this is a link to
		an external document where the URL is printed to the page. This
		element would include only the following <sgmltag class="emptytag">ulink url="http://google.com</sgmltag>. 
		</para>
      </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Emacs</glossterm>
    <glossdef>
      <para>Popular text editor, especially on UNIX systems or alikes.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>entity</glossterm>
    <glossdef>
      <para>An entity is a name designated for some part of data so that it
          can be referenced by a name.  The data could be anything from
          from simple characters to chapters to sets
          of statements in a <acronym>DTD</acronym>.
          Entity parameters can be generic, external, internal or
          <acronym>SGML</acronym> data.  An entity is similar to a variable
          in a programming language, or a macro.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>epcEdit</glossterm>
    <glossdef>
      <para>Cross-platform XML editor.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>external entity</glossterm>
    <glossdef>
      <para>An external entity points to an external document. External entities
          are used to include texts on certain locations of a
          <acronym>SGML</acronym> document. It could be used to include
          sample screens, legal notes, and chapters for example.</para> 
     </glossdef>
  </glossentry>
  <glossentry>
    <glossterm>float</glossterm>
    <glossdef>
        <para>Objects such as side bars, pictures, tables, and charts are called          floats when they don't have a fixed placement on the text. For
          printed text, a chart can appear either at the top or at the
          bottom of the page. It can also be placed on the next page if it is
          too large.</para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Frequently Asked Questions
    (<acronym>FAQ</acronym>)</glossterm>
    <glossdef>
      <para>LDP hosts a number of documents that are a list in the form of 
	questions and answers.  These documents are called FAQs.  A FAQ is usually a single-page document.
          </para>
    </glossdef>
  </glossentry>
  <glossentry>
    <glossterm>generic entities</glossterm>
    <glossdef>
      <para>An entity referenced by a name, which starts with  
          <quote>&amp;</quote> and ends with semicolon is a generic    
          entity. Most of the time this type of entity is used in the 
          document and not on the <acronym>DTD</acronym>. There are two types
          of entities: external and internal.  They can refer to special
          characters or to text objects such as repeated sentences, names or
          chapters.</para> 
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>GNU Free Documentation License
    (<acronym>GFDL</acronym>)</glossterm>
    <glossdef>
      <para>Like the GNU Public License for free software, but with specifics for written text and documentation with software.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>GNU Public License
    (<acronym>GPL</acronym>)</glossterm>
    <glossdef>
      <para>License type for software that guarantees that the software remains freely distributable, that the source code is available, that you can make changes to it and redistribute those changes if you want, on the condition that you keep on using the same license for your derived works.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Guide</glossterm>
    <glossdef>
      <para>TLDP documents that are too long to be a HOWTO are usually stored 
	as guides.  These are more like entire books that treat a particular 
	subject in-dept.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>HOWTO</glossterm>
    <glossdef>
      <para>Documents that discuss how to do something with a system or 
	application.  Most documents hosted at TLDP are HOWTOs,
	explaining how to install, configure or manage tens of applications 
	on a variety of systems.  HOWTOs are typically 10-25 pages.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>internal entity</glossterm>
    <glossdef>
      <para>An internal entity refers to part of the text and is often used
          as a shortcut for frequently repeated text.</para>
           </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>ispell</glossterm>
    <glossdef>
      <para>Spell check program.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Jade</glossterm>
    <glossdef>
      <para>An application which applies the rules defined in a DSSSL
		style sheet to an SGML or XML document, transforming the document
		into the desired output.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Markup, markup language
    (<acronym>ML</acronym>)</glossterm>
    <glossdef>
      <para>Code added to the content of a document, describing its structure.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Metadata</glossterm>
    <glossdef>
      <para>Text in your document that is not important for understanding the subject, but that should be there anyway, such as version information, co-authors, credits to people etc.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>nedit</glossterm>
    <glossdef>
      <para>Text editor oriented to programmers.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>nsgmls, onsgmls</glossterm>
    <glossdef>
      <para>SGML document parser and validator program.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>OpenOffice
    (<acronym>OOo</acronym>)</glossterm>
    <glossdef>
      <para>Open Source office suite, compatible with Microsoft Office.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>parameter entity</glossterm>
    <glossdef>
      <para>An entity type often used in the <acronym>DTD</acronym> or a
		document's internal subset. The entity's
          name starts with a percent sign (%) and ends with a
          semicolon.</para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>PSGML</glossterm>
    <glossdef>
      <para>Emacs <emphasis>major mode</emphasis> that customizes Emacs for editing SGML documents.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Organization for the Advancement of Structured Information Standards
    (<acronym>OASIS</acronym>)</glossterm>
    <glossdef>
      <para>OASIS is a non-profit, global consortium that drives the development, convergence and adoption of e-business standards.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Outline</glossterm>
    <glossdef>
      <para>Draft of your document that conceptualizes the subject and scope.  Summary and To-Do list for the work to come.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Portable Document Format
    (<acronym>PDF</acronym>)</glossterm>
    <glossdef>
      <para>Standard document type supported on a wide range of operating systems.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>processing instruction</glossterm>
    <glossdef>
      <para>A processing instruction is a command passed to the document 
          formatting tool. It starts with <quote>&lt;?</quote>. This document
          uses processing instructions for naming files when it
          is rendered into
          <acronym>HTML</acronym>: <sgmltag class="starttag">?dbhtml
          filename="file.html"</sgmltag></para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>PostScript
    (<acronym>PS</acronym>)</glossterm>
    <glossdef>
      <para>Document format designed for printable documents.  PS is the standard print format on UNIX(-alikes).
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Reviewer, review process</glossterm>
    <glossdef>
      <para>TLDP doesn't accept just anything.  Once you submit a document, it will be checked for consistency, grammar, spelling and style by a reviewer, a volunteer assigned by the review coordinator.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm><acronym>SGML</acronym></glossterm>
    <glossdef>
      <para><foreignphrase>Standard Generalized Markup
          Language</foreignphrase>.
          It is an international standard (<acronym>ISO</acronym>8879) that
          specifies rules for the creation of electronic documents in markup
          systems, regardless of the platform used.</para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Subject and scope</glossterm>
    <glossdef>
      <para>Obviously, the subject is what your documentation is about.  The scope defines which areas of the subject you are going to discuss, and how much detail will be involved.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>tag</glossterm>
    <glossdef>
      <para>An <acronym>SGML</acronym> element bounded by the marks
          <quote>&lt;</quote> and <quote>&gt;</quote>. Tags are used
          to mark the semantic or logical structure of a document. A sample
          is the tag <emphasis><sgmltag class="starttag">title</sgmltag></emphasis> to mark the beginning
          of a title.</para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>TeX</glossterm>
    <glossdef>
      <para>Popular UNIX text formatting and typesetting tool.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Transformation</glossterm>
    <glossdef>
      <para>The process of converting a document from its original DocBook XML form to another format, such as PDF, HTML or PostScript.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Validation</glossterm>
    <glossdef>
      <para>The process of checking your XML code to ensure it complies
		with the XML DTD you declared at the top of your document.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>vi Improved
    (<acronym>vIm</acronym>)</glossterm>
    <glossdef>
      <para>Popular text editor on UNIX and alike systems.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>WordPerfect
    (<acronym>WP</acronym>)</glossterm>
    <glossdef>
      <para>Popular word processor, runs on many systems.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm><acronym>XML</acronym></glossterm>
    <glossdef>
      <para>eXtensible Markup Language. A sub-product of <acronym>SGML</acronym>
          created specifically for Internet use.</para> 
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>xmllint</glossterm>
    <glossdef>
      <para>Command line XML parser and validator.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>XMLmind XML Editor
    (<acronym>XXE</acronym>)</glossterm>
    <glossdef>
      <para>Free but not Open XML editor.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>xmlto</glossterm>
    <glossdef>
      <para>Command line XML transformation program.
          </para>
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm><acronym>XSL</acronym></glossterm>
    <glossdef>
      <para><acronym>XML</acronym> Style
          Language. XSL is to a <acronym>XML</acronym> document what a 
          <acronym>DSSSL</acronym> style is for a <acronym>SGML</acronym>
          document. The XSL is written in
          <acronym>XML</acronym>.</para>  
    </glossdef>
  </glossentry>

  <glossentry>
    <glossterm>Extensible Stylesheet Transformation 
    (<acronym>XSLT</acronym>)</glossterm>
    <glossdef>
      <para>Framework for managing documents, consisting of the XSLT transformation language, the XPath expression language and XSL formatting objects.
          </para>
    </glossdef>
  </glossentry>

</glossary>


<!-- 
	I /think/ this document is created at "run-time"
	TODO: read the document and add index terms as
	appropriate. Much thanks.
&theindex;
-->

<!-- 
	The License 
	Print-wise it's a PITA to have Appendices after
	the License...so I'm moving it to the very-very
	end. Please move it back if you must.
-->
<!-- 
	<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'>
-->
<!--  
     The GNU Free Documentation License 1.1 in DocBook
     Markup by Eric Baudais <baudais@okstate.edu>
     Maintained by the GNOME Documentation Project
     http://developer.gnome.org/projects/gdp
     Version: 1.0.1
     Last Modified: Nov 16, 2000
-->

<appendix id="fdl">
  <title>GNU Free Documentation License</title>

  <sect1 id="fdl-preamble">
    <title>0. PREAMBLE</title>
    <para>
      The purpose of this License is to make a manual, textbook, or
      other written document <quote>free</quote> in the sense of
      freedom: to assure everyone the effective freedom to copy and
      redistribute it, with or without modifying it, either
      commercially or noncommercially. Secondarily, this License
      preserves for the author and publisher a way to get credit for
      their work, while not being considered responsible for
      modifications made by others.
    </para>
    
    <para>
      This License is a kind of <quote>copyleft</quote>, which means
      that derivative works of the document must themselves be free in
      the same sense. It complements the GNU General Public License,
      which is a copyleft license designed for free software.
    </para>
    
    <para>
      We have designed this License in order to use it for manuals for
      free software, because free software needs free documentation: a
      free program should come with manuals providing the same
      freedoms that the software does. But this License is not limited
      to software manuals; it can be used for any textual work,
      regardless of subject matter or whether it is published as a
      printed book. We recommend this License principally for works
      whose purpose is instruction or reference.
    </para>
  </sect1>
  <sect1 id="fdl-section1">
    <title>1. APPLICABILITY AND DEFINITIONS</title>
    <para id="fdl-document">
      This License applies to any manual or other work that contains a
      notice placed by the copyright holder saying it can be
      distributed under the terms of this License. The
      <quote>Document</quote>, below, refers to any such manual or
      work. Any member of the public is a licensee, and is addressed
      as <quote>you</quote>.
    </para>
    
    <para id="fdl-modified">
      A <quote>Modified Version</quote> of the Document means any work
      containing the Document or a portion of it, either copied
      verbatim, or with modifications and/or translated into another
      language.
    </para>
	
    <para id="fdl-secondary">
      A <quote>Secondary Section</quote> is a named appendix or a
      front-matter section of the <link linkend="fdl-document">Document</link> that deals exclusively
      with the relationship of the publishers or authors of the
      Document to the Document's overall subject (or to related
      matters) and contains nothing that could fall directly within
      that overall subject. (For example, if the Document is in part a
      textbook of mathematics, a Secondary Section may not explain any
      mathematics.)  The relationship could be a matter of historical
      connection with the subject or with related matters, or of
      legal, commercial, philosophical, ethical or political position
      regarding them.
    </para>

    <para id="fdl-invariant">
      The <quote>Invariant Sections</quote> are certain <link linkend="fdl-secondary"> Secondary Sections</link> whose titles
      are designated, as being those of Invariant Sections, in the
      notice that says that the <link linkend="fdl-document">Document</link> is released under this
      License.
    </para>
    
    <para id="fdl-cover-texts">
      The <quote>Cover Texts</quote> are certain short passages of
      text that are listed, as Front-Cover Texts or Back-Cover Texts,
      in the notice that says that the <link linkend="fdl-document">Document</link> is released under this
      License.
    </para>
	
    <para id="fdl-transparent">
      A <quote>Transparent</quote> copy of the <link linkend="fdl-document"> Document</link> means a machine-readable
      copy, represented in a format whose specification is available
      to the general public, whose contents can be viewed and edited
      directly and straightforwardly with generic text editors or (for
      images composed of pixels) generic paint programs or (for
      drawings) some widely available drawing editor, and that is
      suitable for input to text formatters or for automatic
      translation to a variety of formats suitable for input to text
      formatters. A copy made in an otherwise Transparent file format
      whose markup has been designed to thwart or discourage
      subsequent modification by readers is not Transparent.  A copy
      that is not <quote>Transparent</quote> is called
      <quote>Opaque</quote>.
    </para>
    
    <para>
      Examples of suitable formats for Transparent copies include
      plain ASCII without markup, Texinfo input format, LaTeX input
      format, SGML or XML using a publicly available DTD, and
      standard-conforming simple HTML designed for human
      modification. Opaque formats include PostScript, PDF,
      proprietary formats that can be read and edited only by
      proprietary word processors, SGML or XML for which the DTD
      and/or processing tools are not generally available, and the
      machine-generated HTML produced by some word processors for
      output purposes only.
    </para>
    
    <para id="fdl-title-page">
      The <quote>Title Page</quote> means, for a printed book, the
      title page itself, plus such following pages as are needed to
      hold, legibly, the material this License requires to appear in
      the title page. For works in formats which do not have any title
      page as such, <quote>Title Page</quote> means the text near the
      most prominent appearance of the work's title, preceding the
      beginning of the body of the text.
    </para>
  </sect1>
    
  <sect1 id="fdl-section2">
    <title>2. VERBATIM COPYING</title>
    <para>
      You may copy and distribute the <link linkend="fdl-document">Document</link> in any medium, either
      commercially or noncommercially, provided that this License, the
      copyright notices, and the license notice saying this License
      applies to the Document are reproduced in all copies, and that
      you add no other conditions whatsoever to those of this
      License. You may not use technical measures to obstruct or
      control the reading or further copying of the copies you make or
      distribute. However, you may accept compensation in exchange for
      copies. If you distribute a large enough number of copies you
      must also follow the conditions in <link linkend="fdl-section3">section 3</link>.
    </para>
    
    <para>
      You may also lend copies, under the same conditions stated
      above, and you may publicly display copies.
    </para>
    </sect1>
    
  <sect1 id="fdl-section3">
    <title>3. COPYING IN QUANTITY</title>
    <para>
      If you publish printed copies of the <link linkend="fdl-document">Document</link> numbering more than 100,
      and the Document's license notice requires <link linkend="fdl-cover-texts">Cover Texts</link>, you must enclose
      the copies in covers that carry, clearly and legibly, all these
      Cover Texts: Front-Cover Texts on the front cover, and
      Back-Cover Texts on the back cover. Both covers must also
      clearly and legibly identify you as the publisher of these
      copies. The front cover must present the full title with all
      words of the title equally prominent and visible. You may add
      other material on the covers in addition. Copying with changes
      limited to the covers, as long as they preserve the title of the
      <link linkend="fdl-document">Document</link> and satisfy these
      conditions, can be treated as verbatim copying in other
      respects.
    </para>
    
    <para>
      If the required texts for either cover are too voluminous to fit
      legibly, you should put the first ones listed (as many as fit
      reasonably) on the actual cover, and continue the rest onto
      adjacent pages.
    </para>
    
    <para>
      If you publish or distribute <link linkend="fdl-transparent">Opaque</link> copies of the <link linkend="fdl-document">Document</link> numbering more than 100,
      you must either include a machine-readable <link linkend="fdl-transparent">Transparent</link> copy along with
      each Opaque copy, or state in or with each Opaque copy a
      publicly-accessible computer-network location containing a
      complete Transparent copy of the Document, free of added
      material, which the general network-using public has access to
      download anonymously at no charge using public-standard network
      protocols. If you use the latter option, you must take
      reasonably prudent steps, when you begin distribution of Opaque
      copies in quantity, to ensure that this Transparent copy will
      remain thus accessible at the stated location until at least one
      year after the last time you distribute an Opaque copy (directly
      or through your agents or retailers) of that edition to the
      public.
    </para>
    
    <para>
      It is requested, but not required, that you contact the authors
      of the <link linkend="fdl-document">Document</link> well before
      redistributing any large number of copies, to give them a chance
      to provide you with an updated version of the Document.
    </para>
    </sect1>
    
  <sect1 id="fdl-section4">
    <title>4. MODIFICATIONS</title>
    <para>
      You may copy and distribute a <link linkend="fdl-modified">Modified Version</link> of the <link linkend="fdl-document">Document</link> under the conditions of
      sections <link linkend="fdl-section2">2</link> and <link linkend="fdl-section3">3</link> above, provided that you release
      the Modified Version under precisely this License, with the
      Modified Version filling the role of the Document, thus
      licensing distribution and modification of the Modified Version
      to whoever possesses a copy of it. In addition, you must do
      these things in the Modified Version:
    </para>
    
    <itemizedlist mark="opencircle">
      <listitem>
	<formalpara>
	  <title>A</title>
	  <para>
	    Use in the <link linkend="fdl-title-page">Title
	    Page</link> (and on the covers, if any) a title distinct
	    from that of the <link linkend="fdl-document">Document</link>, and from those of
	    previous versions (which should, if there were any, be
	    listed in the History section of the Document). You may
	    use the same title as a previous version if the original
	    publisher of that version gives permission.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>B</title>
	  <para>
	    List on the <link linkend="fdl-title-page">Title
	    Page</link>, as authors, one or more persons or entities
	    responsible for authorship of the modifications in the
	    <link linkend="fdl-modified">Modified Version</link>,
	    together with at least five of the principal authors of
	    the <link linkend="fdl-document">Document</link> (all of
	    its principal authors, if it has less than five).
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>C</title>
	  <para>
	    State on the <link linkend="fdl-title-page">Title
	    Page</link> the name of the publisher of the <link linkend="fdl-modified">Modified Version</link>, as the
	    publisher.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>D</title>
	  <para>
	    Preserve all the copyright notices of the <link linkend="fdl-document">Document</link>.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>E</title>
	  <para>
	    Add an appropriate copyright notice for your modifications
	    adjacent to the other copyright notices.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>F</title>
	  <para>
	    Include, immediately after the copyright notices, a
	    license notice giving the public permission to use the
	    <link linkend="fdl-modified">Modified Version</link> under
	    the terms of this License, in the form shown in the
	    Addendum below.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>G</title>
	  <para>
	    Preserve in that license notice the full lists of <link linkend="fdl-invariant"> Invariant Sections</link> and
	    required <link linkend="fdl-cover-texts">Cover
	    Texts</link> given in the <link linkend="fdl-document">Document's</link> license notice.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>H</title>
	  <para>
	    Include an unaltered copy of this License.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>I</title>
	  <para>
	    Preserve the section entitled <quote>History</quote>, and
	    its title, and add to it an item stating at least the
	    title, year, new authors, and publisher of the <link linkend="fdl-modified">Modified Version </link>as given on
	    the <link linkend="fdl-title-page">Title Page</link>.  If
	    there is no section entitled <quote>History</quote> in the
	    <link linkend="fdl-document">Document</link>, create one
	    stating the title, year, authors, and publisher of the
	    Document as given on its Title Page, then add an item
	    describing the Modified Version as stated in the previous
	    sentence.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>J</title>
	  <para>
	    Preserve the network location, if any, given in the <link linkend="fdl-document">Document</link> for public access
	    to a <link linkend="fdl-transparent">Transparent</link>
	    copy of the Document, and likewise the network locations
	    given in the Document for previous versions it was based
	    on. These may be placed in the <quote>History</quote>
	    section.  You may omit a network location for a work that
	    was published at least four years before the Document
	    itself, or if the original publisher of the version it
	    refers to gives permission.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>K</title>
	  <para>
	    In any section entitled <quote>Acknowledgements</quote> or
	    <quote>Dedications</quote>, preserve the section's title,
	    and preserve in the section all the substance and tone of
	    each of the contributor acknowledgements and/or
	    dedications given therein.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>L</title>
	  <para>
	    Preserve all the <link linkend="fdl-invariant">Invariant
	    Sections</link> of the <link linkend="fdl-document">Document</link>, unaltered in their
	    text and in their titles.  Section numbers or the
	    equivalent are not considered part of the section titles.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>M</title>
	  <para>
	    Delete any section entitled
	    <quote>Endorsements</quote>. Such a section may not be
	    included in the <link linkend="fdl-modified">Modified
	    Version</link>.
	  </para>
	</formalpara>
      </listitem>
      
      <listitem>
	<formalpara>
	  <title>N</title>
	  <para>
	    Do not retitle any existing section as
	    <quote>Endorsements</quote> or to conflict in title with
	    any <link linkend="fdl-invariant">Invariant
	    Section</link>.
	  </para>
	</formalpara>
      </listitem>
    </itemizedlist>
    
    <para>
      If the <link linkend="fdl-modified">Modified Version</link>
      includes new front-matter sections or appendices that qualify as
      <link linkend="fdl-secondary">Secondary Sections</link> and
      contain no material copied from the Document, you may at your
      option designate some or all of these sections as invariant. To
      do this, add their titles to the list of <link linkend="fdl-invariant">Invariant Sections</link> in the
      Modified Version's license notice.  These titles must be
      distinct from any other section titles.
    </para>
    
    <para>
      You may add a section entitled <quote>Endorsements</quote>,
      provided it contains nothing but endorsements of your <link linkend="fdl-modified">Modified Version</link> by various
      parties--for example, statements of peer review or that the text
      has been approved by an organization as the authoritative
      definition of a standard.
    </para>
    
    <para>
      You may add a passage of up to five words as a <link linkend="fdl-cover-texts">Front-Cover Text</link>, and a passage
      of up to 25 words as a <link linkend="fdl-cover-texts">Back-Cover Text</link>, to the end of
      the list of <link linkend="fdl-cover-texts">Cover Texts</link>
      in the <link linkend="fdl-modified">Modified Version</link>.
      Only one passage of Front-Cover Text and one of Back-Cover Text
      may be added by (or through arrangements made by) any one
      entity. If the <link linkend="fdl-document">Document</link>
      already includes a cover text for the same cover, previously
      added by you or by arrangement made by the same entity you are
      acting on behalf of, you may not add another; but you may
      replace the old one, on explicit permission from the previous
      publisher that added the old one.
    </para>
    
    <para>
      The author(s) and publisher(s) of the <link linkend="fdl-document">Document</link> do not by this License
      give permission to use their names for publicity for or to
      assert or imply endorsement of any <link linkend="fdl-modified">Modified Version </link>.
    </para>
  </sect1>
    
  <sect1 id="fdl-section5">
    <title>5. COMBINING DOCUMENTS</title>
    <para>
      You may combine the <link linkend="fdl-document">Document</link>
      with other documents released under this License, under the
      terms defined in <link linkend="fdl-section4">section 4</link>
      above for modified versions, provided that you include in the
      combination all of the <link linkend="fdl-invariant">Invariant
      Sections</link> of all of the original documents, unmodified,
      and list them all as Invariant Sections of your combined work in
      its license notice.
    </para>
    
    <para>
      The combined work need only contain one copy of this License,
      and multiple identical <link linkend="fdl-invariant">Invariant
      Sections</link> may be replaced with a single copy. If there are
      multiple Invariant Sections with the same name but different
      contents, make the title of each such section unique by adding
      at the end of it, in parentheses, the name of the original
      author or publisher of that section if known, or else a unique
      number. Make the same adjustment to the section titles in the
      list of Invariant Sections in the license notice of the combined
      work.
    </para>
    
    <para>
      In the combination, you must combine any sections entitled
      <quote>History</quote> in the various original documents,
      forming one section entitled <quote>History</quote>; likewise
      combine any sections entitled <quote>Acknowledgements</quote>,
      and any sections entitled <quote>Dedications</quote>.  You must
      delete all sections entitled <quote>Endorsements.</quote>
    </para>
    </sect1>
    
  <sect1 id="fdl-section6">
    <title>6. COLLECTIONS OF DOCUMENTS</title>
    <para>
      You may make a collection consisting of the <link linkend="fdl-document">Document</link> and other documents
      released under this License, and replace the individual copies
      of this License in the various documents with a single copy that
      is included in the collection, provided that you follow the
      rules of this License for verbatim copying of each of the
      documents in all other respects.
    </para>
    
    <para>
      You may extract a single document from such a collection, and
      dispbibute it individually under this License, provided you
      insert a copy of this License into the extracted document, and
      follow this License in all other respects regarding verbatim
      copying of that document.
    </para>
    </sect1>
    
  <sect1 id="fdl-section7">
    <title>7. AGGREGATION WITH INDEPENDENT WORKS</title>
    <para>
      A compilation of the <link linkend="fdl-document">Document</link> or its derivatives with
      other separate and independent documents or works, in or on a
      volume of a storage or distribution medium, does not as a whole
      count as a <link linkend="fdl-modified">Modified Version</link>
      of the Document, provided no compilation copyright is claimed
      for the compilation.  Such a compilation is called an
      <quote>aggregate</quote>, and this License does not apply to the
      other self-contained works thus compiled with the Document , on
      account of their being thus compiled, if they are not themselves
      derivative works of the Document.  If the <link linkend="fdl-cover-texts">Cover Text</link> requirement of <link linkend="fdl-section3">section 3</link> is applicable to these
      copies of the Document, then if the Document is less than one
      quarter of the entire aggregate, the Document's Cover Texts may
      be placed on covers that surround only the Document within the
      aggregate. Otherwise they must appear on covers around the whole
      aggregate.
    </para>
    </sect1>
    
  <sect1 id="fdl-section8">
    <title>8. TRANSLATION</title>
    <para>
      Translation is considered a kind of modification, so you may
      distribute translations of the <link linkend="fdl-document">Document</link> under the terms of <link linkend="fdl-section4">section 4</link>. Replacing <link linkend="fdl-invariant"> Invariant Sections</link> with
      translations requires special permission from their copyright
      holders, but you may include translations of some or all
      Invariant Sections in addition to the original versions of these
      Invariant Sections. You may include a translation of this
      License provided that you also include the original English
      version of this License. In case of a disagreement between the
      translation and the original English version of this License,
      the original English version will prevail.
    </para>
    </sect1>
    
  <sect1 id="fdl-section9">
    <title>9. TERMINATION</title>
    <para>
      You may not copy, modify, sublicense, or distribute the <link linkend="fdl-document">Document</link> except as expressly
      provided for under this License. Any other attempt to copy,
      modify, sublicense or distribute the Document is void, and will
      automatically terminate your rights under this License. However,
      parties who have received copies, or rights, from you under this
      License will not have their licenses terminated so long as such
      parties remain in full compliance.
    </para>
    </sect1>
    
  <sect1 id="fdl-section10">
    <title>10. FUTURE REVISIONS OF THIS LICENSE</title>
    <para>
      The <ulink type="http" url="http://www.gnu.org/fsf/fsf.html">Free Software
      Foundation</ulink> may publish new, revised versions of the GNU
      Free Documentation License from time to time. Such new versions
      will be similar in spirit to the present version, but may differ
      in detail to address new problems or concerns. See <ulink type="http" url="http://www.gnu.org/copyleft">http://www.gnu.org/copyleft/</ulink>.
    </para>
    
    <para>
      Each version of the License is given a distinguishing version
      number. If the <link linkend="fdl-document">Document</link>
      specifies that a particular numbered version of this License
      <quote>or any later version</quote> applies to it, you have the
      option of following the terms and conditions either of that
      specified version or of any later version that has been
      published (not as a draft) by the Free Software Foundation. If
      the Document does not specify a version number of this License,
      you may choose any version ever published (not as a draft) by
      the Free Software Foundation.
    </para>
  </sect1>

  <sect1 id="fdl-using">
    <title>Addendum</title>
    <para>
      To use this License in a document you have written, include a copy of
      the License in the document and put the following copyright and
      license notices just after the title page:
    </para>
    
    <blockquote>
      <para>
	Copyright © YEAR YOUR NAME.
      </para>
      <para>
	Permission is granted to copy, distribute and/or modify this
	document under the terms of the GNU Free Documentation
	License, Version 1.1 or any later version published by the
	Free Software Foundation; with the <link linkend="fdl-invariant">Invariant Sections</link> being LIST
	THEIR TITLES, with the <link linkend="fdl-cover-texts">Front-Cover Texts</link> being LIST,
	and with the <link linkend="fdl-cover-texts">Back-Cover
	Texts</link> being LIST.  A copy of the license is included in
	the section entitled <quote>GNU Free Documentation
	License</quote>.
      </para>
    </blockquote>
      
    <para>
      If you have no <link linkend="fdl-invariant">Invariant
      Sections</link>, write <quote>with no Invariant Sections</quote>
      instead of saying which ones are invariant.  If you have no
      <link linkend="fdl-cover-texts">Front-Cover Texts</link>, write
      <quote>no Front-Cover Texts</quote> instead of
      <quote>Front-Cover Texts being LIST</quote>; likewise for <link linkend="fdl-cover-texts">Back-Cover Texts</link>.
    </para>
    
    <para>
      If your document contains nontrivial examples of program code,
      we recommend releasing these examples in parallel under your
      choice of free software license, such as the <ulink type="http" url="http://www.gnu.org/copyleft/gpl.html"> GNU General Public
      License</ulink>, to permit their use in free software.
    </para>
  </sect1>
</appendix>  








</book>
