我正在尝试使用alignat*
对方程式进行右对齐注释。注释已正确对齐,但我找不到确保它们与文档边缘对齐的方法。注释可能没有完全对齐:
或者评论渗入到边缘:
注释的位置似乎由最长方程长度和最长注释长度决定。然而,这不是必须的,因为有些长方程有短注释,不会碰到它们。我希望它是这样的:
给出了 LaTeX 代码。我必须使用report
文档类。谢谢。
\documentclass[11pt]{report}
\usepackage[fleqn]{amsmath}
\usepackage{amssymb}
% For binomial coefficients that look better i.e. \mbinom
\usepackage{nccmath}
\usepackage{float}
\usepackage{geometry}
\usepackage{bbm}
\begin{document}
% First example: comments aren't far enough right
{\setlength{\mathindent}{0cm}
\begin{alignat*}{2}
&= \sum_{\substack{B \le \beta \\ |B| < \ell}} (-1)^{|B|} \mbinom{\beta}{B} f_{B} \sum_{\substack{P \le A \\ |P| = |B|}} \mbinom{A}{P} g(P + B) \Psi_{A - P} &\small\text{[induction hypothesis]} \\
&= \sum_{P \le A } \sum_{B \le \beta} \mathbbm{1}_{|P| = |B|} \mathbbm{1}_{|B| < \ell} \thinspace (-1)^{|B|} \mbinom{A}{P} \mbinom{\beta}{B} \Psi_{A - P} &\small\text{[Thm.~1]} \\ \\
&= \sum_{P \le A } \sum_{B \le \beta} \mathbbm{1}_{|P| = |B|} \mathbbm{1}_{|P| < \ell} \thinspace (-1)^{|P|} \mbinom{A}{P} \mbinom{\beta}{B} \Psi_{A - P} &\small\text{[since $|P| = |B|$]}
\end{alignat*}}
\bigskip
\bigskip
% Second example: comments bleed into the margin
{\setlength{\mathindent}{0cm}
\begin{alignat*}{2}
&= \sum_{\substack{B \le \beta \\ |B| < \ell}} (-1)^{|B|} \mbinom{\beta}{B} H_{\beta - B} \sum_{\substack{P \le A \\ |P| = |B|}} \mbinom{A}{P} \langle H_{P}, H_{B} \rangle H_{A - P} &\small\text{[induction hypothesis]} \\
&= \sum_{P \le A } \sum_{B \le \beta} \mathbbm{1}_{|P| = |B|} \mathbbm{1}_{|B| < \ell} \thinspace (-1)^{|B|} \mbinom{A}{P} \mbinom{\beta}{B} \langle H_{P}, H_{B} \rangle \Psi_{A - P} \Psi_{\beta - B} &\small\text{[Thm.~2]} \\
&\vdots \\
&= \sum_{\substack{P \le A \\ |P| < |A| = \ell} } \thinspace (-1)^{|P|} \mbinom{A}{P} H_{A - P} \thinspace \partial^{P} H_{\beta} &\small\text{[induc.~on $\partial^{P}\Psi_{\beta}$ for $|P| < \ell$]} \\
&= \mathcal{S}_2.
\end{alignat*}}
\end{document}
答案1
我建议您使用align*
环境并将注释放在\tag*
“包装器”中;\tag*
这是包提供的宏amsmath
。用户 @Celdor 已经在评论中提出了此建议。
为了限制注释的存在将主要数学材料推到左边的程度,我建议[induction
在\llap
指令中“隐藏”子字符串,从而有效地使其从后台执行的宽度计算中消失。
为了提供一个视觉线索,表明\mathbbm{1}_{...}
元素——指示函数,对吧?——是“数学运算符”(就像\ln
和\sin
是数学运算符一样),下面的代码创建了一个名为的宏,\one
并赋予了数学运算符状态。
\documentclass[11pt]{report}
\usepackage[showframe]{geometry} % omit 'showframe' option in real doc.
\usepackage{mathtools} % for \mathclap macro; load amsmath autom.
\usepackage{amssymb,bbm}
\newcommand\one[1]{\mathop{\mathbbm{1}^{}_{#1}}} % indicator function
\usepackage{nccmath} % For \mbinom macro
%%\usepackage{float} % not needed
\begin{document}
\begin{align*}
&= \sum_{\substack{B \le \beta \\ |B| < \ell}}
(-1)^{|B|} \mbinom{\beta}{B} f_{B}
\sum_{\substack{P \le A \\ \mathclap{|P| = |B|}}}
\mbinom{A}{P} g(P + B) \Psi_{\!A - P}
\tag*{\llap{[induction} hypothesis]} \\
&= \sum_{P \le A } \sum_{B \le \beta}
\one{|P| = |B|} \one{|B| < \ell} \,
(-1)^{|B|} \mbinom{A}{P} \mbinom{\beta}{B} \Psi_{\!A - P}
\tag*{[Thm.\ 1]} \\
&= \sum_{P \le A } \sum_{B \le \beta}
\one{|P| = |B|} \one{|P| < \ell} \,
(-1)^{|P|} \mbinom{A}{P} \mbinom{\beta}{B} \Psi_{\!A - P}
\tag*{[since $|P| = |B|$\,]}
\end{align*}
\end{document}
答案2
\commentedmath
您可以使用两个参数创建自己的宏:math
并comment
基于 TeX 原语:
\hbox to\hsize {$math$ \hss comment}
例如这样:
\def\commentedmath#1#2{\par
\smallskip
\hbox to\hsize{$\displaystyle{}#1$\hss[#2]}
\smallskip
}
\commentedmath
{ = \sum_{\substack{B\le\beta \\ |B|<\ell}} (-1)^{|B|}
\mbinom{\beta}{B} f_{B}
\sum_{\substack{P\le A \\ |P|=|B|}}
\mbinom{A}{P} g(P + B) \Psi_{A - P} } {induction hypothesis}
\commentedmath
{ = \sum_{P\le A} \sum_{B\le\beta} \mathbbm{1}_{|P|=|B|} \mathbbm{1}_{|B|<\ell}
\, (-1)^{|B|} \mbinom{A}{P} \mbinom{\beta}{B}
\Psi_{A-P} } {Thm. 1}
\commentedmath
{ = \sum_{P\le A} \sum_{B\le\beta} \mathbbm{1}_{|P|=|B|} \mathbbm{1}_{|P|<\ell}
\; (-1)^{|P|} \mbinom{A}{P} \mbinom{\beta}{B}
\Psi_{A-P} } {since $|P|=|B|$}