mirror of https://github.com/texmacs/doc.git
138 lines
5.2 KiB
Tcl
138 lines
5.2 KiB
Tcl
<TeXmacs|1.0.4.2>
|
|
|
|
<style|tmdoc>
|
|
|
|
<\body>
|
|
<tmdoc-title|Konvertierer und neue Datenformate erstellen>
|
|
|
|
Mir der <name|Guile>/<name|Scheme>-Sprache kann man, neue Datenformate und
|
|
Konvertierer zu <TeXmacs> als Module hinzufügen. Normalerweise werden die
|
|
zusätzlichen Formate und Konvertierer in ihrer persönlichen
|
|
Initialisierungs-Datei <verbatim|~/.TeXmacs/progs/my-init-texmacs.scm>
|
|
definiert oder in einem speziellen Plugin. Einige Beispiele finden Sie in
|
|
einem Unterverzeichnis <verbatim|progs/convert> ihres
|
|
<TeXmacs>-Verzeichnisses, wie z.B. <hlink|init-html.scm|$TEXMACS_PATH/progs/convert/html/init-html.scm>.
|
|
|
|
<paragraph*|neue formate definieren>
|
|
|
|
Ein neues Format kann mit dem Befehl
|
|
|
|
<\scheme-fragment>
|
|
(define-format <em|format>
|
|
|
|
\ \ (:name <em|format-name>)
|
|
|
|
\ \ <em|options>)
|
|
</scheme-fragment>
|
|
|
|
erzeugt werden. <verbatim|<em|format>> ist ein Symbol, dass für das Format
|
|
steht und <verbatim|<em|format-name>> eine Zeichenkette, die in Menüs
|
|
benutzt werden kann. Tatsächlich gibt es ein Datenformat meist in mehreren
|
|
Varianten: ein Format <verbatim|<em|format>-file> für Dateien, ein Format
|
|
<verbatim|<em|format>-document> für ganze Dokumente und ein Format
|
|
<verbatim|<em|format>-snippet> für kurze Zeichenketten, wie z.B. Auswahlen
|
|
(selections), und schlieÿlich <verbatim|<em|format>-object> für die
|
|
bevorzugte interne <name|Scheme>-Repräsentation bei Konversionen (dies ist
|
|
Parser-Variante des Formats). Konvertierer von <verbatim|<em|format>-file>
|
|
nach <verbatim|<em|format>-document> und umgekehrt werden automatisch
|
|
erzeugt.
|
|
|
|
Der Anwender kann zusätzliche Optionen zur automatischen Erkennung von
|
|
Formaten mit Hilfe von Datei-Suffixen oder -Inhalten spezifizieren. Z.B.
|
|
können die erlaubten Suffixe eines Daten-Formats mit der Voreinstellung als
|
|
erstem durch
|
|
|
|
<\scheme-fragment>
|
|
(:suffix <em|default-suffix> <em|other-suffix-1> ... <em|other-suffix-n>)
|
|
</scheme-fragment>
|
|
|
|
angegeben werden. Eine (heuristische) Routine, um festzustellen, ob ein
|
|
Dokument zu einem bestimmten Format gehört, kann mit
|
|
|
|
<\scheme-fragment>
|
|
(:recognize <em|predicate>)
|
|
|
|
(:must-recognize <em|predicate>)
|
|
</scheme-fragment>
|
|
|
|
erreicht werden. Im ersten Fall hat die Suffix-Erkennung Vorrang vor der
|
|
heuristischen Erkennung. Im zweiten Fall ist nur die heuristische Erkennung
|
|
durch das Prädikat, predicate, maÿgeblich.
|
|
|
|
<paragraph*|neue konvertierer erzeugen>
|
|
|
|
Neue Konvertierer können mit
|
|
|
|
<\scheme-fragment>
|
|
(converter <em|from> <em|to>
|
|
|
|
\ \ <em|options>)
|
|
</scheme-fragment>
|
|
|
|
erzeugt werden. Der eigentliche Konvertierer wird durch eine der folgenden
|
|
Optionen spezifiziert:
|
|
|
|
<\scheme-fragment>
|
|
(:function <em|converter>)
|
|
|
|
(:function-with-options <em|converter-with-options>)
|
|
|
|
(:shell <em|prog> <em|prog-pre-args> from <em|progs-infix-args> to
|
|
<em|prog-post-args>)
|
|
</scheme-fragment>
|
|
|
|
Im ersten Fall ist der Konvertierer <verbatim|<em|converter>> eine Routine
|
|
die ein Objekt im Daten-Format <verbatim|<em|from>> \ übernimmt und ein
|
|
Objekt im Daten-Format <verbatim|<em|to>> zurückgibt. Im zweiten Fall
|
|
übernimmt der <verbatim|<em|converter>> eine assoziative Liste als zweites
|
|
Argument und Optionen für den Konvertierer. Im letzten Fall wird ein
|
|
<em|shell>-Befehl angegeben, der die Konvertierung zwischen den beiden
|
|
Datei-Formaten durchführt. Der Konvertierer wird dann und nur dann
|
|
aktiviert, wenn das Programm <verbatim|<em|prog>> gefunden wird.
|
|
Hilfsdateien können automatisch erzeugt und wieder gelöscht werden.
|
|
|
|
<TeXmacs> berechnet automatisch die transitive \RClosure'' aller
|
|
Konvertierer, indem einen \Rkürzesten Pfad Algorithmus'' benutzt. Mit
|
|
anderen Worten, wenn es einen Konvertierer für <with|mode|math|x> nach
|
|
<with|mode|math|y> gibt und einen Konvertierer von <with|mode|math|y> nach
|
|
<with|mode|math|z>, dann hat man auch einen von <with|mode|math|x> nach
|
|
<with|mode|math|z>. Es für jede Konvertierung kann eine \RStrafe/Abstand
|
|
zwischen den Formaten`` mit
|
|
|
|
<\scheme-fragment>
|
|
(:penalty <em|floating-point-distance>)
|
|
</scheme-fragment>
|
|
|
|
angeben werden, um so Hinweise zum automatischen Finden eines optimalen
|
|
Weges für die Konvertierung zu geben.
|
|
|
|
Weitere Optionen für Konvertierer sind:
|
|
|
|
<\scheme-fragment>
|
|
(:require <em|cond>)
|
|
|
|
(:option <em|option> <em|default-value>)
|
|
</scheme-fragment>
|
|
|
|
Die erste Option spezifiziert eine Bedingung, die erfüllt sein muss, damit
|
|
der Konvertierer benutzt werden kann. Diese Option sollte als erste oder
|
|
zweite Option spezifiziert werden und immer nach der <verbatim|:penalty>
|
|
Option. Die <verbatim|:option> Option spezifiziert eine Option für den
|
|
Konvertierer, mit einer Voreinstellung. Diese Option wird automatisch an
|
|
alle Konvertierer mit Optionen weitergegeben.
|
|
|
|
<tmdoc-copyright|1998--2002|Joris van der Hoeven>
|
|
|
|
<tmdoc-license|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 section entitled "GNU Free
|
|
Documentation License".>
|
|
</body>
|
|
|
|
<\initial>
|
|
<\collection>
|
|
<associate|language|german>
|
|
</collection>
|
|
</initial> |