我有一個帶有註釋的方程式列表,如下所示:
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align}
aaaa &= 1 &&\text{for $X$} \\
bbbb &= 1 &&\text{for $Y$} \\
c &= 1 &&\text{for $Z$} \\
d &= 12 &&\text{for $Z$}
\end{align}
\end{document}
由於最後兩行具有相同的註釋,我想在那裡添加一個大括號並將註釋放在大括號旁邊,如下所示:
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align}
\left. \begin{aligned}
c &= 1 \\
d &= 12 \\
\end{aligned} \right\} &&\text{for $Z$}
\end{align}
\end{document}
將其插入原始程式碼給了我一些類似的東西
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align}
aaaa &= 1 &&\text{for $X$} \\
bbbb &= 1 &&\text{for $Y$} \\
\left. \begin{aligned}
c &= 1 \\
d &= 12 \\
\end{aligned} \right\}& &&\text{for $Z$}
\end{align}
\end{document}
不起作用的是等號的對齊:我只能將對齊環境內的等號彼此對齊,而不能將外部的等號對齊。
我還希望對齊環境將內容視為三行並對其進行編號。
這是 Q 的後續問題:內對齊 內對齊其中給出了無行編號問題的解決方案; Q 中討論了類似的問題:跨“對齊”方程塊對齊——然而,此解決方案使用了陣列環境,因此也不允許行編號。
提前致謝。
答案1
這解決方案芭芭拉·比頓(Barbara Beeton)提出的問題接近正確的想法。事實上,您可以透過將您希望編號的每個物件放入其自己的aligned
.然而,這是一項相當大的工作,而且以下變體似乎運行得足夠好:
\documentclass{scrartcl}
\usepackage{amsmath}
\newlength{\myleftlen}
\newcommand{\setmyleftlen}[1]{\settowidth{\myleftlen}{\( \displaystyle
#1\)}}
\newcommand{\backup}{\hskip-\myleftlen\mkern-7mu}
\begin{document}
\setmyleftlen{ddd}
\begin{align}
aaaa &= 1 &&\text{for $X$} \\
bbbb &= 1 &&\text{for $Y$} \\
&\left.\backup\begin{aligned}
c &= 1 \\
ddd &= 12 \\
\end{aligned} \right\} &&\text{for $Z$}
\end{align}
\end{document}
在開始之前,您需要使用環境\setmyleftlen
中最長的左側進行呼叫。程式碼的作用是將區塊向左移動這個數量加上一個額外的。該數量是猜測,但似乎與 AMS 數學命令使用的其他一些值相符。以(數學單位)表示,它將很好地擴展到其他磅值。aligned
align
aligned
7mu
7mu
mu
答案2
這是 @AndrewSwann 答案的改進版本,如果用ddd
更大的東西替換示例中的 ,並消除神奇的 ,則可以正確縮放7mu
。我還添加了一個範例來演示如何嵌套它。
\documentclass[preview]{standalone}
\usepackage{amsmath}
\usepackage{calc}
\usepackage{xparse}
\newlength\mytemplena
\newlength\mytemplenb
\DeclareDocumentCommand\myalignalign{sm}
{
\settowidth{\mytemplena}{$\displaystyle #2$}%
\setlength\mytemplenb{\widthof{$\displaystyle=$}/2}%
\hskip-\mytemplena%
\hskip\IfBooleanTF#1{-\mytemplenb}{+\mytemplenb}%
}
\begin{document}
\begin{align}
a &= 1\\
bb &= 1\\
\myalignalign{eeeeee} &\left.
\myalignalign*{eeeeee}
\begin{aligned}
\myalignalign{dddd} &\left.
\myalignalign*{dddd}
\begin{aligned}
ccc &= 1 \\
dddd &= 123\\
\end{aligned} \quad
\right\} Z1,Z2\\
eeeeee &= 12345678\\
\end{aligned} \quad
\right\} Z1,Z2,Z3
\end{align}
\end{document}