有没有办法在列表索引和公式之间使用不带新行的元素multline
内部?\item
enumerate
\begin{enumerate}[i.]
\item $checkorder( (\lambda,\lambda,\lambda) ) \triangleq true$
\item \begin{multline*}$$
checkorder( (a,(u,U_1,U_2),(v,V_1,V_2)) ) \triangleq \\
(u = \lambda \vee u \leq_A a) \wedge
(v = \lambda \vee a \leq_A v) \wedge \\
checkorder(U_1) \, \wedge checkorder(U_2) \wedge
checkorder(V_1) \wedge checkorder(V_2)$$
\end{multline*}
\item $checkorder(T) \triangleq false$ negli altri casi
\end{enumerate}
这就是我所拥有的:
这就是我想要的:
答案1
对齐amsmath
环境仅适用于显示数学。但mathtools
增强了可用的环境:
\documentclass[a4paper]{article}
\usepackage{mathtools,enumerate,amssymb}
\begin{document}
\begin{enumerate}[i.]
\item $\mathit{checkorder}( (\lambda,\lambda,\lambda) ) \triangleq \mathit{true}$
\item $\begin{multlined}[t]
\mathit{checkorder}( (a,(u,U_1,U_2),(v,V_1,V_2)) ) \triangleq \\
(u = \lambda \vee u \leq_A a) \wedge
(v = \lambda \vee a \leq_A v) \wedge {} \\
\mathit{checkorder}(U_1) \wedge \mathit{checkorder}(U_2) \wedge
\mathit{checkorder}(V_1) \wedge checkorder(V_2)
\end{multlined}$
\item $\mathit{checkorder}(T) \triangleq \mathit{false}$ negli altri casi
\end{enumerate}
\end{document}
请注意几个改进:\mathit
在这种情况下,长函数名应该放在里面,以获得更好看的字体;\wedge
之前\\
应该跟在后面{}
以获得正确的间距。
绝不$$
在 LaTeX 中使用。
答案2
我在环境方面遇到了类似的问题\multline
。所以我想出了一个强制解决方案。以下是我所做的:
\item \abovedisplayskip-15pt
\belowdisplayskip\abovedisplayskip
\begin{setlength}{\multlinegap}{0pt}
\begin{multline*}
2(x^2y-2xy^3+6xy)-3(-5xy+3x^2y\\-7xy^3)
+5(xy^3-xy+x^2y)
\end{multline*}
\end{setlength}
当然,egreg 的解决方案是迄今为止最好的,而我的解决方案只是出于绝望而寻找即时解决方案。我知道上面的代码不是最好的,但它解决了我的问题。我决定将 egreg 的答案实现到我的代码中,因为它看起来更好、更简洁。