J'_{+}(x^*)(y-x^*)
在下面的摘录中,我想知道如何将位于第一行第二列的表达式居中,位于\leq
和=
符号之间。我尝试插入,\hfill
但没有效果。
谢谢。
\documentclass{extbook}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{2}
0 & \leq J'_{+}(x^*)(y-x^*) && = \lim_{t \downarrow 0} \frac{J \big[ x^* + t(y-x^*) \big] - J(x^*)}{t} \\
h & \leq \lim_{t \downarrow 0} \frac{t J(y) + (1-t) J(x^*) - J(x^*)}{t} && = J(y)-J(x^*).
\end{alignat*}
\end{document}
答案1
您必须测量较大表达式的宽度,这样您就可以将较细的对象放在较大的框内,并根据需要调整对齐方式。这可以使用以下方法自动完成eqparbox
:
\documentclass{extbook}
\usepackage{amsmath,eqparbox}
% https://tex.stackexchange.com/a/34412/5764
\makeatletter
\NewDocumentCommand{\eqmathbox}{o O{c} m}{%
\IfValueTF{#1}
{\def\eqmathbox@##1##2{\eqmakebox[#1][#2]{$##1##2$}}}
{\def\eqmathbox@##1##2{\eqmakebox{$##1##2$}}}
\mathpalette\eqmathbox@{#3}
}
\makeatother
\begin{document}
\begin{alignat*}{2}
0 & \leq \eqmathbox[JJ]{ J'_{+} (x^*) (y - x^*) } && = \lim_{t \downarrow 0} \frac{J \big[ x^* + t (y - x^*) \big] - J(x^*)}{t} \\
h & \leq \eqmathbox[JJ]{\lim_{t \downarrow 0} \frac{t J(y) + (1 - t) J(x^*) - J(x^*)}{t}} && = J(y) - J(x^*).
\end{alignat*}
\end{document}
\eqmathbox[<tag>][<align>]{<stuff>}
<stuff>
计算出横跨同一区域所需的最大宽度<tag>
。<align>
可以单独更改<stuff>
横跨同一区域的宽度<tag>
(默认为c
输入)。
如果你不喜欢这种自动化功能,那么请使用这个:
\newsavebox{\bigmath}
\savebox{\bigmath}{$\displaystyle \lim_{t \downarrow 0} \frac{t J(y) + (1 - t) J(x^*) - J(x^*)}{t}$}% Capture large math object
\begin{alignat*}{2}
0 & \leq \makebox[\wd\bigmath]{$J'_{+} (x^*) (y - x^*)$} && = \lim_{t \downarrow 0} \frac{J \big[ x^* + t (y - x^*) \big] - J(x^*)}{t} \\
h & \leq \lim_{t \downarrow 0} \frac{t J(y) + (1 - t) J(x^*) - J(x^*)}{t} && = J(y) - J(x^*).
答案2
像这样?
\documentclass{article}
\usepackage{amsmath}
\usepackage{IEEEtrantools}
\begin{document}
\begin{IEEEeqnarray}{cCcCl}
0 & \leq & J'_{+}(x^*)(y-x^*) & = & \lim_{t \downarrow 0} \frac{J \big[ x^* + t(y-x^*) \big] - J(x^*)}{t} \\
h & \leq & \lim_{t \downarrow 0} \frac{t J(y) + (1-t) J(x^*) - J(x^*)}{t} & = & J(y)-J(x^*).
\end{IEEEeqnarray}
\end{document}