1
0
Fork 0
doc/main/convert/new/man-newconv.de.tm

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>