Ein einfaches Stil-Paket schreiben |
Lassen Sie uns an einem einfachen Beispiel erklären, wie man ein einfaches Stil-Paket schreibt.
Wenn Sie das Beispiel direkt am Rechner nachvollziehen wollen, erleichtern Sie sich die Arbeit, wenn Sie ein zweites TeXmacs parallel eventuell in einem anderen virtuellen Fenster starten und zwischen den beiden Instanzen wechseln.
Zuerst einmal müssen Sie einen neuen Puffer, d.h. eine neue leere
Textdatei, erzeugen. Dazu wählen Sie das Menü
$HOME/.TeXmacs/packages
Beachten Sie bitte, dass der Knopf
$HOME/.TeXmacs/texts
entspricht. Daher können Sie durch Doppelklick auf .. und danach auf packages schnell in dieses Verzeichnis wechseln. Ganz entsprechend enthält das Verzeichnis
$HOME/.TeXmacs/styles
Ihre persönlichen Basis-Stil-Dateien. Nach dem Sichern mit der
Dateiergänzung .ts sollte das leere Stil-Paket
automatisch in dem Menü
Lassen Sie uns nun ein einfaches Makro
<assign||>
Geben Sie nun “hi” als erstes Argument ein, gehen zum zweiten Argument und tippen A-m oder M-i m um ein Makro einzufügen. Jetzt sollte es so aussehen:
<assign|hi|<macro|>>
Schließlich schreiben Sie „Hello world” in den Rumpf des Makros. Ihr Dokument sollte nun aus folgender Zeile bestehen:
<assign|hi|<macro|Hello world>>
Nachdem Sie Ihr Stil-Paket unter einem Namen gespeichert haben,
können Sie das Makro verwenden, z.B., indem Sie ein neues
Dokument erstellen und es mit Ihrem Stil-Paket mit
Analog können Sie Makros mit Argumenten erzeugen, die Sie zur
Laufzeit eingeben und im Makro auswerten können. Wenn Sie z.B. in
gleicher Weise ein Makro
<assign|hello|<macro|name|>>
In die zweite Argumentposition des Makrorumpfes tippen Sie nun Ihren Text z.B. „Hallo“, dann um das mit dem Namen „name“ bezeichnete erste Argument einzusetzen, drücken Sie die Kombinationen A-# oder M-i # tippen dann schließlich „name”, drücken rechts, das ist die rechte Pfeiltaste und geben weiter Text ein z.B. „, wie geht es Ihnen?”. Das sieht dann so aus:
<assign|hello|<macro|name|Hallo name, wie
geht es Ihnen?>>
Die Kurzbefehlkombination A-# bzw. M-i # wird zum Zugriff auf das Makroargument, hier name, verwendet. Anstatt A-# bzw. M-i # zu benutzen, dann „name” and right einzutippen, können Sie auch die \-Taste benutzen und \ n a m e gefolgt von der Eingabetaste return eintippen. Nachdem Sie Ihr Stil-Paket gesichert haben, können Sie Ihr neues Makro in jedem Dokument, dem Sie dieses Paket zugefügt haben, benutzen, indem Sie \ h e l l o eingeben und die return-Taste betätigen.
Intern werden alle Makrodefinitionen in der „TeXmacs
typesetter“-Umgebung gespeichert. Daneben werden dort auch
normale Kontextvariablen wie Absatzzähler (section counters) oder
Schriftgröße (font size) abgelegt. Die Kontextvariablen
können global mit dem
<assign|section-nr|-1>
in Ihrem Paket enthalten ist und Sie als Basis-Stil Artikel verwenden, dann erhält der erste Abschnitt die Abschnittnummer 0.
Die folgende Variante
<assign|hello|<macro|name|Hello <with|font-shape|small-caps|name>!>>
Eine weitere Variante des
<assign|hello|<macro|name|Hello <person|name>!>>
Um in die Makrodefinition <person|name> einzufügen,
müssen Sie zuerst an seiner Stelle ein Leerkonstrukt (compound)
erzeugen. Dazu benutzen Sie A-c oder M-i
c, tippen dann „person”, fügen ein Argument
mit A-rechts oder M-i rechts hinzu,
und tippen schließlich den Namen des Arguments name.
Schhließlich drücken Sie return, um das
unbenanntes Makro in ein
Durch Kombination der vorgehend beschriebenen Vorgehensweisen sollte der Durchschnittsanwender bereits Stil-Pakete für alle häufig vorkommenden Anwendungsfälle zu schreiben können.
Ein interessane Technik, mit der sich Makros schreiben lassen, die komplizierte mathematische Formeln enthalten, die wiederum von variablen Formeln abhängen, ist die Folgende:
Erzeuge ein Makroskelett in ihrem Stil-Paket:
<assign|n-tuple|<macro|a|>>
Kopiere die Formel und füge sie in den Rumpf des Makros ein:
<assign|n-tuple|<macro|a|(a<rsub|1>,…,a<rsub|n>)>>
Ersetze die die Variablen, die parametrisiert werden sollen, durch Makro-Argumente:
<assign|n-tuple|<macro|a|(a<rsub|1>,…,a<rsub|n>)>>
Nach dem Speichern können Sie das neue Makro in Dokumenten einsetzen, die Ihr Paket verwenden, z.B.: