我正在尝试将特定方程式左对齐。为此,我创建了一个新环境(因为我需要它几次)。
现在,我发现有多种方法可以做到这一点:
- 使用
fleqn
选项 - 但这会对文档中的所有方程式进行左对齐 flalign
- 但为此我总是必须&&
在最后写,而且它似乎在我定义的环境中不起作用
我希望能够使用类似这样的代码来解决这种特殊方程
\begin{leftalignedequation}
...
\end{leftalignedequation}
它应该自己创造所有的魔法。
所以我的问题是:您认为实现这一目标的最佳方法是什么?我似乎没有找到一个好的解决方案。
答案1
\@fleqntrue
您可以通过和切换方程式的左对齐\@fleqnfalse
。更改\@mathindent
将改变它们与左边距的偏移量。也许最简单的方法是通过定义新环境来关闭文档部分内容的此功能fleqns
:
\makeatletter
\newenvironment{fleqns}[1][0pt]{\@mathmargin=#1\@fleqntrue}{\@fleqnfalse}
\makeatother
这里有一个可选参数允许您设置缩进。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newenvironment{fleqns}[1][0pt]{\@mathmargin=#1\@fleqntrue}{\@fleqnfalse}
\makeatother
\begin{document}
\begin{equation}
x=y
\end{equation}
\begin{fleqns}
\begin{equation}
z=t
\end{equation}
text
\begin{gather}
p=q\\
y=r
\end{gather}
\end{fleqns}
\begin{equation}
s=t
\end{equation}
\begin{fleqns}[2em]
\begin{equation}
z=t
\end{equation}
text
\begin{gather}
p=q\\
y=r
\end{gather}
\end{fleqns}
\end{document}
您可以扩展它来定义不同方程环境的 flushleft 版本,但这需要为每种情况提供新的定义。