这是我的输出:
当然,问题在于第三行放错了位置。应该发生的情况如下:
- 左边四个等号应该对齐;
- 另外,第二行和第三行的减号和加号应该分别对齐;
- 这种额外的调整应该不是影响第一行或第四行。
这是我尝试过的(完整的工作示例简化文档,因此您可以复制):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage{ae,aecompl}
\usepackage[estonian]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage[a4paper]{geometry}
\usepackage{enumitem}
\usepackage{mathtools}
\usepackage[pdftex]{graphicx}
\newgeometry{margin=2.5cm}
\DeclareSymbolFont{upgreek}{LGR}{cmr}{m}{n}
\DeclareMathSymbol{\ppi}{\mathord}{upgreek}{`p}
\newcommand{\f}[2]{\frac{#1}{#2}}
\newcommand{\Int}[3]{\int\limits_{#1}^{#2}{#3}\, \mathrm{d}x}
\setlength\parindent{0pt}
\begin{document}
\begin{align*}
a_k &= \f{2}{\ppi}\Int{0}{\ppi}{f(x)} = \f{2}{\ppi}\Int{0}{\f{\ppi}{2}}{\left(
\f{\ppi}{2}-x\right)} + \f{2}{\ppi}\Int{\f{\ppi}{2}}{\ppi}{\ppi} = \\
&=\begin{alignedat}[t]{2}
\f{2}{\ppi} \f{\ppi}{2} \left(\f{\ppi}{2}\right)-&
\f{2}{\ppi} \f{1}{2} \left(\f{\ppi}{2}\right)^2 +&
\f{2}{\ppi}\ppi\left(\ppi-\f{\ppi}{2}\right)=\\
&= \f{\ppi}{2} -& \f{\ppi}{4} +& 2\f{\ppi}{2} =
\end{alignedat}\\
&=\f{5}{4}\ppi
\end{align*}
\end{document}
当然,这个问题感兴趣的部分是上述内容的以下子部分:
\begin{document}
\begin{align*}
a_k &= \f{2}{\ppi}\Int{0}{\ppi}{f(x)} = \f{2}{\ppi}\Int{0}{\f{\ppi}{2}}{\left(
\f{\ppi}{2}-x\right)} + \f{2}{\ppi}\Int{\f{\ppi}{2}}{\ppi}{\ppi} = \\
&=\begin{alignedat}[t]{2}
\f{2}{\ppi} \f{\ppi}{2} \left(\f{\ppi}{2}\right)-&
\f{2}{\ppi} \f{1}{2} \left(\f{\ppi}{2}\right)^2 +&
\f{2}{\ppi}\ppi\left(\ppi-\f{\ppi}{2}\right)=\\
&= \f{\ppi}{2} -& \f{\ppi}{4} +& 2\f{\ppi}{2} =
\end{alignedat}\\
&=\f{5}{4}\ppi
\end{align*}
\end{document}
我相信我明白问题所在了。看看环境中的倒数第二行alignedat
。我在那里写了&=
;不幸的是,上一行的换行\\
仅适用于alignedat
环境。它没有到达环境align*
。
因此,理想情况下,这\\
应该具有双重作用,即同时发出信号alignedat
和align*
。简而言之,我可以做这样的事情吗(参见\insertcommand{}
):
\begin{document}
\begin{align*}
a_k &= \f{2}{\ppi}\Int{0}{\ppi}{f(x)} = \f{2}{\ppi}\Int{0}{\f{\ppi}{2}}{\left(
\f{\ppi}{2}-x\right)} + \f{2}{\ppi}\Int{\f{\ppi}{2}}{\ppi}{\ppi} = \\
&=\begin{alignedat}[t]{2}
\f{2}{\ppi} \f{\ppi}{2} \left(\f{\ppi}{2}\right)-&
\f{2}{\ppi} \f{1}{2} \left(\f{\ppi}{2}\right)^2 +&
\f{2}{\ppi}\ppi\left(\ppi-\f{\ppi}{2}\right)=\\
\insertcommand{\\ &=} \f{\ppi}{2} -& \f{\ppi}{4} +& 2\f{\ppi}{2} =
\end{alignedat}\\
&=\f{5}{4}\ppi
\end{align*}
\end{document}
这样就将\\ &=
发送到align
,然后alignedat
继续 ?
我非常希望这样的微小调整就足够了;但也欢迎其他答案(如果它们不需要(很多)手动使用\!
-s等等)。
答案1
如果希望方程式中各元素之间有正确的(水平)对齐,可以使用eqparbox
的\eqmakebox[<tag>][<align>]{<stuff>}
所有元素都具有相同的<tag>
宽度,将被放入最大宽度的框中(带有可选的<align>
ment;默认为c
输入):
\documentclass{article}
\usepackage{amsmath,eqparbox}
\newcommand{\f}[2]{\frac{#1}{#2}}
\newcommand{\Int}[3]{\int\limits_{#1}^{#2}{#3}\, \mathrm{d}x}
\let\ppi\pi
\begin{document}
\begin{align*}
a_k &= \f{2}{\ppi} \Int{0}{\ppi}{f(x)}
= \f{2}{\ppi} \Int{0}{\f{\ppi}{2}}{\Bigl( \f{\ppi}{2} - x \Bigr)}
+ \f{2}{\ppi} \Int{\f{\ppi}{2}}{\ppi}{\ppi} \\
&= \eqmakebox[first]{$\displaystyle \underbrace{\f{2}{\ppi} \f{\ppi}{2} \Bigl( \f{\ppi}{2} \Bigr)}$}
- \eqmakebox[second]{$\displaystyle \underbrace{\f{2}{\ppi} \f{1}{2} \Bigl( \f{\ppi}{2} \Bigr)^2}$}
+ \eqmakebox[third]{$\displaystyle \underbrace{\f{2}{\ppi} \ppi \Bigl( \ppi - \f{\ppi}{2} \Bigr)}$} \\
&= \eqmakebox[first]{$\displaystyle \f{\ppi}{2}$}
- \eqmakebox[second]{$\displaystyle \f{\ppi}{4}$}
+ \eqmakebox[third]{$\displaystyle 2 \f{\ppi}{2}$} \\
&= \f{5}{4} \ppi
\end{align*}
\end{document}