Die multline
Umgebung richtet die erste Zeile linksbündig aus, die letzte rechtsbündig, während alle Zeilen dazwischen einfach zentriert werden. Das Ergebnis sieht manchmal unbefriedigend aus, beispielsweise wenn alle Zeilen nur etwas breiter als die halbe Textbreite sind.
Ich suche nach einem Tool, mit dem es „treppenartiger“ aussieht, wie im Bild unten, ohne jedoch \hspace{...}
in jede Zeile manuell ausgewählte Elemente einzufügen.
Ich weiß, dass es alle möglichen Ausnahmen gibt, wie z. B. zu breite Linien usw., und ich erwarte nicht, dass die Lösung immer ein perfektes Ergebnis liefert, aber es sollte etwas geben, das in einem „generellen“ Fall funktioniert. Irgendwelche Ideen?
Antwort1
Sie können jede Zeile in einem Makro festlegen, das sie „manuell“ verteilt, indem Sie beispielsweise Folgendes verwenden \setline[<align>]{<portion>}{<stuff>}
:
\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}
Wahrscheinlich ließe sich der Wert {<portion>}
bei Bedarf auch automatisch ermitteln.
Antwort2
Das Paket mathtools
bietet eine Option \shoveleft[<ofset>]{<part of equation>}
, mit der Sie ganz einfach Treppen wie die folgenden erhalten können multline
:
Code basierend auf einem Beispiel im Mathtools-Handbuch (S. 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}