確定多行數學顯示行的其餘部分的長度

確定多行數學顯示行的其餘部分的長度
\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}

在此輸入影像描述

相關內容