我们如何排版带有方程编号和注释的多行表达式?

我们如何排版带有方程编号和注释的多行表达式?

您最喜欢的排版方式是什么(多行)数学表达式(中间有等号或不等号),需要同时包含数字和注释?在这里,注释指的是任何类似于“2.5.1”、“根据引理 3”、“使用 Jensen 不等式”或非常长的内容。以下图片(来自 Yurii Nesterov 的凸优化讲座) 希望能够让您了解我所谈论的内容。

多行表达式

我喜欢 Nesterov 的风格,他将注释(几乎总是引用方程式)放在中间符号上方。这让我们可以自由地将方程式编号放在任何一行。但如果注释太长,这也很容易出现问题。

另一种方法是将方程编号放在等号上方,并将注释作为tag{}。这还有一个额外的好处,如果注释太长而无法与表达式放在同一行,它会自动调整到新行(右对齐)。

我看到的另一个(尽管相对不常见的)惯例是根本不在等式中添加任何注释!遵循此惯例的作者更喜欢将注释放在等式后面的文本中。虽然这似乎是一个合理的想法,但在我看来,它破坏了多行表达式的线性、紧凑形式。

我想知道其他人遵循什么惯例以及相应的优缺点。

答案1

我不喜欢这种风格,因为它在关系符号周围留下了太多空间。

既然您询问“最佳实践”,我将介绍几种方法。

\documentclass{article}
\usepackage{amsmath}
\usepackage{newtxtext,newtxmath}

\newcommand{\relcomm}[2]{% #1 = comment, #2 = relation
  \overset{\substack{\text{\makebox[0pt]{#1}}\\\downarrow}}{#2}%
}

\begin{document}

% just to get the same numbers as in the picture
\renewcommand{\theequation}{3.1.\arabic{equation}}
\setcounter{equation}{71}

First a dummy equation for the reference
\begin{equation}\label{A}
1=1
\end{equation}
Now I present the first solution
\begin{equation}
\begin{aligned}
(g^*,x_\delta-x_*)
&\overset{\text{\eqref{A}}}{\ge} K(A^T\bar{y},\bar{x}+\delta-x^*)
 =K(\bar{y},A\delta+b-Ax_*) \\
&\overset{\hphantom{\text{\eqref{A}}}}{=} K\lVert b-Ax_*\rVert + K(A^T\bar{y},\delta)
\end{aligned}
\end{equation}
Next the second solution
\begin{equation}
\begin{aligned}
(g^*,x_\delta-x_*)
&\relcomm{\eqref{A}}{\ge} K(A^T\bar{y},\bar{x}+\delta-x^*)
 =K(\bar{y},A\delta+b-Ax_*) \\
&= K\lVert b-Ax_*\rVert + K(A^T\bar{y},\delta)
\end{aligned}
\end{equation}
and finally the third solution
\begin{equation}
\begin{aligned}
(g^*,x_\delta-x_*)
&\ge K(A^T\bar{y},\bar{x}+\delta-x^*) && \text{by \eqref{A}} \\
&=   K(\bar{y},A\delta+b-Ax_*) \\
&=   K\lVert b-Ax_*\rVert + K(A^T\bar{y},\delta)
\end{aligned}
\end{equation}

\end{document}

在此处输入图片描述

相关内容