我注意到一个答案其中\pod
使用 重新定义\mathchoice
,语句\if@display
... \else
...\fi
用于 的前两个选项\mathchoice
。我想知道: 是什么@display
意思,什么时候需要(或鼓励)使用语句\if@display
... \else
... \fi
?
答案1
\if@display
是一个单独的标记,而不是\if
@display
在 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}
基本上,这是 amsmath 中的内部构造,不打算在其他地方使用,但有时可以小心地将其用作通常构造的替代\mathchoice
。