Определите длину оставшейся части строки математического отображения для многострочного

Определите длину оставшейся части строки математического отображения для многострочного
\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}

введите описание изображения здесь

Связанный контент