在 amsmath 对齐环境中过度支撑

在 amsmath 对齐环境中过度支撑

我有以下相当大的方程。

\begin{alignat*}{16}
1 &= &&b_m     &&          &c_n + &b_m     &&          &c_{n-1} &&R_L + &b_m     &&          &c_{n-2} &R_L^2 + &\cdots + &b_m     &&          &&c_1 &R_L^{n-1} \\
  &+ &&b_{m-1} &&R_S^1     &c_n + &b_{m-1} &&R_S^1     &c_{n-1} &&R_L + &b_{m-1} &&R_S^1     &c_{n-2} &R_L^2 + &\cdots + &b_{m-1} &&R_S^1     &&c_1 &R_L^{n-1} \\
  &+ &&b_{m-2} &&R_S^2     &c_n + &b_{m-2} &&R_S^2     &c_{n-1} &&R_L + &b_{m-2} &&R_S^2     &c_{n-2} &R_L^2 + &\cdots + &b_{m-2} &&R_S^2     &&c_1 &R_L^{n-1} \\
  &  &&        &&          &      &        &&          &        &&      & \vdots \\
  &+ &&b_1     &&R_S^{m-1} &c_n + &b_1     &&R_S^{m-1} &c_{n-1} &&R_L + &b_1     &&R_S^{m-1} &c_{n-2} &R_L^2 + &\cdots + &b_1     &&R_S^{m-1} &&c_1 &R_L^{n-1}
\end{alignat*}

我想使用上括号和下括号来分解事物,例如使用:

&+ &&b_1     &&R_S^{m-1} &c_n + &b_1     &&R_S^{m-1} &c_{n-1} &&R_L + &b_1     &&R_S^{m-1} &c_{n-2} &R_L^2 + &\cdots + \underbrace{&b_1     &&R_S^{m-1} &&c_1 &R_L^{n-1}}_{Explanation}

然而,对齐环境似乎不喜欢这样;也许是因为对齐符号被藏在了下括号调用里面。

是否可以同时对齐和过度/不足支撑我的方程式?

答案1

这是一个使用的解决方案array包。这并不理想,因为您必须指定括号应该跨越的宽度。有一种方法可以使用 来跨越列\extracolsep{\fill},但我不知道将其放在哪里以便\hphantom跨越整个列。但希望这能让您开始:

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}

\newcolumntype{L}{l@{}}%

\begin{document}
\newcommand*{\WidthToSpan}{{R_L^2}{+}{\cdots +}b_{m-2} R_S^{m-1} c_1 R_L^{n-1}}%
\[
\begin{array}{LLLLLLLLLLLLLLLLLL}
1 &= &b_m     &          &c_n + &b_m     &          &c_{n-1} &R_L + &b_m     &          &c_{n-2} &R_L^2 + &\cdots + &b_m     &          &c_1 &R_L^{n-1} \\
  &+ &b_{m-1} &R_S^1     &c_n + &b_{m-1} &R_S^1     &c_{n-1} &R_L + &b_{m-1} &R_S^1     &c_{n-2} &R_L^2 + &\cdots + &b_{m-1} &R_S^1     &c_1 &R_L^{n-1} \\
  &+ &b_{m-2} &R_S^2     &c_n + &b_{m-2} &R_S^2     &c_{n-1} &R_L + &b_{m-2} &R_S^2     &c_{n-2} &R_L^2 + &\cdots + &b_{m-2} &R_S^2     &c_1 &R_L^{n-1} \\
  &  &        &          &      &        &          &        &      & \vdots \\
  &+ &b_1     &R_S^{m-1} &c_n + &b_1     &R_S^{m-1} &c_{n-1} &R_L + &b_1     &R_S^{m-1} &c_{n-2} &R_L^2 + &\cdots + &b_1     &R_S^{m-1} &c_1 &R_L^{n-1}\\
  &  &     & & & & & & & &  &  & \multicolumn{6}{@{}c}{\underbrace{\hphantom{\WidthToSpan}}_{\text{Explanation}}}
\end{array}
\]
\end{document}

在此处输入图片描述

答案2

难以置信这竟然没有tikz解决方案。我在这里改编了以下解决方案花括号用于在等式中插入内容?例如倒置的下括号

这用于\tikzmark{}标记括号的起点和终点:

... &\tikzmark{StartBrace}R_L^2 + &\cdots + &b_1 &R_S^{m-1} &c_1 &R_L^{n-1}\tikzmark{EndBrace}

StartBrace此处和端点使用的名称EndBrace是任意的,因此,如果需要多个括号,您可以选择不同的名称。然后,在数组完成后,您将传递这两个名称以及所需的任何可选样式更改,以及要放置在括号下的文本:

 \InsertUnderBrace[draw=red,text=blue]{StartBrace}{EndBrace}{Explanation}

得出:

在此处输入图片描述

笔记:

  • 这确实需要两次运行。第一次确定位置,第二次进行绘图。
  • 提供的代码片段中二元运算符周围的数学间距不正确。我也调整了这些间距,同时保持了您想要的对齐方式。

参考:

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.pathreplacing}

\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}

\newcommand*{\BraceAmplitude}{0.5em}%  Can be tweaked if
\newcommand*{\VerticalOffset}{0.5ex}%  necessary.
\newcommand*{\InsertUnderBrace}[4][]{%
    \begin{tikzpicture}[overlay,remember picture]
\draw [decoration={brace,amplitude=\BraceAmplitude},decorate, thick,draw=blue,text=black,#1]
        ($(#3)+(0,-\VerticalOffset)$) -- 
        ($(#2)+(0,-\VerticalOffset)$)
        node [below=\VerticalOffset, midway] {#4};
    \end{tikzpicture}%
}%

\begin{document}
\begin{alignat*}{16}
1 &= b_m     &&          &&c_n + b_m     &&          &&c_{n-1} R_L + b_m     &&          &c_{n-2} &R_L^2 + \cdots + b_m     &&          &&c_1 &R_L^{n-1} \\
  &+ b_{m-1} &&R_S^1     &&c_n + b_{m-1} &&R_S^1     &&c_{n-1} R_L + b_{m-1} &&R_S^1     &c_{n-2} &R_L^2 + \cdots + b_{m-1} &&R_S^1     &&c_1 &R_L^{n-1} \\
  &+ b_{m-2} &&R_S^2     &&c_n + b_{m-2} &&R_S^2     &&c_{n-1} R_L + b_{m-2} &&R_S^2     &c_{n-2} &R_L^2 + \cdots + b_{m-2} &&R_S^2     &&c_1 &R_L^{n-1} \\
  &          &&          &&              &&          &&               \vdots \\
  &+ b_1     &&R_S^{m-1} &&c_n + b_1     &&R_S^{m-1} &&c_{n-1} R_L + b_1     &&R_S^{m-1} &c_{n-2} &\tikzmark{StartBrace}R_L^2 + \cdots + b_1 &&R_S^{m-1} &&c_1 &R_L^{n-1}\tikzmark{EndBrace}
\end{alignat*}
\InsertUnderBrace[draw=red,text=blue]{StartBrace}{EndBrace}{Explanation}
\end{document}

答案3

Richard:以下代码有三组方程。第一组基本上是使用alignat结构的表达式集,但使用{}+{}项而不是简单+项来帮助 TeX 找到更好的水平间距(通过将加号视为 rel 运算符)。第二个结构复制了第一个结构,但使用环境align*;请注意使用\phantoms(在序言中定义)来强制正确的列对齐。然后,第三个结构演示了如何使用\overbrace命令向组中的 $n$ 个组添加注释align

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}

\newcommand{\pa}{\phantom{{}-1}}
\newcommand{\pb}{\phantom{R_S^{1-1}}}
\newcommand{\pc}{\phantom{.-1}}
\newcommand{\pp}{\phantom{{}+{}}}
\newcommand{\pq}{\phantom{{}+}}
\begin{document}

\begin{alignat*}{16}
1 =& &&b_m     &&          &c_n {}+{} &b_m     &&          &c_{n-1} &&R_L {}+{} &b_m     &&          &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_m     &&          &&c_1 &R_L^{n-1} \\
  &{}+{} &&b_{m-1} &&R_S^1     &c_n {}+{} &b_{m-1} &&R_S^1     &c_{n-1} &&R_L {}+{} &b_{m-1} &&R_S^1     &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_{m-1} &&R_S^1     &&c_1 &R_L^{n-1} \\
  &{}+{} &&b_{m-2} &&R_S^2     &c_n {}+{} &b_{m-2} &&R_S^2     &c_{n-1} &&R_L {}+{} &b_{m-2} &&R_S^2     &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_{m-2} &&R_S^2     &&c_1 &R_L^{n-1} \\
  & \phantom{c}\vdots \\
  &{}+{} &&b_1     &&R_S^{m-1} &c_n {}+{} &b_1     &&R_S^{m-1} &c_{n-1} &&R_L {}+{} &b_1     &&R_S^{m-1} &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_1     &&R_S^{m-1} &&c_1 &R_L^{n-1}
\end{alignat*}

\begin{align*}
1 =  &\pp b_{m\pc}\pb     c_n +  b_{m\pc}\pb       c_{n-1} R_L  +  b_{m\pc}\pb        c_{n-2} R_L^2 + \dots + b_{m\pc}\pb        c_1 R_L^{n-1} \\
       &+ b_{m-1} R_S^{1\pc}c_n +  b_{m-1} R_S^{1\pc}c_{n-1} R_L  +  b_{m-1} R_S^{1\pc} c_{n-2} R_L^2 + \dots + b_{m-1} R_S^{1\pc} c_1 R_L^{n-1} \\
       &+ b_{m-2} R_S^{2\pc}c_n +  b_{m-2} R_S^{2\pc}c_{n-1} R_L  +  b_{m-2} R_S^{2\pc} c_{n-2} R_L^2 + \dots + b_{m-2} R_S^{2\pc} c_1 R_L^{n-1} \\
       &\pp\vdots \\
       &+ b_{1\pc}R_S^{m-1} c_n +  b_{1\pc}R_S^{m-1\phantom{.}} c_{n-1} R_L  +  b_{1\pc}R_S^{m-1}  c_{n-2} R_L^2 + \dots + b_{1\pc}R_S^{m-1}  c_1 R_L^{n-1}
\end{align*}

\begin{align*}
1 =  &\pq \overbrace{b_{m\pc}\pb     c_n}^{\text{First Group}} {}+ \overbrace{b_{m\pc}\pb       c_{n-1} R_L}^{\text{Second Group}} {}+ \overbrace{b_{m\pc}\pb c_{n-2} R_L^2}^{\text{Third Group}} {}+ \dots + \overbrace{b_{m\pc}\pb        c_1 R_L^{n-1}}^{\text{$n$-th Group}} \\[1ex]
       &+ b_{m-1} R_S^{1\pc}c_n +  b_{m-1} R_S^{1\pc}c_{n-1} R_L  +    b_{m-1} R_S^{1\pc} c_{n-2} R_L^2 + \dots + b_{m-1} R_S^{1\pc} c_1 R_L^{n-1} \\[2ex]
       &+ b_{m-2} R_S^{2\pc}c_n +  b_{m-2} R_S^{2\pc}c_{n-1} R_L  + b_{m-2} R_S^{2\pc} c_{n-2} R_L^2 + \dots + b_{m-2} R_S^{2\pc} c_1 R_L^{n-1} \\
       &\pp\vdots \\[2ex]
       &+ b_{1\pc}R_S^{m-1} c_n +  b_{1\pc}R_S^{m-1\phantom{.}} c_{n-1} R_L  +  b_{1\pc}R_S^{m-1}  c_{n-2} R_L^2 + \dots + b_{1\pc}R_S^{m-1}  c_1 R_L^{n-1}
\end{align*}
\end{document}

不同的方程式样式

相关内容