mirror of https://github.com/texmacs/doc.git
81 lines
3.3 KiB
Plaintext
81 lines
3.3 KiB
Plaintext
|
<TeXmacs|1.0.4.5>
|
|||
|
|
|||
|
<style|tmdoc>
|
|||
|
|
|||
|
<\body>
|
|||
|
<tmdoc-title|Steuerung des logischen Ablaufs>
|
|||
|
|
|||
|
Neben Folgen von Ausdr<64>cken, die mit dem <markup|concat>-Konstrukt erzeugt
|
|||
|
werden k<>nne, und dem Mechanismus f<>r die Makro-Expansion besitzt die
|
|||
|
<TeXmacs>-Stil-Definitions-Sprache noch einige andere Konstrukte, um den
|
|||
|
logischen Ablauf zu steuern: <markup|if>, <markup|case>, <markup|while> und
|
|||
|
<markup|for-each>. Diese Konstrukte k<>nnen mit dem Men<65> <menu|Source|Flow
|
|||
|
control> erreicht werden. Wir m<>ssen aber den Anwender warnen, diese
|
|||
|
Konstrukte sind nicht sehr sicher: sie k<>nnen nur auf Zeileninhalte
|
|||
|
angewendet werden und ihr Ergebnis h<>ngt von der Erreichbarkeit der
|
|||
|
Makroargumente ab. Die Erreichbarkeit kann aber nicht vorab gepr<70>ft werden!
|
|||
|
|
|||
|
Das wichtigste Konstrukt ist <markup|if>, das mit dem Kurzbefehl
|
|||
|
\ <shortcut|(make 'if)> erzeugt werden kann. Damit kann man bedingten Schriftsatz
|
|||
|
erreichen:
|
|||
|
|
|||
|
<\tm-fragment>
|
|||
|
<inactive*|<assign|appendix|<\macro|title|body>
|
|||
|
<style-with|src-compact|none|<compound|<if|<long-document>|<value|chapter-appendix>|<value|section-appendix>>|<arg|title>|<arg|body>>>
|
|||
|
</macro>>>
|
|||
|
</tm-fragment>
|
|||
|
|
|||
|
In diesem Beispiel ist <markup|appendix> ein Block, der aus einem Titel und
|
|||
|
einem Rumpf besteht. Dieser wird als Kapitel in langen Dokumenten und als
|
|||
|
Abschnitt in anderen Dokumenten gesetzt. Im folgenden ist eine unzul<75>ssige
|
|||
|
Inplementierung gezeigt. Sie funktioniert nicht, weil <markup|if> zur Zeit
|
|||
|
nur mit Zeileninhalten arbeitet:
|
|||
|
|
|||
|
<\tm-fragment>
|
|||
|
<active*|<\inactive*>
|
|||
|
<active*|<\with|color|red>
|
|||
|
So gehts nicht:
|
|||
|
</with>>
|
|||
|
|
|||
|
\;
|
|||
|
|
|||
|
<assign|appendix|<\macro|title|body>
|
|||
|
<style-with|src-compact|none|<if|<long-document>|<chapter-appendix|<arg|title>|<arg|body>>|<section-appendix|<arg|title>|<arg|body>>>>
|
|||
|
</macro>>
|
|||
|
</inactive*>>
|
|||
|
</tm-fragment>
|
|||
|
|
|||
|
Das <markup|if>-Konstrukt kann auch benutzt werden um optionale Argumente
|
|||
|
einzuf<75>hren:
|
|||
|
|
|||
|
<\tm-fragment>
|
|||
|
<inactive*|<assign|hey|<macro|first|second|<style-with|src-compact|none|<if|<equal|<arg|second>|<uninit>>|Hey
|
|||
|
<arg|first>, you look lonely today...|Hey <arg|first> and <arg|second>,
|
|||
|
you form a nice couple!>>>>>
|
|||
|
</tm-fragment>
|
|||
|
|
|||
|
<TeXmacs> kann aber nicht entscheiden, welche Argumente optional sind und
|
|||
|
welche Argumente erreichbar (vom Anwender editierbar) sind. Deshalb mu<6D>
|
|||
|
diese Information von Hand mit dem <markup|drd-props>-Konstrukt festgelegt
|
|||
|
werden. Die Konstrukte <markup|case>, <markup|while> und <markup|for-each>
|
|||
|
werden in <hyper-link|Steuerung des logischen
|
|||
|
Ablaufs|../../format/stylesheet/prim-control.de.tm> im Abschnitt
|
|||
|
<hyper-link|Konstrukte f<>r Stil-Definitionen|../../format/stylesheet/stylesheet.de.tm>
|
|||
|
eingehender behandelt.
|
|||
|
|
|||
|
<tmdoc-copyright|1998--2004|Joris van der Hoeven>
|
|||
|
|
|||
|
<tmdoc-license|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".>
|
|||
|
</body>
|
|||
|
|
|||
|
<\initial>
|
|||
|
<\collection>
|
|||
|
<associate|language|german>
|
|||
|
<associate|preamble|false>
|
|||
|
</collection>
|
|||
|
</initial>
|