1
0
mirror of https://git.FreeBSD.org/doc.git synced 2026-06-02 11:25:20 +00:00
Files
doc/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml
T
2013-11-07 15:39:28 +00:00

210 lines
8.6 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- 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: r39632
Anmerkungen:
Dieser Text wurde nach dem Lesen von "Technisches Schreiben
(nicht nur) fuer Informatiker" ueberarbeitet.
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml: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 <package>editors/psgml</package> 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
eingefü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
<tag>programlisting</tag>, 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/xml/catalog")))
(add-hook 'psgml-mode-hook
'(lambda () (local-psgml-mode-hook)))</programlisting>
</chapter>