2012年6月26日火曜日

TeX で #if 0 ~ #endif と同じことをする

C 言語などだと プリプロセッサを使って
#if 0
   この範囲をコンパイルしない
#endif
ということができるので便利である。これで、必要に応じて #if 0 と #if 1 を切り替えるだけで十分である。
これを TeX で行おうとすると
\if0
   この範囲をコンパイルしない
\fi
とするとコンパイルからは外せるのだが、\if1 としても有効にならないので \fi を削除せねばならず面倒である。
このときには、\iftrue~\fi と \iffalse~\fi で切り替えられるが #if 0, #if 1 に比べると文字数が多く、面倒である。


この場合には、
\ifx11
   この範囲をコンパイル
\fi

\ifx10
   この範囲をコンパイルしない
\fi
としておけば、末尾の0,1 を切り替えるだけでOKとなる。
これは、\ifx が次の2文字列が同じであるかどうかでコンパイルを切り分けているためである。
おそらく、マクロを使うともっときれいに書けるはずである。


今日の作業内容:プレゼン準備 3h + SDPA-C 2h
今日のランチ:四川 鶏ニンニク炒め
明日の予測作業時間:3h



0 件のコメント:

コメントを投稿