First-class \if \else \fi が欲しい
\newif{\iffoo} してあったとして、\iffoo の影響下にある所だけで真になるような flag を作りたい。
% ここでは偽 \iffoo % ここでは真 \else % ここでも真 \fi % ここでは偽
さて、これを↓に書いた要領で
\newif{\ifincond} \incondfalse \let\Oldiffoo\iffoo \renewcommand{\iffoo}{\Oldiffoo\incondtrue} \renewcommand{\fifoo}{\fi\incondtrue} test: \ifincond true \else false \fifoo \iffoo \ifincond true \else false \fifoo \else \ifincond true \else false \fifoo \fi \ifincond true \else false \fifoo
とかやると、「\fi が見つからんぞゴルァ」と怒られる。\fi を \fifoo に隠したのがアカンのかと思って s/\fifoo/\fi/g してみても、同じような事を言われる。でも test: 以降を全部消して \fifoo だけにすると "extra \fi" とか言われるし。意味分からん。
追記: ヘタレなので毎回 \iffoo\incondtrue ... \fi\incondfalse と書くことに。すると案の定数ヶ所で \incondfalse を忘れて微妙に変な事に。