我想在 中编号方程的右侧添加注释align
,但我不喜欢这样将整个方程移到左侧以给注释腾出空间。mathrlap
如果方程或注释太长,使用 括住注释会使其粘在右边距中,因此这不是所有情况下的理想解决方案。
为什么我加的胶水不收缩呢?
我怎样才能使它把整行(而不只是注释)向右移动,直到等式居中(好像注释不在那里)或者尽可能地移动直到没有更多空间,然后它应该将行与注释右对齐。
\documentclass{article}
\usepackage{showframe}
\usepackage{amsmath}
\usepackage{mathtools} % mathrlap
\newcommand{\example}[1]{
\begin{align}
\hskip 50pt minus 50pt
b&=#1
\quad \vert\text{some long comment on the right}
%\\c&=d % etc.
\end{align}
}
\begin{document}
\setlength{\abovedisplayskip}{0pt}
\setlength{\belowdisplayskip}{0pt}
\example{a}
\example{a+a}
\example{a+a+a}
\example{a+a+a+a}
\example{a+a+a+a+a}
\example{a+a+a+a+a+a}
\example{a+a+a+a+a+a+a} % too long for number on the same line with glue, ok
\example{a+a+a+a+a+a+a+a} % too long with glue
\example{a+a+a+a+a+a+a+a+a} % too long with glue
\example{a+a+a+a+a+a+a+a+a+a} % always too long for number on the same line, ok
\example{a+a+a+a+a+a+a+a+a+a+a} % always too long, use split
\fboxsep=0pt\fbox{\parbox{50pt}{this is 50pt}}
\end{document}
但是,我也很乐意看到右对齐的注释,它不是固定在等式的右侧,而是固定在数字的左侧。我只是不喜欢单独摆弄每个注释的等式。
自己尝试一次
为什么第 12 行及以下行向左移动,而第 11 行却没有移动?
有没有一种简单的方法可以在 1 位数字、2 位数字(如果有 3 位数字)前面的注释后添加一些空格?
我可以将所有评论左对齐到最宽评论?我该如何存储每个 (align-) 环境使用的最宽评论的宽度?
我正在考虑\AtBeginEnvironment
重置宽度,但如何将宽度恢复到之前的较短的评论?
\documentclass{article}
\usepackage{showframe}
\usepackage{amsmath}
\newcommand{\latestComment}{}
\newlength{\widestComment}
\setlength{\widestComment}{2cm}
\newcommand{\lmcomm}[1]{\global\def\latestComment{\parbox{\widestComment}{\raggedright#1}}}
\newcommand{\rmcomm}[1]{\global\def\latestComment{#1}}
\let\oldTheequation\theequation
\renewcommand{\theequation}{\latestComment\hskip 3pt(\oldTheequation)\global\def\latestComment{}}
% https://tex.stackexchange.com/a/228449/202560
\usepackage{xparse}
\makeatletter
\renewcommand\tagform@[1]{\maketag@@@{\ignorespaces#1\unskip\@@italiccorr}}
\makeatother
\newcommand{\lexample}[1]{ \begin{align} a&=b \lmcomm{#1} \end{align} }
\newcommand{\rexample}[1]{ \begin{align} a&=b \rmcomm{#1} \end{align} }
\begin{document}
\setlength{\abovedisplayskip}{0pt}
\setlength{\belowdisplayskip}{0pt}
\lexample{}
\lexample{a}
\lexample{Lorem ipsum dolor sit amet}
\rexample{}
\rexample{a}
\setcounter{equation}{8}
\rexample{Lorem} %9
\rexample{Lorem} %10
\rexample{aaaaaaaaaaa} %11
\rexample{aaaaaaaaaaaa} %12
\rexample{aaaaaaaaaaaaa} %13
\rexample{aaaaaaaaaaaaaa} %14
\rexample{Lorem ipsum dolor sit amet} %15
\end{document}
我的方法是否还忽略了其他什么?