aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml
diff options
context:
space:
mode:
Diffstat (limited to 'de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml')
-rw-r--r--de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml211
1 files changed, 211 insertions, 0 deletions
diff --git a/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml
new file mode 100644
index 0000000000..f664320289
--- /dev/null
+++ b/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<!-- Copyright (c) 1998, 1999 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: r38826
+
+ Anmerkungen:
+ Dieser Text wurde nach dem Lesen von "Technisches Schreiben
+ (nicht nur) fuer Informatiker" ueberarbeitet.
+
+-->
+
+<chapter id="psgml-mode">
+ <title><literal>sgml-mode</literal> und
+ <application>Emacs</application></title>
+
+ <para>Neuere <application>Emacs</application>- und
+ <application>XEmacs</application>-Versionen verfügen
+ über ein nützliches Lisp-Paket namens PSGML. PSGML
+ (das über den Port <filename
+ role="package">editors/psgml</filename> installiert werden kann) ist
+ ein so genannter <foreignphrase>Majormode</foreignphrase>, der
+ Funktionen speziell für den Umgang mit SGML-Dateien,
+ -Elementen und deren Attributen bereit stellt. Emacs aktiviert
+ PSGML automatisch, wenn eine Datei mit der Endung
+ <filename>.xml</filename> geladen oder der Befehl <command>M-X
+ sgml-mode</command> eingegeben wird.</para>
+
+ <para>Die Arbeit an SGML-Dokumenten wie dem FreeBSD-Handbuch kann
+ sich wesentlich einfacher gestalten, wenn einige der Funktionen
+ von PSGML gekannt sind:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command>C-c C-e</command></term>
+
+ <listitem>
+ <para>Ruft die Funktion <function>sgml-insert-element</function>
+ auf, die nach dem Namen des einzufügenden Elements
+ fragt. Ist dieser eingegeben worden und wurde die
+ <keycap>Eingabetaste</keycap> gedrückt, fügt die
+ Funktion Start- und Endtag des neuen Elements ein. Sofern
+ das eingefügte Element laut DTD andere Elemente
+ enthalten muß, werden diese ebenfalls
+ miteingefügt.</para>
+
+ <para>Falls Sie unsicher sind, wie der Name des
+ gewünschten Elements lautet oder welche Elemente an der
+ aktuellen Position erlaubt sind, können mittels der
+ Taste <keycap>Tab</keycap> alle <emphasis>an dieser
+ Stelle</emphasis> möglichen Elemente angezeigt
+ werden. Ebenso ermöglicht <keycap>Tab</keycap> die
+ Vervollständigung eines bereits eingegebenen
+ Elementnamens.</para>
+
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>C-c =</command></term>
+
+ <listitem>
+ <para>Ruft die Funktion
+ <function>sgml-change-element-name</function> auf, mit der das
+ aktuelle Element &ndash; das Element zwischen dessen Start-
+ und Endtag sich der Cursor befindet &ndash; ausgewechselt
+ werden kann. Die Funktion fragt nach dem Namen des neuen
+ Elements und ersetzt anschließend Start- und Endtag
+ des alten Elements durch die des neuen Elements.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>C-c C-r</command></term>
+
+ <listitem>
+ <para>Ruft die Funktion <function>sgml-tag-region</function>
+ auf, die einen markierten Textabschnitt mit einem Element
+ umschließt. Dazu markieren Sie zuerst den Textabschnitt
+ (gehen Sie zum Anfang des Abschnitts und führen Sie
+ <command>C-space</command> aus, dann gehen Sie zum Ende des
+ Abschnitts und führen erneut <command>C-space</command>
+ aus), danach führen Sie diese Funktion aus. Sie werden
+ nach dem Namen des einzufügenden Elements gefragt. Dessen
+ Start-Tag wird dann am Anfang des markierten Textes
+ eingefügt, dessen End-Tag am Ende des markierten
+ Texts.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>C-c -</command></term>
+
+ <listitem>
+ <para>Ruft die Funktion <function>sgml-untag-element</function>
+ auf, die Start- und Endtag des Elements entfernt, innerhalb
+ dessen sich der Cursor befindet.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>C-c C-q</command></term>
+
+ <listitem>
+ <para>Ruft die Funktion <function>sgml-fill-element</function>
+ auf. Diese Funktion formatiert<footnote>
+ <para>Formatieren bedeutet in diesem Zusammenhang,
+ dass die Funktion versucht, soviel Zeichen wie
+ möglich in einer Zeile unterzubringen. Die Stelle,
+ bis zu der gefüllt und dann der Zeilemumbruch
+ erfolgt, ist konfigurierbar.</para>
+ </footnote> den Inhalt des aktuellen Elements neu. Dieser
+ Vorgang betrifft auch Elemente wie
+ <sgmltag>programlisting</sgmltag>, in denen Leerzeichen und
+ ähnliches Teil der Formatierung sind. Aus diesem Grund
+ ist mit <literal>sgml-fill-element</literal> bedächtig
+ umzugehen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>C-c C-a</command></term>
+
+ <listitem>
+ <para>Ruft die Funktion
+ <function>sgml-edit-attributes</function> auf. Diese
+ öffnet einen zweiten Puffer mit allen Attributen des
+ Elements, innerhalb dessen sich der Cursor befindet.
+ Über <keycap>Tab</keycap> kann von einem Attribut zum
+ nächsten gewechselt werden. Ein existierender
+ Attributwert kann mit <command>C-k</command> gelöscht
+ werden. Die Tastenfolge <command>C-c C-c</command>
+ schließt den Puffer und setzt die Attribute des
+ Elements entsprechend den Puffervorgaben.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>C-c C-v</command></term>
+
+ <listitem>
+ <para>Ruft die Funktion <function>sgml-validate</function> auf,
+ die zuerst fragt, ob das aktuelle Dokument gespeichert
+ werden soll und anschließend einen SGML-Validator
+ aufruft. Die Ausgaben des Validators werden in einem neuen
+ Puffer angezeigt. Dadurch hat der Benutzer die
+ Möglichkeit, eventuell vom Validator gefundene Fehler
+ zu korrigieren.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>C-c /</command></term>
+
+ <listitem>
+ <para>Startet die Funktion <function>sgml-insert-end-tag</function>,
+ die automatisch das passende End-Tag für das gerade
+ offene Element einfügt.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Zweifellos hat PSGML noch weitere nützliche Funktionen, doch
+ die hier genannten sind die, die der Autor dieser Fibel am meisten
+ benutzt.</para>
+
+ <para>Um den richtigen Einzug, die Umwandlung von Tabulatoren in
+ Leerzeichen und die maximale Zeilenlänge für Dokumente des FDPs
+ sicherzustellen, kann folgender Eintrag in
+ <filename>.emacs</filename> vorgenommen werden:</para>
+
+ <programlisting> (defun local-sgml-mode-hook
+ (setq fill-column 70
+ indent-tabs-mode nil
+ next-line-add-newlines nil
+ standard-indent 4
+ sgml-indent-data t)
+ (auto-fill-mode t)
+ (setq sgml-catalog-files '("/usr/local/share/sgml/catalog")))
+ (add-hook 'psgml-mode-hook
+ '(lambda () (local-psgml-mode-hook)))</programlisting>
+</chapter>