Fuer die Gestaltung eines Dokumentes waere es allerdings ganz hilfreich
den Text in Abhaengigkeit von einigen Zaehlerstaenden zu gestalten.
Die Frage lautet also, wie ist das mit den if-Abfragen in LaTeX?
Harald
HZ>Die Frage lautet also, wie ist das mit den if-Abfragen in LaTeX?
Die sind alle in latex.tex erklärt; wirf also einmal einen Blick
hinein!
Michael
> Die Frage lautet also, wie ist das mit den if-Abfragen in LaTeX?
\dots in Deiner LaTeX-Version wird sicher ein `IFTHEN.STY' beiliegen. Der
sollte dann diese Probleme l"osen\dots
Gru"s, Werner
In article Harald_...@k.maus.de (Harald Ziebarth) writes:
>in einigen Styles finde ich diverse if-Abfragen, in den *.TEX-Dateien
>sind solche Befehle allerdings nicht zu finden, die Kopka-Einfuehrung und
>die TeX-FAQ 'OGFUDA' sagen auch nichts ueber deren Existenz.
>
>Fuer die Gestaltung eines Dokumentes waere es allerdings ganz hilfreich
>den Text in Abhaengigkeit von einigen Zaehlerstaenden zu gestalten.
>
>Die Frage lautet also, wie ist das mit den if-Abfragen in LaTeX?
Versuchs doch mal mit "Latex-Erweiterungsmoeglichkeiten" (auch vom grossen
Kopka)
[..]
Erstens: sooo gross ist Kopka auch nicht ;-)
Zweitens: wozu immer alles aus zweiter Hand, wenn man es auch aus
erster Hand vom Grand-Wizard of TeX selbst haben kann, sprich: die
Anschaffung des TeX-Book lohnt sich z.B. schon alleine fuer all
diejenigen, die mehr mit dem mathematischen Formelsatz machen wollen.
Ansonsten findet man ueber \if... noch einiges in `Eijkhout, TeX by
Topic' (IMHO eine gute Ergaenzung des TeXbook fuer all diejenigen, die
tiefer in TeX einsteigen wollen/muessen) und anderen Werken, ausserdem
kam mal vor einiger Zeit ein guter Tutorial-Artikel ueber \if, \ifcat
und \ifx in der TUGboat.
-bernd
HZ> Fuer die Gestaltung eines Dokumentes waere es allerdings ganz hilfreich
HZ> den Text in Abhaengigkeit von einigen Zaehlerstaenden zu gestalten.
HZ>
HZ> Die Frage lautet also, wie ist das mit den if-Abfragen in LaTeX?
In LaTeX nicht moeglich, aber in plain-TeX, also auch in einem LaTeX Dokument
anwendbar.
Die Syntax lautet:
\if AUSDRUCK1 AUSDRUCK2
Hier das, was dann passieren soll.
\else
Hier was anderes.
\fi
Es wird dabei geprueft, ob die beiden Ausdruecke gleich sind. Im
Gleichheitsfall wird der erste, sonst der zweite Ast bearbeitet. Falls die
Ausdruecke Macros enthalten, dann ist zu beachten, dass sie vorher expandiert
werden. Soll das unterbunden werden, dann ist der Befehl \ifx zu verwenden, der
aber sonst gleich funktioniert.
FtC
Es gibt einen IFTHEN.STY, der z.B. die folgenden Befehle zur Verfuegung stellt:
\ifthenelse{test}{wenn_zweig}{sonst_zweig}
\whiledo{test}{schleifentext}
\equal
\not
\and
\or
u.a.
Dieser Style ist in "LaTeX, Erweiterungsmoeglichkeiten" von Helmut Kopka
(Addison Wesley Verlag) sehr genau beschrieben.
Dieser Style sollte zur Grundausstattung einer LaTeX-Installation gehoeren.
Falls Du ihn nicht hast, kann ich ihn Dir gerne als Msg with File crashen.
MfG. Mick!
> Hallo,
> in einigen Styles finde ich diverse if-Abfragen, in den
> *.TEX-Dateien sind solche Befehle allerdings nicht zu
> finden, die Kopka-Einfuehrung und die TeX-FAQ 'OGFUDA'
> sagen auch nichts ueber deren Existenz.
> Die Frage lautet also, wie ist das mit den if-Abfragen
> in LaTeX?
Beispiel:
\newcounter{tag}
irgendwo hier wird Dein Zaehler "tag" gesetzt
Heute ist
\ifnum 1=\tag Montag
\else \ifnum 2=\tag Dienstag
\else \ifnum 3=\tag Mittwoch
\else \ifnum 4=\tag Donnerstag
\else \ifnum 5=\tag Freitag
\else \ifnum 6=\tag Samstag
\else \ifnum 7=\tag Sonntag
\else was wiss ich
\fi
\fi
\fi
\fi
\fi
\fi
\fi
An Abfragen gibt es ausser "=" auch noch "<" und ">". Ich Hoffe, ich habe Dir
damit weitergeholfen.
Gruss
Michael
Statt nur auf Buecher zu verweisen, ist ein kurzes Zitat (hier Einfuehrung in
TeX von N. Schwarz) auch schon mal hilfreich, um dann richtig Geschmack zum
Kauf eines Buches zu bekommen. :)
Syntax: \if<Bedingung><wahr-Teil>\else<falsch-Teil>\fi
In den einzelnen Zweigen enthaltene Makros werden nur dann expandiert, wenn der
entsprechende Zweig durchlaufen wird.
Fuer die \if<Bedingung> gibt es nun einige vordefinierte TeX-Befehle:
\ifnum zahl1=zahl2 fuer Zahlen- bzw. \ifdim dimension1=dimension2 fuer
Laengenvergleiche (neben = ist auch < und > moeglich).
Beispiel: \ifnum\pageno=1 ....\else....\fi
Dann gibts Vergleiche: \ifodd<zahlenangabe>, \if<zeichen1><zeichen2>,
\ifcat<zeichen1><zeichen2> und \ifx<makro1><makro2>;
Abfragen des Satzmodus: \ifvmode (vertical), \ifhmode (horizontal), \ifmmode
(math), \ifinner (internal vertical bzw. restricted horizontal);
Abfragen der Box-Register: \ifhbox<boxnummer>, \ifvbox<boxnummer>,
\ifvoid<boxnummer>.
Daneben gibt's dann die Moeglichkeit, eigene if-Befehle zu kreieren:
\newif\ifeigenesif vereinbart die Makros \ifeigenesif, \eigenesiftrue und
\eigenesiffalse. Die letzten beiden Makros setzen den Zustand (standard ist
false), abfragen laesst sich dann der Zustand mit \ifeigenesif ...\else...\fi.
Das ist ganz nuetzlich, wenn ein \iffinal oder \ifmitbildern definiert wird, um
komplizierte Sachen bei Entwicklungslaeufen vom Kompilieren auszublenden.
R>wozu immer alles aus zweiter Hand, wenn man es auch aus erster
R>Hand vom Grand-Wizard of TeX selbst haben kann,
Da liegt IMHO ein Missverstaendnis vor; ich glaube, dassdie
Originalnachricht die LaTeX-spezifischen \if-Abfragen meint.
Michael
> in einigen Styles finde ich diverse if-Abfragen, in den *.TEX-Dateien
> sind solche Befehle allerdings nicht zu finden, die Kopka-Einfuehrung und
> die TeX-FAQ 'OGFUDA' sagen auch nichts ueber deren Existenz.
^^^^^^^ OGFUDA geht ueber LaTeX, und nicht TeX!
\if... sind TeX-Befehle. Du findest sie z.B. im TeX-Book von DEK oder im
2.Kopka: "Erweiterungsmoeglichkeiten", Kap. 6.5.
Syntax:
\if... <abfrage> <wenn_text> [\else <sonst_text>] \fi
Bsp. (ungetestet!):
\ifnum\value{page}<10 Dieser Text erscheint vor Seite 10.\else Und dieser
dahinter.\fi
Es gibt (lt. Kopka) 16 verschiedene Standard-\if's, aber man kann mittels
\newif auch eigene (boolesche) Schalter einfuehren.
Gruss, Olaf.
> Fuer die Gestaltung eines Dokumentes waere es allerdings ganz
> hilfreich
> den Text in Abhaengigkeit von einigen Zaehlerstaenden zu
> gestalten.
> Die Frage lautet also, wie ist das mit den if-Abfragen in LaTeX?
> Harald
> --- LinkIt v2.28
> * Origin: MAUS Koeln: 0221-1390008 (2:242/42.6)
> SEEN-BY: 240/1 10 19 300 400 500 503 540 550 560 241/2 5603 242/
> 2 6 7
> SEEN-BY: 242/9 20 42 53 302 5103 243/16 20 50 91 92 93 98 99
> 245/2 3 8
> SEEN-BY: 245/31 44 63 110 246/18 62 247/6 35 248/1 249/30 2400/
> 10 2401/1
> SEEN-BY: 2401/111 2402/100 2403/12 2405/1 10 11 16 47 100
ja, ich habe ihn gefunden (IFTHEN.STY vom 16-Dec-86), eine Beschreibung
oder irgendwelche Kommentare sind leider nicht dabei. Wie benutzt man das
Teil denn, kannst Du mir mal ein paar Beispiele posten?
Harald
[..]
Heute ist
\ifnum 1=\tag Montag
\else \ifnum 2=\tag Dienstag
\else \ifnum 3=\tag Mittwoch
\else \ifnum 4=\tag Donnerstag
\else \ifnum 5=\tag Freitag
\else \ifnum 6=\tag Samstag
\else \ifnum 7=\tag Sonntag
\else was wiss ich
\fi
\fi
\fi
\fi
\fi
\fi
\fi
An Abfragen gibt es ausser "=" auch noch "<" und ">". Ich Hoffe, ich habe Dir
damit weitergeholfen.
Und fuer obiges gibt es
\ifcase <number>
<text fuer 0>\or
<text fuer 1>\or
... \else
<text fuer alle anderen faelle>
\fi
obiges wird damit vereinfacht zu:
Heute ist
\ifcase\day Sonntag\or Montag\or Dienstag\or Mittwoch\or
Donnerstag\or Freitag\or Samstag\or Sonntag\else
{\bf FEHLER!}\fi.
-bernd