假设我有一个公式太长,一行写不完,我想把它分成两行。但是,我希望第一行左对齐,第二行右对齐\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}