
\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}
rendimentos
O que dizer em vez do argumento \linewidth
tal que a segunda linha matemática (uma substituição entre colchetes) esteja alinhada à direita da margem direita do texto, em vez de ir além dela? Ou seja, como calculamos “o comprimento do resto da linha até a margem direita”?
(Como você pode imaginar, esta é uma versão simplificada de um exemplo maior da vida real, portanto, para este mesmo MWE, não sugira o uso, multline*
porque em meu exemplo maior, esse material está aninhado dentro de outro ambiente matemático de bloco.)
Responder1
Você pode usar o linegoal
pacote (não que esteja livre de bugs, mas para um único aplicativo deve estar OK).
\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}
No segundo caso reduzi a largura desejada para evitar a compressão do espaço ao redor \land
e ainda obter uma centralização visível (mas sem desperdiçar muito espaço).
Responder2
Você coloca o multilined
ambiente no meio da linha, então, para não deixar que ele se sobreponha à margem direita, ele deve ser mais curto do que \linewidth
a parte que você adicionou antes dele.
Já que mathtools
carrega o calc
pacote, você pode usar a macro \widthof
que fornece a largura do texto arbitrário. Usando isso, você pode subtrair da \linewidth
largura o material que você adiciona antes do multilined
ambiente (a desvantagem é que você precisa digitar esse material duas vezes, então não tenho certeza se isso é viável em sua configuração):
\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}