确定多行数学显示行其余部分的长度

确定多行数学显示行其余部分的长度
\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}

在此处输入图片描述

相关内容