In welcher Dokumentation wird die Verwendung von TeX-Bedingungen ausführlich erläutert?

In welcher Dokumentation wird die Verwendung von TeX-Bedingungen ausführlich erläutert?

Ich habe ein Dokument, das eine Vielzahl einfacher TeX-Bedingungen erfordert, z. B.:

IF #1 >= 1 AND #2 >= 10
IF #1 != “tree” OR #2 == “mountain”
IF 10 > #1 > 2

Ich habe nur begrenzte Dokumentation zu diesem Thema gefunden und die meisten sind recht knapp gehalten und nicht leicht zu verstehen, oder sie beschreiben nur die einzelnen Komponenten, erklären aber nicht, wie sie zusammen verwendet werden. Welche Dokumentation beschreibt ausführlich, wie man einfache TeX-Bedingungen erstellt, bietet dabei ausreichend Beispielcode und zeigt, wie man häufige Fehler vermeidet?

Antwort1

Wie in den Kommentaren erwähnt, ist das TeXBook das ultimative Nachschlagewerk für diese Dinge. Erwähnenswert ist aber auch die Terminologie, die bei der Suche nach kostenloser Dokumentation auf dieser Site oder anderswo hilfreich sein kann.

Die Konditionale selbst \if \ifnumund Freunde sind TeXGrundelementeanstatt in einfachem TeX definiert zu sein. TeX selbst bietet keine Booleschen Operatoren wie OR und AND, obwohl verschiedene Makropakete diese natürlich implementieren (durch geeignete Verschachtelung der primitiven if-Konstrukte), aber einfaches TeX definiert tatsächlich keine solchen Makros. Eine wörtliche (aber nicht so hilfreiche) Interpretation Ihrer Frage würde also zu der Antwort führen, dass es keine Dokumentation gibt, da einfaches TeX weder AND noch OR hat. (es gibt ein \orPrimitiv, das mit verwendet wird, \ifcaseaber das ist nicht der Infix-Konnektor, der in Ihrer Frage impliziert ist).

Ihr erstes Beispiel:

IF #1 >= 1 AND #2 >= 10

\ifnum#1>1 
  \ifnum#2>9
     yes
   \else
     no
   \fi
 \else
 no
\fi

Ihr zweites Beispiel, hier müssten Sie genauer sein

IF #1 != “tree” OR #2 == “mountain”

muss #1angegeben werden {tree}oder \def\x{tree}..... {\x}gilt als wahr, und wenn ja, möchten Sie nur eine Erweiterungsebene oder eine beliebige Zahl zulassen? Die Prüfung ist in jedem Fall ziemlich unterschiedlich.

Aber vielleicht

\def\treetest{tree}\def\mountaintest{mountain}
\def\testa{#1}\def\testb{#2}
\ifx\treetest\testa
   \ifx\mountaintest\testb
      yes
    \else
      no
    \fi
 \else
   yes
 \fi

Dieses ist eigentlich dasselbe wie das erste.

IF 10 > #1 > 2

verwandte Informationen