在这个答案我发现了一种非常有用的方法,可以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}