varwidth 中的 align* 似乎忽略了 fleqn 选项

varwidth 中的 align* 似乎忽略了 fleqn 选项

我正在使用\documentclass选项[fleqn](我认为与相同\usepackage[fleqn]{amsmath})。这似乎工作正常,除了在环境align*中使用时varwidth

在此处输入图片描述

笔记:

  • align在(非星号) 环境中不会发生问题。

代码

\documentclass[fleqn]{article}
\usepackage{showframe}
\usepackage{varwidth}
\usepackage{mathtools}

\newcommand*{\MyContent}{%
Using align*:
\begin{align*}
    E &= mc^2
    \shortintertext{and}
    F &= ma
\end{align*}%
Using align
\begin{align}
    y = x + b
\end{align}%
}%

\begin{document}
\noindent
Outside of \verb|varwidth|:

\MyContent

\noindent
Inside \verb|varwidth|:

\noindent
\begin{varwidth}{\linewidth}
    \MyContent
\end{varwidth}
\end{document}

答案1

您只需要在记录的高级 varwidth 接口中设置标志。

在此处输入图片描述

\documentclass[fleqn]{article}
\usepackage{showframe}
\usepackage{varwidth}
\usepackage{mathtools}

\newcommand*{\MyContent}{%
Using align*:
\begin{align*}
    E &= mc^2
    \shortintertext{and}
    F &= ma
\end{align*}%
Using align
\begin{align}
    y = x + b
\end{align}%
}%

\makeatletter\let\@vwid@eqmodetrue\@vwid@eqmodefalse\makeatother
\begin{document}
\noindent
Outside of \verb|varwidth|:

\MyContent

\noindent
Inside \verb|varwidth|:

\noindent vw\\
\begin{varwidth}{\linewidth}
    \MyContent
\end{varwidth}

\noindent mp\\
\begin{minipage}{\linewidth}
    \MyContent
\end{minipage}

\end{document}

相关内容