对齐内的 \multline 间距(即 \multlined)

对齐内的 \multline 间距(即 \multlined)

与有关如何在对齐环境中使用多行?

考虑这个文档:

\documentclass{minimal}
\usepackage{amsmath,mathtools}
\begin{document}
\begin{align*}
 & \left[k(k+\hbar),[k(k+\hbar),z]\right] \\
 & \qquad = 2[k(k+\hbar),m_yx-m_xy+i\hbar z] \\
 & \qquad = 2m_y[k(k+\hbar),x]-2m_x[k(k+\hbar),y]+2i\hbar[k(k+\hbar),z] \\
 & \qquad = 4m_y(ym_z-m_yz)-4m_x(m_xz-xm_z)+2\left\{k(k+\hbar)z-zk(k+\hbar)\right\} \\
 & \qquad = \!\begin{multlined}[t][10.5cm]
  4(m_xx+m_yy+m_zz)-4(m_x^2+m_y^2+m_z^2)z+{} \\
  +2\left\{k(k+\hbar)z-zk(k+\hbar)\right\} .
 \end{multlined}
\end{align*}
\end{document}

在此处输入图片描述

这给出了我所寻找的对齐方式。但有几个问题:

1)为什么我需要\!before \begin{multlined}? 还有其他编码方式可以消除它的需要吗?

2) 使用硬编码宽度 ( [10.5cm]) 不是最佳选择。我想将最后一行推到右侧,或者与最长行右对齐。这有可能实现吗?

答案1

我可以为您的\!问题提供一个快速解决方案,但我不知道它是否有不良副作用。出于某种我不知道的原因,multlinedcontains的定义

 \MH_if_boolean:nF {outer_mult}{\null\,}

在其内部宏中\MT_mult_internal:n。看来这\,就是罪魁祸首!因此,为了避免\,,您可以设置布尔值outer_mult“true”。至少在您的示例中,这具有您不再需要的预期效果。也许软件包维护者可以解释及其相关的\!作用。outer_mult\,

\documentclass{article}
\usepackage{amsmath,mathtools}
\MHInternalSyntaxOn
\MH_set_boolean_T:n {outer_mult}
\MHInternalSyntaxOff
\begin{document}
\begin{align*}
 & \left[k(k+\hbar),[k(k+\hbar),z]\right] \\
 & \qquad = 2[k(k+\hbar),m_yx-m_xy+i\hbar z] \\
 & \qquad = 2m_y[k(k+\hbar),x]-2m_x[k(k+\hbar),y]+2i\hbar[k(k+\hbar),z] \\
 & \qquad = 4m_y(ym_z-m_yz)-4m_x(m_xz-xm_z)+2\left\{k(k+\hbar)z-zk(k+\hbar)\right\} \\
 & \qquad = \begin{multlined}[t][10.5cm]
  4(m_xx+m_yy+m_zz)-4(m_x^2+m_y^2+m_z^2)z+{} \\
  +2\left\{k(k+\hbar)z-zk(k+\hbar)\right\} .
 \end{multlined}
\end{align*}
\end{document}

答案2

展望mathtools 文档我发现在multlined命令之后不久\MoveEqLeft。这似乎对你的情况很有帮助。你可以做

\documentclass{minimal}
\usepackage{amsmath,mathtools}
\begin{document}
\begin{align*}
 \MoveEqLeft \left[k(k+\hbar),[k(k+\hbar),z]\right] \\
  & = 2[k(k+\hbar),m_yx-m_xy+i\hbar z] \\
  & = 2m_y[k(k+\hbar),x]-2m_x[k(k+\hbar),y]+2i\hbar[k(k+\hbar),z] \\
  & = 4m_y(ym_z-m_yz)-4m_x(m_xz-xm_z)+2\left\{k(k+\hbar)z-zk(k+\hbar)\right\} \\
  & = \begin{multlined}[t][10.5cm]
  4(m_xx+m_yy+m_zz)-4(m_x^2+m_y^2+m_z^2)z+{} \\
  +2\left\{k(k+\hbar)z-zk(k+\hbar)\right\} .
 \end{multlined}
\end{align*}
\end{document}

不幸的是,据我所知,似乎没有更好的解决方案,例如amsmath和这样的标准方法mathtools。当然,如果您允许最后一行左对齐(当然还有更多的缩进),您可以完全省略嵌套环境。

相关内容