fleqn 选项使得数学内部模式 (inner) 未被检测到

fleqn 选项使得数学内部模式 (inner) 未被检测到

以下 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}

相关内容