Multilinha semelhante a escadas

Multilinha semelhante a escadas

O multlineambiente alinha a primeira linha à esquerda, a última à direita, enquanto todas as linhas intermediárias são simplesmente centralizadas. O resultado às vezes não parece satisfatório, por exemplo, quando todas as linhas são apenas um pouco mais largas que a metade da largura do texto.

Multilinha padrão

O que procuro é uma ferramenta para deixá-la mais "parecida com escadas", como na foto abaixo, mas sem adicionar opções escolhidas manualmente \hspace{...}em cada linha.

Multilinha ajustada

Eu sei que existem todos os tipos de exceções, como linhas muito largas e assim por diante, e não espero que a solução sempre produza uma saída perfeita, mas deve haver algo que funcione em um caso "genérico". Alguma ideia?

Responder1

Você pode definir cada linha em uma macro que as distribui "manualmente" usando algo como \setline[<align>]{<portion>}{<stuff>}definido abaixo:

insira a descrição da imagem aqui

\documentclass{article}

\usepackage{lipsum}

\newcommand{\setline}[3][c]{\hspace*{#2\linewidth}\makebox[0pt][#1]{#3}}
\newenvironment{spreadlines}
  {\par
   \setlength{\parindent}{0pt}%
   \obeylines}
  {\par}

\begin{document}

\lipsum[1]

\begin{spreadlines}
  \setline[l]{0}  {The first line is aligned to the left.}
  \setline   {.25}{The second line is (not) centred.}
  \setline   {.5} {And so is the third one.}
  \setline   {.75}{As well as the fourth --- not centred!}
  \setline[r]{1}  {The last line is aligned to the right.}
\end{spreadlines}

\lipsum[2]

\end{document}

Provavelmente seria possível determinar o valor {<portion>}automaticamente, se necessário.

Responder2

O pacote mathtoolsoferece a opção \shoveleft[<ofset>]{<part of equation>}pela qual você pode obter facilmente escadas como multline: insira a descrição da imagem aqui

Código baseado no exemplo do manual mathtools (página 17):

\documentclass[11pt, border=1mm,
               preview]{standalone}
    \usepackage{mathtools}

    \begin{document}
\[
\begin{multlined}
\framebox[.65\columnwidth]{First line} \\
\shoveleft[1cm]{\framebox[.5\columnwidth]{Second line} } \\
\shoveleft[2cm]{\framebox[.5\columnwidth]{Second line} } \\
\shoveleft[3cm]{\framebox[.5\columnwidth]{Second line} } \\
\framebox[.65\columnwidth]{Last line}
\end{multlined}
\]
    \end{document}

informação relacionada