![对多列方程进行编号和对齐](https://linux22.com/image/297055/%E5%AF%B9%E5%A4%9A%E5%88%97%E6%96%B9%E7%A8%8B%E8%BF%9B%E8%A1%8C%E7%BC%96%E5%8F%B7%E5%92%8C%E5%AF%B9%E9%BD%90.png)
我寻找一种方法来对齐具有多列的方程式,其中应满足以下条件:
方程标签应该在最后一行
等号应居中并对齐
使用alignat
可以得到正确的编号,但我无法像overset
引用那样将最后一个等号居中放在第二行。使用array
内部equation
可以得到正确的对齐(尽管列之间有更多空间),但编号现在居中而不是在末尾。
\documentclass{book}
\usepackage{amsmath}
\renewcommand\theequation{\thesection.\arabic{equation}}
\begin{document}
\chapter{}
\section{Section}
\subsection{subsection}
\begin{equation}
1 + 1 = 2
\label{eq:1}
\end{equation}
\begin{alignat}{3}
E =& n^\mu n^\nu T_{\mu\nu} &&=&& \rho \notag \\
T =& T^\mu_\mu = -\rho + p_r + 2 p_\perp
&&\overset{(\ref{eq:1})}{=}&& 2 (p_\perp -\rho) \notag \\
S =& T+E &&=&& 2 p_\perp - \rho \notag \\
p^\mu =& - \gamma^{\mu \alpha} n^\beta T_{\alpha \beta} &&=&& 0 \quad .
\end{alignat}
\begin{equation}
\begin{array}{cclcl}
E &=& n^\mu n^\nu T_{\mu\nu} &=& \rho \\
T &=& T^\mu_\mu = -\rho + p_r + 2 p_\perp
&\overset{(\ref{eq:1})}{=}& 2 (p_\perp -\rho) \\
S &=& T+E &= & 2 p_\perp - \rho \\
p^\mu &=& - \gamma^{\mu \alpha} n^\beta T_{\alpha \beta} &= & 0 \quad .
\end{array}
\end{equation}
\end{document}
答案1
我的答案https://tex.stackexchange.com/a/136374/15925可以进行调整以引入一个命令,使材料在显示数学和相关环境\cmdcol
中的一列中居中:alignat
\documentclass{book}
\usepackage{mathtools}
\numberwithin{equation}{section}
\makeatletter
\newcommand{\cmdcol}[1]{\omit\hfil\strut@ \( \m@th\displaystyle #1 \)\hfil}
\makeatother
\begin{document}
\chapter{}
\section{Section}
\subsection{Subsection}
\begin{equation}
1 + 1 = 2
\label{eq:1}
\end{equation}
\begin{alignat}{2}
E &= n^\mu n^\nu T_{\mu\nu} &\cmdcol{=}& \rho \notag \\
T &= T^\mu_\mu = -\rho + p_r + 2 p_\perp
&\cmdcol{\overset{\eqref{eq:1}}{=}}& 2 (p_\perp -\rho) \notag \\
S &= T+E &\cmdcol{=}& 2 p_\perp - \rho \notag \\
p^\mu &= - \gamma^{\mu \alpha} n^\beta T_{\alpha \beta} &\cmdcol{=}& 0 \quad .
\end{alignat}
\end{document}
该命令的结构\cmdcol
被构建来模仿和朋友ams
中列的标准定义align
。
顺便说一句, 更能体现你的编号方案\numberwithin
。我已切换到mathtools
而不是amsmath
该包提供的进一步扩展,它amsmath
无论如何都会加载。
答案2
您的想法array
很好,但需要一些改进。不过,我不会将等式编号放在等号上方,而是放在侧面。我将展示这两种方式。
\documentclass{book}
\usepackage{amsmath,array}
\newcolumntype{R}{>{\displaystyle}r}
\newcolumntype{C}{>{\displaystyle{}}c<{{}}}
\newcolumntype{L}{>{\displaystyle}l}
\renewcommand\theequation{\thesection.\arabic{equation}}
\begin{document}
\chapter{Title}
\section{Section}
\subsection{subsection}
\begin{equation}
1 + 1 = 2
\label{eq:1}
\end{equation}
\begin{equation}
\renewcommand{\arraystretch}{1.3}
\setlength{\arraycolsep}{0pt}
\begin{array}[b]{RCLCL}
E &=& n^\mu n^\nu T_{\mu\nu} &=& \rho, \\
T &=& T^\mu_\mu = -\rho + p_r + 2 p_\perp
&\overset{(\ref{eq:1})}{=}& 2 (p_\perp -\rho), \\
S &=& T+E &= & 2 p_\perp - \rho, \\
p^\mu &=& - \gamma^{\mu \alpha} n^\beta T_{\alpha \beta} &= & 0.
\end{array}
\end{equation}
\begin{equation}
\begin{alignedat}[b]{3}
E &= n^\mu n^\nu T_{\mu\nu} &&= \rho, \\
T &= T^\mu_\mu = -\rho + p_r + 2 p_\perp &&= 2 (p_\perp -\rho),
&&\quad\text{by \eqref{eq:1}} \\
S &= T+E &&= 2 p_\perp - \rho, \\
p^\mu &= -\gamma^{\mu \alpha} n^\beta T_{\alpha \beta} &&= 0.
\end{alignedat}
\end{equation}
\end{document}