<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!-- Copyright (c) 2000 Nik Clayton, All rights reserved.

     Redistribution and use in source (SGML DocBook) and 'compiled' forms
     (SGML HTML, PDF, PostScript, RTF and so forth) with or without
     modification, are permitted provided that the following conditions
     are met:

      1. Redistributions of source code (SGML DocBook) must retain the above
         copyright notice, this list of conditions and the following
         disclaimer as the first lines of this file unmodified.

      2. Redistributions in compiled form (transformed to other DTDs,
         converted to PDF, PostScript, RTF and other formats) must reproduce
         the above copyright notice, this list of conditions and the
         following disclaimer in the documentation and/or other materials
         provided with the distribution.

     THIS DOCUMENTATION IS PROVIDED BY NIK CLAYTON "AS IS" AND ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
     POSSIBILITY OF SUCH DAMAGE.

     $FreeBSD$
     $FreeBSDde$
     basiert auf: r38847
-->

<appendix id="examples">
  <title>Beispiele</title>

  <para>In diesem Anhang sind SGML-Beispieldokumente und Befehle
    enthalten, die zeigen, wie man aus DocBook-Dokumenten verschiedene
    Ausgabeformate erzeugen kann. Sofern alle Werkzeuge f�r das
    Dokumentationsprojekt ordnungsgem�� installiert wurden,
    k�nnen die angebotenen Beispiele direkt �bernommen
    werden.</para>

  <para>Die Beispiele dieses Abschnitts sind bewusst einfach aufgebaut.
    Daher fehlen in den Beispielen einige Elemente, insbesondere
    Elemente f�r die Titelei.  Weitere DocBook-Beispiele
    k�nnen in den DocBook-Quellen dieses und anderer Dokumente
    des FDPs gefunden werden. Die Quellen des FDPs sind im
    <application>svn</application> doc-Repository und online unter <ulink
    url="http://svnweb.FreeBSD.org/doc/"></ulink> verf�gbar.</para>

  <para>Um Irritationen zu vermeiden, bauen die SGML-Beispiele auf der
    4.1er Standard-DocBook DTD anstatt auf der erweiterten
    FreeBSD-Variante auf. Ebenso werden die Standardstylesheets von
    Norman Welsh, anstatt der angepassten Stylesheets des
    FreeBSD-Dokumentationsprojektes benutzt. Dadurch eignen sich die
    Beispiele auch als generische DocBook-Vorlagen.</para>

  <sect1 id="examples-docbook-book">
    <title>DocBook-Buch (<sgmltag>book</sgmltag>)</title>

    <example>
      <title>Ein DocBook-Buch (<sgmltag>book</sgmltag>)</title>

      <programlisting><![CDATA[<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">

<book lang='de'>
  <bookinfo>
    <title>Ein Buchbeispiel</title>

    <author>
      <firstname>Vorname</firstname>
      <surname>Nachname</surname>
      <affiliation>
        <address><email>vorname.nachname@domain.de</email></address>
      </affiliation>
    </author>

    <copyright>
      <year>2000</year>
      <holder>Urheberhinweis</holder>
    </copyright>

    <abstract>
      <para>Falls das Buch eine Zusammenfassung hat, sollte sie
        hier stehen.</para>
    </abstract>
  </bookinfo>

  <preface>
    <title>Einleitung</title>

    <para>Falls das Buch eine Einleitung hat, sollte diese hier
      stehen.</para>
  </preface>

  <chapter>
    <title>Das erste Kapitel</title>

    <para>Das ist das erste Kapitel des Buches.</para>

    <sect1>
      <title>Der erste Abschnitt</title>

      <para>Das ist der erste Abschnitte des Buches.</para>
    </sect1>
  </chapter>
</book>]]></programlisting>
    </example>
  </sect1>

  <sect1 id="examples-docbook-article">
    <title>DocBook-Artikel (<sgmltag>article</sgmltag>)</title>

    <example>
      <title>Ein DocBook-Artikel (<sgmltag>article</sgmltag>)</title>

      <programlisting><![CDATA[<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">

<article lang='de'>
  <articleinfo>
    <title>Ein Beispielartikel</title>

    <author>
      <firstname>Vorname</firstname>
      <surname>Nachname</surname>
      <affiliation>
        <address><email>vorname.nachname@domain.de</email></address>
      </affiliation>
    </author>

    <copyright>
      <year>2000</year>
      <holder>Urheberhinweis</holder>
    </copyright>

    <abstract>
      <para>Falls der Artikel eine Zusammenfassung hat, sollte sie
        hier stehen.</programlisting>
    </abstract>
  </articleinfo>

  <sect1>
    <title>Der erste Abschnitt</title>

    <para>Das ist der erste Abschnitt des Artikels.</para>

    <sect2>
      <title>Der erste Unterabschnitt</title>

      <para>Das ist der erste Unterabschnitt des Artikels.</para>
    </sect2>
  </sect1>
</article>]]></programlisting>
    </example>
  </sect1>

  <sect1 id="examples-formatted">
    <title>Ausgabeformate erzeugen</title>

    <para>F�r diesen Abschnitt wird vorausgesetzt, dass die
      im Port <filename role="package">textproc/docproj</filename>
      enthaltene Software manuell oder �ber das Portssystem
      installiert wurde. Weiter wird vorausgesetzt, dass alle
      Programme unterhalb des Verzeichnisses
      <filename class="directory">/usr/local</filename> installiert
      worden sind und die Verzeichnisse, die die ausf�hrbaren
      Programme enthalten, in der Variable <envar>PATH</envar>
      enthalten sind.</para>

    <sect2>
      <title>Benutzung von Jade</title>

      <example>
	<title>Ein DocBook-Dokument in eine einzelne HTML-Datei
          umwandeln</title>

	<screen>&prompt.user; <userinput>jade -V nochunks \  <co id="examples-co-jade-1-nochunks"/>
-c /usr/local/share/sgml/docbook/dsssl/modular/catalog \ <co id="examples-co-jade-1-catalog"/>
-c /usr/local/share/sgml/docbook/catalog \
-c /usr/local/share/sgml/jade/catalog \
-d /usr/local/share/sgml/docbook/dsssl/modular/html/docbook.dsl \<co id="examples-co-jade-1-dsssl"/>
-t sgml <co id="examples-co-jade-1-transform"/> <replaceable>datei</replaceable>.sgml &gt; <replaceable>datei</replaceable>.html <co id="examples-co-jade-1-filename"/></userinput></screen>

	<calloutlist>
	  <callout arearefs="examples-co-jade-1-nochunks">
            <para>�bergibt den Parameter
              <literal>nochunks</literal> an die Stylesheets. Dadurch
              wird die gesamte Ausgabe in die Standardausgabe
              geschrieben (bei der Benutzung
              von Norm Walshs Stylesheets).</para>
	  </callout>

	  <callout arearefs="examples-co-jade-1-catalog">
            <para>Legt die von <application>Jade</application> zur
              Verarbeitung ben�tigten
              drei Kataloge fest. Der erste Katalog enth�lt
              Informationen zu den DSSSL-Stylesheets, der zweite zur
              DocBook DTD und der dritte
              <application>Jade</application>-spezifische Informationen.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-1-dsssl">
            <para>�bergibt den vollen Pfad zum
	      DSSSL-Stylesheet, das von <application>Jade</application> zur
	      Verarbeitung des Dokuments benutzt wird.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-1-transform">
            <para>Weist <application>Jade</application> an, eine
              <emphasis>Transformation</emphasis> von einer DTD zu
              einer anderen DTD vorzunehmen. In diesem Falle, von der
              DocBook DTD zur HTML DTD.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-1-filename">
            <para>Legt fest, welche Datei <application>Jade</application>
              verarbeiten soll und leitet die Ausgabe in die Datei
              <filename>datei.html</filename> um.</para>
	  </callout>
	</calloutlist>
      </example>

      <example>
        <title>Ein DocBook-Dokument in mehrere kleine HTML-Dateien umwandeln</title>

	<screen>&prompt.user; <userinput>jade \
-c /usr/local/share/sgml/docbook/dsssl/modular/catalog \ <co id="examples-co-jade-2-catalog"/>
-c /usr/local/share/sgml/docbook/catalog \
-c /usr/local/share/sgml/jade/catalog \
-d /usr/local/share/sgml/docbook/dsssl/modular/html/docbook.dsl \<co id="examples-co-jade-2-dsssl"/>
-t sgml <co id="examples-co-jade-2-transform"/> <replaceable>datei</replaceable>.sgml <co id="examples-co-jade-2-filename"/></userinput></screen>

	<calloutlist>
	  <callout arearefs="examples-co-jade-2-catalog">
            <para>Legt die von <application>Jade</application>
              zur Verarbeitung ben�tigten
              drei Kataloge fest. Der erste Katalog enth�lt
              Informationen zu den DSSSL-Stylesheets, der zweite zur
              DocBook DTD und der dritte Jade-spezifische
              Informationen.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-2-dsssl">
            <para>�bergibt den vollen Pfad zum
	      DSSSL-Stylesheet, das von
	      <application>Jade</application> zur
	      Verarbeitung des Dokuments benutzt wird.</para>
          </callout>

	  <callout arearefs="examples-co-jade-2-transform">
            <para>Weist <application>Jade</application> an, eine
              <emphasis>Transformation</emphasis> von einer DTD zu
              einer anderen DTD vorzunehmen. In diesem Falle, von der
              DocBook DTD zur HTML DTD.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-2-filename">
            <para>Legt die zu verarbeitende Datei fest. Die
              Stylesheets ermitteln eigenst�ndig die Namen aller
              HTML-Ausgabedateien.</para>
	  </callout>
	</calloutlist>

        <para>Abh�ngig von der Struktur des zu verarbeitenden
          Dokumentes und den Stylesheetregeln zur Aufteilung des
          Dokumentes, kann dieser Befehl auch nur eine einzelne
          HTML-Datei erzeugen.</para>
      </example>

      <example id="examples-docbook-postscript">
	<title>Ein DocBook-Dokument nach Postscript umwandeln</title>

        <para>Um eine Postscript-Ausgabe zu erzeugen, muss zuerst
          die SGML-Quelle in eine &tex;-Datei umgewandelt werden.</para>

	<screen>&prompt.user; <userinput>jade -V tex-backend \ <co id="examples-co-jade-3-tex-backend"/>
    -c /usr/local/share/sgml/docbook/dsssl/modular/catalog \ <co id="examples-co-jade-3-catalog"/>
    -c /usr/local/share/sgml/docbook/catalog \
    -c /usr/local/share/sgml/jade/catalog \
    -d /usr/local/share/sgml/docbook/dsssl/modular/print/docbook.dsl \<co id="examples-co-jade-3-dsssl"/>
    -t tex <co id="examples-co-jade-3-tex"/> <replaceable>datei</replaceable>.sgml</userinput></screen>

	<calloutlist>
	  <callout arearefs="examples-co-jade-3-tex-backend">
            <para>Weist die Stylesheets an, verschiedene
              &tex;-spezifische Optionen zu benutzen.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-3-catalog">
            <para>Legt die von <application>Jade</application>
              zur Verarbeitung ben�tigten
              drei Kataloge fest. Der erste Katalog enth�lt
              Informationen zu den DSSSL-Stylesheets, der zweite zur
              DocBook DTD und der dritte Jade-spezifische
              Informationen.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-3-dsssl">
            <para>�bergibt den vollen Pfad zum
	      DSSSL-Stylesheet, das von
	      <application>Jade</application> zur
	      Verarbeitung des Dokuments benutzt wird.</para>
	  </callout>

	  <callout arearefs="examples-co-jade-3-tex">
            <para>Weist <application>Jade</application> an,
              die Ausgabe in eine &tex;-Datei umzuwandeln.</para>
          </callout>
	</calloutlist>

        <para>Die so erzeugte <filename>.tex</filename>-Datei
          muss anschlie�end mittels <command>tex</command>,
          unter Angabe des Makropakets
          <literal>&amp;jadetex</literal> weiterverarbeitet
          werden.</para>

	<screen>&prompt.user; <userinput>tex "&amp;jadetex" <replaceable>datei</replaceable>.tex</userinput></screen>

        <para><command>tex</command> muss <emphasis>mindestens</emphasis>
          dreimal ausgef�hrt werden. Der erste Lauf ermittelt die
          die Querverweise innerhalb des Dokumentes, die
          f�r Stichwortverzeichnisse und �hnliches
	  ben�tigt werden.</para>

        <para>Warnungen, wie <errorname>LaTeX Warning: Reference `136'
            on page 5 undefined on input line 728.</errorname>, die zu
          diesem Zeitpunkt ausgegeben werden, k�nnen ohne
          weiteres ignoriert werden.</para>

        <para>Der zweite Lauf kann jetzt, da mehr Informationen, wie
          zum Beispiel die Seitenl�ngen, zur Verf�gung
          stehen, Eintr�ge im Stichwortverzeichnis und
          Querverweise genauer bestimmen.</para>

        <para>Der dritte Lauf ist f�r abschlie�ende
          Aufr�umarbeiten notwendig. Die so von
          <command>tex</command> erzeugte Ausgabe befindet sich
          anschlie�end in der Datei
          <filename><replaceable>datei</replaceable>.div</filename>.</para>

        <para>Zum Schluss muss noch <command>dvips</command>
          aufgerufen werden, um die <filename>.div</filename>-Datei in
          ein Postscript-Dokument umzuwandeln.</para>

	<screen>&prompt.user; <userinput>dvips -o <replaceable>datei</replaceable>.ps <replaceable>datei.dvi</replaceable></userinput></screen>
      </example>

      <example>
	<title>Eine PDF-Datei aus einem DocBook-Dokument
          erzeugen</title>

        <para>Die ersten Schritte, um ein DocBook-Dokument in ein PDF
          umzuwandeln,  stimmen mit denen �berein, die notwendig sind,
          um eine Postscript-Ausgabe zu erzeugen (<xref
	    linkend="examples-docbook-postscript"/>).</para>

        <para>Nachdem die <filename>.tex</filename>-Datei durch
          <application>Jade</application> erzeugt wurde, muss
          <application>pdfTeX</application> stattdessen mit dem
          Makropaket <literal>&amp;pdfjadetex</literal> aufgerufen
          werden.</para>

	<screen>&prompt.user; <userinput>pdftex "&amp;pdfjadetex" <replaceable>datei</replaceable>.tex</userinput></screen>

        <para>Dieser Befehl muss ebenfalls dreimal ausgef�hrt werden.
          Am Ende liegt mit
          <filename><replaceable>datei</replaceable>.pdf</filename>
          das fertige PDF-Dokument vor. Weitere Schritte sind jetzt
          nicht mehr notwendig.</para>
      </example>
    </sect2>
  </sect1>
</appendix>