以下 MWE 指出,如果没有fleqn
类选项,则可以检测到数学内部模式(“i”和“o”),但是,一旦fleqn
启用类选项,就不会再检测到该模式(“i”和“i”)。
你知道发生了什么吗?
\documentclass
%[fleqn]
{article}
%
\newcommand{\test}{%
\relax%
\ifinner%
i%
\else%
o%
\fi%
}
%
\begin{document}
$\test$
%
\begin{equation}
\test
\end{equation}
\end{document}
答案1
\ifinner
并没有真正测试数学模式中任何有用的东西是否被fleqn
使用。
如果您想区分 displaystyle 那么不幸的是您需要使用\mathchoice
。
以下生成t
内联并d
显示是否[fleqn]
使用该选项。
\documentclass
[fleqn]
{article}
%
\newcommand{\test}{%
\mathchoice
{\displaystyle d}%
{\textstyle t}%
{\scriptstyle s}%
{\scriptscriptstyle 2}%
}
%
\begin{document}
$\test$
%
\begin{equation}
\test
\end{equation}
\end{document}