TeX 条件文の使用方法を詳しく説明しているドキュメントは何ですか?

TeX 条件文の使用方法を詳しく説明しているドキュメントは何ですか?

さまざまなプレーン TeX 条件文を必要とする文書があります。例:

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

このテーマに関するドキュメントは限られており、そのほとんどは非常に簡潔で理解しにくいか、個々のコンポーネントについてのみ説明されていて、それらがどのように一緒に使用されるかは説明されていません。プレーンな TeX 条件文を作成する方法を徹底的に説明し、十分なサンプル コードを提供し、よくある間違いを避ける方法を示すドキュメントはどれでしょうか。

答え1

コメントで述べたように、TeXBook はこれらのことに関する究極のリファレンスです。ただし、このサイトまたは他の場所で無料のドキュメントを検索するときに役立つ用語についても言及する価値があります。

条件文自体\if \ifnumとその仲間はTeXプリミティブプレーン TeX では定義されていません。TeX 自体は OR や AND などのブール演算子を提供していませんが、もちろんさまざまなマクロ パッケージがこれらを実装しています (プリミティブ if 構造を適切にネストすることにより)。ただし、プレーン TeX では実際にはそのようなマクロは定義されていません。したがって、質問を文字通りに読むと (あまり役に立ちませんが)、プレーン TeX には AND や OR がないため、ドキュメントはないという答えになります (\or使用されるプリミティブはあります\ifcaseが、それは質問で示唆されている中置コネクタではありません)。

最初の例:

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

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

2番目の例では、もっと具体的に説明する必要があります

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

#1は、として指定される必要があるか{tree}、または\def\x{tree}..... {\x}true としてカウントされるか、また、そうである場合、1 レベルの拡張のみを許可するか、または任意の数を許可するかを決定します。テストは、それぞれの場合でかなり異なります。

でもひょっとしたら

\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

実はこれも最初のものと同じです。

IF 10 > #1 > 2

関連情報