这个问题可能看起来有点疯狂!:) 但我倾向于全部我的方程式在符号处的文档中=
。事实上,我想要一个适用于所有方程式的通用格式,如下所示
我想要固定的等号与左边距的距离=右侧
如果等式的左边或右边很长,它们应该分解到下一行从左边对齐。
这是一个简单的例子
\documentclass{article}
\usepackage{amsmath}
\begin{document}
This example shows text and equations within
an \verb|align| environment.
\begin{align*}
a &= b + c + d\\
&+ e + f + g
\intertext{A small amount of text can go here with $x=2$ inline math
But not a lot of text.}
k &= l + m + n + m + n + m + n\\
&+ o + p + q
\end{align*}
\end{document}
但这不是我想要的,因为
=
与左边距的距离不固定- 如果我使用这种方法,我应该在一个环境中编写所有文档,
align
这会太混乱! - 我无法在方程式之间写太多文字
有没有什么办法可以解决这个问题?
答案1
我只考虑实施全局对齐,因为 egreg 在评论中暗示这不是一个好主意。对齐应该突出显示显示的相应部分,如果对齐所有内容,则该含义将被破坏。但是...
\documentclass{article}
\usepackage[fleqn]{amsmath}
\usepackage{etoolbox}
\setlength\mathindent{3cm}
\makeatletter
\def\align@preamble{%
&\hfil
\strut@
\setboxz@h{\@lign$\m@th\displaystyle{##}$}%
\ifmeasuring@\savefieldlength@\fi
\llap{\set@field}%
\tabskip\z@skip
&\setboxz@h{\@lign$\m@th\displaystyle{{}##}$}%
\ifmeasuring@\savefieldlength@\fi
\rlap{\set@field}
\hfil
\tabskip\alignsep@
}
\def\a{One two three four five six seven. }
\def\b{\a\a\a Red yellow blue green. \a\a\a\a}
\begin{document}
\b\b\a
\begin{align}
1+2+3+4 &=4\\
x+y &=z
\end{align}
\b\b\b
\a\a\b
\a
\begin{align}
1&=a+y+b+w+x+n+m+s+d+e\\
2&=4
\end{align}
\b
\begin{align}
1&=0\\
2&=9
\end{align}
\end{document}
这里的宏不是特别通用或强大,但展示了使用左齐但缩进的设置以及隐藏第一列的宽度的基本思想。
答案2
公式可以通过选项 左对齐,左缩进可以通过寄存器(包)fleqn
控制,然后公式的左边部分可以通过缩进空间来书写:\mathindent
amsmath
\llap
\documentclass[fleqn]{article}
\usepackage{amsmath}
\setlength{\mathindent}{3em}
\newcommand*{\ml}[1]{%
\llap{$\displaystyle#1$}%
}
\begin{document}
\begin{gather*}
\ml{a} = b + c + d\\
{} + e + f + g
\intertext{A small amount of text can go htere with $x=2$ inline math,
but not a lot of text.}
\ml{k} = l + m + n + m + n + m + n\\
{} + o + p + q\\
\ml{r + s} = t + u
\end{gather*}
\end{document}