ptex,luatex共通ソースでの\iftdir

ptex,luatex共通ソースでの\iftdir

- ijaradnam の投稿
返信数: 2
platex,lualatex共通に使えるソースを作ろうと場合分けしました。
例えば
\ifluatex
\else
\iftdirい\fi
\fi
などとすると、luatexでは\iftdirをif文と認識されてないらしく、
\fiが2つあるというエラーになります。
こういう場合どう対処したらいいのでしょうか?
ijaradnam への返信

Re: ptex,luatex共通ソースでの\iftdir

- 北見 けん の投稿
LuaTeX のことはよく知らないのですが、
最初に \iftdir や \ifluatex が使えるかどうかを調べて、
使えないようなら、
以降は \iffalse として扱うようにしてしまえばいいと思います。

\expandafter\ifx\csname iftdir\endcsname\relax
\expandafter\let\csname iftdir\expandafter\endcsname\csname iffalse\endcsname
\fi

\expandafter\ifx\csname ifluatex\endcsname\relax
\expandafter\let\csname ifluatex\expandafter\endcsname\csname iffalse\endcsname
\fi

\show\iftdir

\show\ifluatex

LaTeX流にやるなら、\@ifundefined が使えます。結果は同じです。

\makeatletter

\@ifundefined{iftdir}{\let\iftdir\iffalse}{}
\@ifundefined{ifluatex}{\let\ifluatex\iffalse}{}

\show\iftdir
\show\ifluatex

\makeatother