使用 \omit 查找缺失的方程编号

使用 \omit 查找缺失的方程编号

这个答案我发现了一种非常有用的方法,可以alignat使用新命令轻松地将某些元素置于环境中的中心:

\newcommand{\ccol}[1]{\omit\hfill $#1$\hfill}

我插入了$'s 因为\omit似乎终止了数学模式。

\begin{alignat}{3}
x_{n}-\frac{f\left(x_{n}\right)}{f^{\prime}\left(x_{n}\right)}-x^{\ast}=\mbox{} & x_{n+1}-x^{\ast} & \mbox{}=\mbox{} & \left(x_{n}-x^{\ast}\right)^{2} & \mbox{}\cdot\frac{f^{\prime\prime}\left(\xi\right)}{2\cdot f^{\prime}\left(x_{n}\right)}\\
& \ccol{\epsilon_{n+1}} & \mbox{}=\mbox{} & \ccol{\epsilon_{n}^{2}} & \mbox{}\cdot\frac{f^{\prime\prime}\left(\xi\right)}{2\cdot f^{\prime}\left(x_{n}\right)}
\end{alignat}

结果

不幸的是,第二个方程的编号消失了。即使使用另一个命令手动激活某些方程的编号,也会导致alignat*上述结果:

\newcommand\numberthis{\addtocounter{equation}{1}\tag{\theequation}}

\begin{alignat*}{3}
x_{n}-\frac{f\left(x_{n}\right)}{f^{\prime}\left(x_{n}\right)}-x^{\ast}=\mbox{} & x_{n+1}-x^{\ast} & \mbox{}=\mbox{} & \left(x_{n}-x^{\ast}\right)^{2} & \mbox{}\cdot\frac{f^{\prime\prime}\left(\xi\right)}{2\cdot f^{\prime}\left(x_{n}\right)}\numberthis\\
 & \ccol{\epsilon_{n+1}} & \mbox{}=\mbox{} & \ccol{\epsilon_{n}^{2}} & \mbox{}\cdot\frac{f^{\prime\prime}\left(\xi\right)}{2\cdot f^{\prime}\left(x_{n}\right)}\numberthis
\end{alignat*}

如何不省略编号?

答案1

正如您所发现的,这样做\omit会破坏方程式编号的排版。

我建议我的宏\Cen来自https://tex.stackexchange.com/a/209732/4427

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\Cen}[2]{%
  \ifmeasuring@
    #2%
  \else
    \makebox[\ifcase\expandafter #1\maxcolumn@widths\fi]{$\displaystyle#2$}%
  \fi
}
\makeatother

\begin{document}

\begin{alignat}{3}
x_{n}-\frac{f(x_{n})}{f'(x_{n})}-x^* = {} & x_{n+1}-x^* & {}={} & (x_{n}-x^*)^{2} &
  {}\cdot\frac{f''(\xi)}{2\cdot f'(x_{n})}\\
& \Cen{2}{\epsilon_{n+1}} & {}={} & \Cen{4}{\epsilon_{n}^{2}} &
  {}\cdot\frac{f''(\xi)}{2\cdot f'(x_{n})}
\end{alignat}

\end{document}

您只需说明您位于哪一列。

请注意,我简化了输入,删除了所有不必要的\left和,\right并且还使用'代替^{\prime}

在此处输入图片描述

答案2

另一种不干扰编号的方法是将您想要居中的内容设置在预先指定宽度的框中,或者使用\widthof(从calc)。

下面我用过mathtools(加载amsmath和)在构造中使用宽度等于其上方元素的宽度calc来制作一个数学框:\mathmakebox\widthof{...}

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}
\begin{document}

\begin{alignat}{3}
  x_n - \frac{f\bigl(x_n\bigr)}{f'\bigl(x_n\bigr)} - x^\ast 
    &= x_{n+1} - x^\ast 
    &= \bigl(x_n - x^\ast\bigr)^2
      &\cdot \frac{f''\bigl(\xi\bigr)}{2 \cdot f'\bigl(x_n\bigr)} \\
  &\phantom{{}={}} \mathmakebox[\widthof{$x_{n+1} - x^\ast$}]{\epsilon_{n+1}} 
    &= \mathmakebox[\widthof{$\bigl(x_n - x^\ast\bigr)^2$}]{\epsilon_{n}^{2}}
      &\cdot \frac{f''\bigl(\xi\bigr)}{2 \cdot f'\bigl(x_n\bigr)}
\end{alignat}

\end{document}

相关内容