<\body> Im vorgängigen , haben wir beschrieben, dass Ausgabe in Blöcke der Form <\quotation> :>> einzukapseln sind. Die Ausgabe > kann rekursiv mehrer Blöcke der gleichen Form in einander verschachtelt enthalten. Als Formate sind z.Z. , , , , implementiert. Das Format dient zur Übertragung von -Bäumen codiert als \ -Ausdrücke. plugin> Das Plugin zeigt, wie das -Format als Ausgabe-Format verwendet wird. Es besteht aus den Dateien <\verbatim> \ \ \ \ \ \ \ \ \ \ \ \ Der Rumpf der Hauptschleife in besteht aus den folgenden Zeilen: <\cpp-fragment> int i, nr; cin \\ nr; cout \\ DATA_BEGIN \\ "latex:"; cout \\ "$"; for (i=1; i\nr; i++) \ \ cout \\ "x_{" \\ i \\ "}+"; cout \\ "x_{" \\ i \\ "}$"; cout \\ DATA_END; fflush (stdout); In ähnlicher Weise wird mit dem Plugin gezeigt, wie man mit verschachtelten Ausgabe-Blöcken arbeitet. Studieren Sie vor allem die Quellcode-Datei . <\remark> Im Moment haben wir nur als ein Standard-Übertragungsformat für mathematische Formeln definiert, denn es ist das am häufigsten benutzte Format. Für die Zukunft planen wir die Implementierung weiterer, semantisch sichererer Formate. Wir empfehlen, daran zu denken, dass das Baum-Format benutzt werden kann, um die Ausgabe zu übertragen. Zum Standard-haben wir und Befehle für die Multiplikation und zum Abschluss von groÿen Operator-Symbolen. Damit kann unterschieden werden, zwischen <\verbatim> \ \ \ \ a \\* (b + c) (d.h. multipliziert mit )\ und <\verbatim> \ \ \ \ f(x + y). (d.h angewendet auf ).\ Ganz ähnlich: <\verbatim> \ \ \ \ \\sum_{i=1}^m a_i \\bignone + \\sum_{j=1}^n b_j \\bignone Hier wird der Befehl benutzt, um das Kontext-Ende für den Operator zu markieren. Es zeigt sich, dass der systematische Gebrauch von und in Kombination mit sauberer -Ausgabe für die verbleibenden Konstrukte, es ermöglichst, der Ausgabe eine passende Bedeutung zu geben. Insbesondere können zusätzliche Routinen zum Kopieren und Einfügen zwischen verschiedenartigen Systemen formuliert werden. plugin> Man sollte immer im Gedächtnis behalten, dass eine strukturierte Ausgabe mit den Stärken von als strukturierter Editor genutzt werden kann und sollte. Im folgenden wollen wir mit dem Beispiel-Plugin zeigen, wie man ein neues Makro einführt, das als zusätzliches Konstrukt in der Ausgabe der Anwendung genutzt wird. Das Plugins besteht aus den folgenden Zeilen: <\verbatim> \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Das Stil-Paket enthält die folgende Definition von : <\tm-fragment> >>>>>> Das Makro wird jetzt folgendermaÿen im Rumpf der Hauptschleife von genutzt: <\cpp-fragment> char buffer[100]; cin.getline (buffer, 100, '\\n'); cout \\ DATA_BEGIN \\ "latex:"; cout \\ "$\\\\foo{" \\ buffer \\ "}$"; cout \\ DATA_END; fflush (stdout); Beachten Sie bitte, dass das Paket auch definiert: <\tm-fragment> >>>>>> Auf diese Weise wird die Ausgabe zentriert, wenn sie mit gestartet werden. <\initial> <\collection>