Formatier-Konstrukte |
Dieser Abschnitt enthält einige wichtige Anmerkungen über Formatier-Konstrukte, die nicht wirklich Teil der Stil-Definitions-Sprache sind, aber damit in einem engen Zusammenhang stehen.
Erstens gehören fast alle TeXmacs-Makro-Befehle, die die
Darstellung von Text betreffen, in eine von zwei Klassen. Es handelt
sich entweder um Fließtext-Konstrukte oder um Block-Konstrukte,
deren Argument also Fließtext oder ein Block
ist. Der Unterschied wird in Basis-Konstrukte genauer
erklärt. Ein Block ist dabei ein Textelement, dass aus
mehreren Absätzen bestehenden Text, Multi-Absatz-Text,
enthält. Dagegen kann Fließtext zwar aus mehreren
Textelementen bestehen, enhält selbst aber keine weiteren
Absätze. Beispielsweise ist
<assign|mein-theorem|<macro|Rumpf|<surround|<no-indent><with|font-series|bold|Satz>|<right-flush>|Rumpf>>>
In diesem Beispiel wurde der Rumpf mit dem fett dargestellten Text „Satz” links und einem „rigth-flush” rechts umgeben (surround). Dieser Flushing „rigth-flush” dient zur besseren Darstellung der blauen Hilfslinien, wenn der Cursor sich innerhalb des Wirkungsbereichs eines Kontextes befindet. Eer dehnt den Wirkungsbereich (für die Hilfslinien) bis an den rechten Rand aus.
In den meisten Fällen findet TeXmacs selbständig heraus,
welche Befehle Zeilen-Befehle und welche Block-Befehle sind. Manchmal
möchte man aber einen Befehl zwangsweise zum Block-Befehl
erklären. Beispielsweise kann ein Konstrukt
<assign|sehr-wichtig|<macro|body|<with|font-series|bold|color|red|body>>>
sowohl als Block-Befehl als auch als Zeile-Befehl dienen. Wenn Sie nun
den Cursor genau vor den
<assign|sehr-wichtig|<macro|body|<document|<with|font-series|bold|color|red|body>>>>
Weil der Rumpf, body nun ein
Block ist, wird das Makro
Eine weitere wichtige Eigenschaft von Tags ist es, ob sie normalen
Text als Inhalt haben, oder ob der Inhalt tabellarisch ist. Nehmen wir
einmal die folgende Definition eines Standard-Formel-Blocks,
<assign|eqnarray*|<macro|body|<with|par-mode|center|mode|math|math-display|true|par-sep|0.45fn|<surround|<no-page-break*><vspace*|0.5fn>|<vspace|0.5fn><no-indent*>|<tformat|<twith|table-hyphen|y>|<twith|table-width|1par>|<twith|table-min-cols|3>|<twith|table-max-cols|3>|<cwith|1|-1|1|1|cell-hpart|1>|<cwith|1|-1|-1|-1|cell-hpart|1>|body>>>>>
Die Verwendung von
Schließlich sollte man daran denken, dass Stildefinitionen nicht
nur die Darstellung des fertigen Dokuments festlegen, sonder dass sie
auch die Darstellung während der Erstellung regeln. Oben haben
wir bereits den
<
assign
|
labeled-theorem
|
<
macro
|
id
|
body
|
<\surround|
<\concat|
<no-indent>
<flag|Id:
id|blue|id>
<with|font-series|bold|Theorem. >
<right-flush>
body
ganz allgemein kann mit dem