Determinar la longitud del resto de una línea de visualización matemática para líneas múltiples

Determinar la longitud del resto de una línea de visualización matemática para líneas múltiples
\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}

rendimientos

producción

¿Qué decir en lugar del argumento \linewidthde que la segunda línea matemática (una sustitución entre paréntesis) está alineada a la derecha con el margen derecho del texto en lugar de ir más allá de él? Es decir, ¿cómo calculamos "la longitud del resto de la línea hasta el margen derecho"?

(Como puede imaginar, esta es una versión demasiado simplificada de un ejemplo más grande de la vida real, por lo que para este mismo MWE, no sugiera usar multline*en su lugar porque en mi ejemplo más grande, esto está anidado dentro de otro entorno matemático de bloques).

Respuesta1

Podrías usar el linegoalpaquete (no es que esté libre de errores, pero para una sola aplicación debería estar bien).

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

En el segundo caso, reduje el ancho deseado para evitar la compresión del espacio alrededor \landy lograr un centrado visible (pero sin desperdiciar demasiado espacio).

ingrese la descripción de la imagen aquí

Respuesta2

Colocas el multilinedentorno en el medio de la línea, por lo que, para que no se superponga al margen derecho, debe ser más corto que \linewidthla parte que agregas antes.

Dado que mathtoolscarga el calcpaquete, puede utilizar la macro \widthofque le proporciona el ancho de texto arbitrario. Usando esto, puedes restar del \linewidthancho las cosas que agregas antes del multilinedentorno (el inconveniente es que debes escribir estas cosas dos veces, por lo que no estoy seguro de si esto es factible en tu configuración):

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

ingrese la descripción de la imagen aquí

información relacionada