如何在对齐环境中仅对齐某些方程式?

如何在对齐环境中仅对齐某些方程式?

以下是我得到的结果:

\begin{align*}
P[E_{m}] &= P[m] + P[2m] + P[3m] + \dots \\
&= \frac{1}{\varsigma(s)} \langle m^{-s} + (2m)^{-s} + (3m)^{-s} + \dots \rangle \\
&= \frac{1}{\varsigma(s)} \langle \underbrace{1^{-s} + 2^{-s} + 3^{-s} + \dots} \rangle m^{-s} \\
&= \frac{1}{\varsigma(s)} \langle \hspace{13mm} \varsigma(s) \hspace{13mm} \rangle m^{-s} \\
&= m^{-s}
\end{align*}

我现在希望将最后一个\rangle与倒数第二个\rangle完美对齐并居中\varsigma(s)。这不会将任何内容与第一个对齐\rangle(与现在基本相同,但具有完美和自动对齐)。

我已经发现这看起来像是我一开始需要的但实际上不是(因为我不想将所有方程式与括号对齐)。

答案1

\langle您可以测量-内内容的长度\rangle并进行\varsigma(s)相应的定位:

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}% http://ctan.org/pkg/amsmath
\newlength{\templen}
\settowidth{\templen}{$1^{-s} + 2^{-s} + 3^{-s} + \cdots$}
\begin{document}
\begin{align*}
  P[E_{m}] &= P[m] + P[2m] + P[3m] + \cdots \\
        &= \frac{1}{\varsigma(s)} \langle m^{-s} + (2m)^{-s} + (3m)^{-s} + \cdots \rangle \\
        &= \frac{1}{\varsigma(s)} \langle 
          \hspace*{.5\templen}\mathclap{\underbrace{1^{-s} + 2^{-s} + 3^{-s} + \cdots}}\hspace*{.5\templen} \rangle m^{-s} \\
        &= \frac{1}{\varsigma(s)} \langle 
          \hspace*{.5\templen}\mathclap{\varsigma(s)}\hspace*{.5\templen} \rangle m^{-s} \\
        &= m^{-s}
\end{align*}
\end{document}

为了保持一致性,我也\underbrace对内部进行了隔开\mathclap,因为否则会出现轻微的错位。

这种方法背后的想法是先步进到预期宽度的一半,然后使用模式\mathclap放置内容mathc在零宽度框中输入,然后再步进剩下的半宽来完成宽度调整。


您还可以在页面上标记位置并使用savepos以下模块计算距离zref

\documentclass{article}
\usepackage{mathtools}% http://ctan.org/pkg/amsmath
\usepackage{zref-savepos}% http://ctan.org/pkg/zref
\makeatletter
% \zsaveposx is defined since 2011/12/05 v2.23 of zref-savepos
\@ifundefined{zsaveposx}{\let\zsaveposx\zsavepos}{}
\makeatother
\newcounter{hposcnt}
\renewcommand*{\thehposcnt}{hpos\number\value{hposcnt}}
\newcommand*{\SPl}{% set left position
  \stepcounter{hposcnt}%
  \zsaveposx{\thehposcnt spl}%
}
\newcommand*{\SPr}{% set right position
  \zsaveposx{\thehposcnt spr}%
}

\makeatother
\begin{document}
\begin{align*}
  P[E_{m}] &= P[m] + P[2m] + P[3m] + \cdots \\
        &= \frac{1}{\varsigma(s)} \langle m^{-s} + (2m)^{-s} + (3m)^{-s} + \cdots \rangle \\
        &= \frac{1}{\varsigma(s)} \langle 
          \SPl\underbrace{1^{-s} + 2^{-s} + 3^{-s} + \cdots}\SPr \rangle m^{-s} \\
        &= \frac{1}{\varsigma(s)} \langle 
          \makebox[\dimexpr\zposx{\thehposcnt spr}sp-\zposx{\thehposcnt spl}sp]{$\varsigma(s)$} \rangle m^{-s} \\
        &= m^{-s}
\end{align*}
\end{document}

\SPl它要求您使用和标记左侧和右侧位置\SPr,然后立即使用它来计算点之间的差异(在设置另一个左/右标记之前)。

答案2

即使尖括号排列得非常整齐,要让读者明白应该\underbrace指向的对象是\varsigma(s)下一行中唯一的术语,也需要一些运气。更明智的做法可能是=\varsigma(s)直接在下括号下方书写,然后在下一行提供一点点冗余:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
P[E_{m}] &= P[m] + P[2m] + P[3m] + \dots \\
&= \frac{1}{\varsigma(s)} \langle m^{-s} + (2m)^{-s} + (3m)^{-s} + \dots \rangle \\
&= \frac{1}{\varsigma(s)} \langle\, \underbrace{1^{-s} + 2^{-s} + 3^{-s} + \dots}_{=\varsigma(s)}\, \rangle m^{-s} \\
&= \frac{1}{\varsigma(s)} \langle \varsigma(s) \rangle m^{-s} \\
&= m^{-s}
\end{align*}
\end{document}

相关内容