diff options
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.xml | 211 |
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 – das Element zwischen dessen Start- + und Endtag sich der Cursor befindet – 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> |