
\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}