用不同的排列打破方程式

用不同的排列打破方程式

假设我有一个公式太长,一行写不完,我想把它分成两行。但是,我希望第一行左对齐,第二行右对齐\textwidth。我尝试了以下版本:

\documentclass{article}

\usepackage{amsmath}

\newcommand{\shortterm}{\mathit{somestrangefunction}(x,y,z)}
\newcommand{\longdefinition}{x+y+z+x^2+xy+xz+y^2+yz+z^2+x^3+y^3+z^3}

\begin{document}

\[
\begin{array}{lcr}
\multicolumn{2}{l}{\shortterm = {}} & \\
 & \multicolumn{2}{r}{\longdefinition}
\end{array}
\]

\begin{flalign*}
 & \shortterm = {} &
\end{flalign*}
\begin{flalign*}
 & & \longdefinition
\end{flalign*}

\begin{flalign*}
 & \shortterm = {} &
\end{flalign*}
\vspace*{-7ex}
\begin{flalign*}
 & & \longdefinition
\end{flalign*}

\end{document}

输出结果如下:

在此处输入图片描述

第一个版本没有\textwidth完全填充,而第二个版本在两行之间添加了很多垂直空间。我可以\vspace在第三个版本中用负数补偿这个垂直空间,并获得或多或少我想要的输出。但是,这个代码很笨拙(并且可能既不精确又不稳健,无法实现行间相同的垂直空间)。有没有更优雅的解决方案来解决这个问题,避免手动调整垂直空间之类的事情?

答案1

您可以使用一个multline*环境,并将长度参数\multlinegap设置为0pt

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath} % for \multline* environment

\newcommand{\shortterm}{\textit{SomeStrangeFunction}(x,y,z)}
\newcommand{\longdefinition}{x+y+z+x^2+xy+xz+y^2+yz+z^2+x^3+y^3+z^3}

\begin{document}

\setlength\multlinegap{0pt} % no indentation gaps

\begin{multline*}
\shortterm = \\ 
\longdefinition
\end{multline*}

\end{document}

相关内容