如何暂时逃离嵌套在“align*”环境中的“alignedat”环境?

如何暂时逃离嵌套在“align*”环境中的“alignedat”环境?

这是我的输出:

输出

当然,问题在于第三行放错了位置。应该发生的情况如下:

  • 左边四个等号应该对齐;
  • 另外,第二行和第三行的减号和加号应该分别对齐;
  • 这种额外的调整应该不是影响第一行或第四行。

这是我尝试过的(完整的工作示例简化文档,因此您可以复制):

\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*

因此,理想情况下,这\\应该具有双重作用,即同时发出信号alignedatalign*。简而言之,我可以做这样的事情吗(参见\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}

相关内容