<\body> Bis jetzt haben wir Schnittstellen von zu anderen Anwendungen betrachtet, die dazu gedacht sind, aus heraus interaktiv mit den Anwendungen zu kommunizieren. Es gibt aber auch einen -Befehl <\scheme-fragment> (plugin-eval ) mit dem man den Ausdruck > durch die Anwendung evaluieren lassen kann. Darin ist > der Name des Anwendungs-Plugin, > die Bezeichnung der Sitzung und > ein -Ausdruck, der einen -Baum repräsentiert. plugin> Evaluierungen im Hintergrund können z.B. dazu benutzt werden, dass, wenn der Anwender einen Ausdruck ausgewählt hat, dieser Ausdruck durch das Ergebnis der Evaluierung ersetzt wird. Das vorliegende Beispiel formt mathematische -Ausdrücke in -Ausdrücke um. Auÿerdem stellt es dafür den Kurzbefehl bereit. das Plugin besteht aus den folgenden Dateien: <\verbatim> \ \ \ \ \ \ \ \ \ \ \ \ Die Hauptschleife von besteht aus den folgenden Zeilen <\cpp-fragment> char buffer[100]; cin.getline (buffer, 100, '\\n'); cout \\ DATA_BEGIN; cout \\ "latex:$" \\ buffer \\ "$"; cout \\ DATA_END; fflush (stdout); Die Konfigurationsdatei des Plugins, , hat den folgenden Code, der den ausgewählten Bereich durch das Ergebnis der Evaluierung ersetzt. <\scheme-fragment> (define (substitute-substitute) \ \ (import-from (texmacs plugin plugin-cmd)) \ \ (if (selection-active-any?) \ \ \ \ \ \ (let* ((t (tree-\object (the-selection))) \ \ \ \ \ \ \ \ \ \ \ \ \ (u (plugin-eval "substitute" "default" t))) \ \ \ \ \ \ \ \ (clipboard-cut "primary") \ \ \ \ \ \ \ \ (insert-tree (object-\tree u))))) und den Code für den Kurzbefehl : <\scheme-fragment> (kbd-map \ \ ("C-F12" (substitute-substitute))) Beachten Sie bitte, dass diese Routinen in gröÿeren, echten Plugins in eigenständige Module gehören. plugin> Ein weiteres Beispiel dafür, wie man eine Schnittstelle im Hintergrund benutzen kann, gibt das Plugin , das die Dateien <\verbatim> \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ enthält. Wie oben formt das Hauptprogramm -Ausdrücke in -Ausdrücke um. Das Modul enthält die -Routine : <\scheme-fragment> (tm-define (latexer s) \ \ (:type (tree -\ object)) \ \ (:synopsis "convert LaTeX string to TeXmacs tree using plugin") \ \ (:secure #t) \ \ (plugin-eval "secure" "default" (tree-\string s))) Man muss unbedingt als \Rsicher`` einstufen, damit sie mit dem Konstrukt zur Definition von weiteren Konstrukten herangezogen werden kann. Dazu wird die Stil-Definition \ benutzt mit dem Code: <\tm-fragment> <\inactive*> Sehen Sie einen mathematischen TeX-Befehl als TeXmacs-Ausdruck mittels eines Plugin >>> Nach Kompilierung, Installation und Neustart von können Sie , nachdem Sie den neuen Menübefehl durchgeführt haben, als neuen Konstrukt benutzen. Dieser nimmt einen mathematischen -Ausdruck als Argument und zeigt ihn nach der Konversion auf dem Bildschirm an. <\initial> <\collection>