Ausgabe-Kanäle, Eingabe-Aufforderungen und Eingabe-Vorgaben

Neben Blöcken der Form

DATA_BEGINformat:messageDATA_END

erlaubt das TeXmacs-Meta-Format auch noch Blöcke der Form

DATA_BEGINchannel#messageDATA_END

Hier spezifiziert channel einen „Ausgabe-Kanal”, an den der Rumpf, message, gerichtet ist. der Standard-Ausgabe-Kanal ist output. es gibt aber noch die Kanäle prompt und input, um die Eingabe-Aufforderung und eine Vorgabe für die nächst folgende Eingabe zu erzeugen. Für die Zukunft ist auch die Unterstützung von Fehler- und Status-Kanälen (error, status) geplant. Die Voreinstellung von Eingaben kann vor allem für Beispiele in Computer Algebra Systemen sein.

Das prompt plugin

das Beispiel-Plugin prompt zeigt, wie man Eingabe-Aufforderungen verwenden kann. Es besteht aus den Dateien:

    prompt/Makefile
    prompt/progs/init-prompt.scm
    prompt/src/prompt.cpp

Die Methode, die die nächste Eingabe-Aufforderung erzeugt ist diese

void
next_input () {
  counter++;
  cout << DATA_BEGIN << "prompt#";
  cout << "Input " << counter << "] ";
  cout << DATA_END;
}

Die folgende Methode dient zur Darstellung eines Begrüßungstextes und einer Eingabe-Aufforderung:

cout << DATA_BEGIN << "verbatim:";
cout << "A LaTeX -> TeXmacs converter";
next_input ();
cout << DATA_END;
fflush (stdout);

mit den folgenden Zeilen in der Hauptschleife

char buffer[100];
cin.getline (buffer, 100, '\n');
cout << DATA_BEGIN << "verbatim:";
cout << DATA_BEGIN;
cout << "latex:$" << buffer << "$";
cout << DATA_END;
next_input ();
cout << DATA_END;
fflush (stdout);

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".