
Notei que em parteuma respostaonde \pod
é redefinido usando \mathchoice
, a instrução \if@display
... \else
... \fi
é usada para as duas primeiras opções de \mathchoice
. Fiquei me perguntando: o que @display
significa e quando é necessário (ou encorajado) usar a declaração \if@display
... \else
... \fi
?
Responder1
\if@display
é um token único, não \if
@display
é definido e documentado da seguinte forma em amsmath:
% The straightforward \cs{ifinner} test to see if the current math
% context is non-display, fails if, for instance, we are typesetting
% a multiline display within an \cs{halign}, with the pieces going
% into constructions like
% \begin{verbatim}
% $\displaystyle...$
% \end{verbatim}
% So we need a better test to find out if we are `in a display'. We
% therefore create \cs{if@display}.
%
% \begin{macrocode}
\newif\if@display
\everydisplay\@xp{\the\everydisplay \@displaytrue}
% \end{macrocode}
Basicamente, esta é uma construção interna do amsmath que não se destina a ser usada em outro lugar, embora às vezes possa ser usada com cuidado como uma alternativa à \mathchoice
construção usual.