\documentclass{article}
\pagestyle{empty}
\usepackage{mathtools}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\[
\text{beginning}\land
\begin{multlined}[t][\linewidth]
(\text{extremely long and boring junk occupying lots of space})\\\relax
[\text{a variable substitution in brackets}]
\end{multlined}
\]
\lipsum[2]
\end{document}
产量
用什么来代替这个论点\linewidth
,使得第二行数学线(括号中的替换)右对齐到右边距而不是超出它?即,我们如何计算“到右边距的剩余行的长度”?
(正如您可能想象的那样,这是一个更大的现实生活中的例子的过于简单的版本,因此对于这个 MWE,请不要建议使用它,multline*
因为在我的更大的例子中,这个内容嵌套在另一个块数学环境中。)
答案1
您可能会使用该linegoal
包(并不是说它没有错误,但对于单个应用程序来说应该没问题)。
\documentclass{article}
\pagestyle{empty}
\usepackage{mathtools}
\usepackage{linegoal}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-3]
\[
\text{beginning}\land
\begin{multlined}[t][\linegoal]
(\text{extremely long and boring junk occupying lots of space})\\\relax
[\text{a variable substitution in brackets}]
\end{multlined}
\]
\lipsum[2][1-3]
\[
\text{beginning}\land
\begin{multlined}[t][0.95\linegoal]
(\text{extremely long and boring junk occupying lots of space})\\\relax
[\text{a variable substitution in brackets}]
\end{multlined}
\]
\lipsum[3][1-3]
\end{document}
在第二种情况下,我减少了所需的宽度,以避免压缩周围的空间\land
并仍然获得可见的居中(但不会浪费太多空间)。
答案2
您将multilined
环境放在行的中间,因此,为了不让它与右边距重叠,它应该比\linewidth
您在它之前添加的部分短。
由于mathtools
加载了calc
包,您可以使用宏来\widthof
获取任意文本的宽度。使用这个,您可以从\linewidth
宽度中减去在multilined
环境之前添加的内容(缺点是您需要输入两次这些内容,所以我不确定这在您的设置中是否可行):
\documentclass{article}
\pagestyle{empty}
\usepackage{mathtools}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\[
\text{beginning} \land
\begin{multlined}[t][\linewidth-\widthof{$\text{beginning} \land$}]
(\text{extremely long and boring junk occupying lots of space}) \\
[\text{a variable substitution in brackets}]
\end{multlined}
\]
\lipsum[2]
\end{document}