Mehrspaltig: Linksbündig ausrichten und ungenutzten Platz von links auffüllen. (Ungerade Seiten.)

Mehrspaltig: Linksbündig ausrichten und ungenutzten Platz von links auffüllen. (Ungerade Seiten.)

Geschätzte Community, ich habe ein zweispaltiges Dokumentlayout und bin mir bewusst, dass ich normalerweise wählen kann zwischen

  1. Text linksbündig ausrichten, wodurch ungenutzter Raum von rechts aus aufgefüllt wird, und
  2. Rechtsbündiger Text, der ungenutzten Raum von rechts aus füllt.

Wie kann ich eine Ausrichtung erreichen, bei der der Text linksbündig ausgerichtet ist, das gesamte Textfeld jedoch entsprechend der längsten Zeile so weit rechts in der Spalte platziert wird wie möglich, und somit ungenutzter Raum von links aus aufgefüllt wird?

Die Lösung soll ganze Spalten auf ungeraden Seiten betreffen (sollte zentral definierbar sein), wobei ich die Breite des Textes vorher nicht kenne, diese kann bei jeder Spalte unterschiedlich sein.

Vielen Dank für Ihren Beitrag.

Erforderliches Verhalten auf ungeraden Seiten

Antwort1

Klicken Sie auf die Bilder, um sie in einer besseren Auflösung anzuzeigen

Bearbeitung 1: Prüfung auf gerade/ungerade Seiten hinzugefügt

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{lipsum}
\usepackage{array}
\usepackage{varwidth}
\usepackage{changepage}
\strictpagecheck
\def\maxwidth{13cm}
\newcolumntype{M}{>{\begin{varwidth}{\maxwidth}}l<{\end{varwidth}}}
\newenvironment{myenvi}
    {%
        \checkoddpage
        \ifoddpage
            \hfill\begin{tabular}{@{}M@{}}
        \fi
    }
    {%
        \checkoddpage
        \ifoddpage
            \end{tabular}\hspace{-3.5pt}
        \fi
    }

\setlength{\parskip}{1ex}
\begin{document}
\lipsum[1]

\begin{myenvi}
Oh, this is what I want!

I really want some lines like this

And this line is a bit too long, so it will be broken to some lines blah blah. And this line is a bit too long, so it will be broken to some lines. And this line is a bit too long, so it will be broken to some lines. And this line is a bit too long, so it will be broken to some lines.
\end{myenvi}

And some more normal lines

\begin{myenvi}
This is a short text for testing whose total width is clearly less than 10cm.

And this is an even shorter text.
\end{myenvi}

\lipsum[2-6]

\begin{myenvi}
This is the environment for check in an even page. It should be like normal text.

Yes, this is normal text!
\end{myenvi}

\lipsum[7]
\end{document}

Seite 1 (ungerade):

Bildbeschreibung hier eingeben

Seite 2 (gerade):

Bildbeschreibung hier eingeben

Ursprüngliche Antwort

Definieren Sie einen neuen tabularSpaltentyp und verwenden Sie\hfill

\documentclass{article}
\usepackage{lipsum}
\usepackage{array}
\usepackage{varwidth}
\newcolumntype{M}{>{\begin{varwidth}{10cm}}l<{\end{varwidth}}}

\setlength{\parskip}{1ex}
\begin{document}
\lipsum[1]

\hfill\begin{tabular}{@{}M@{}}
Oh, this is what I want!

I really want some lines like this

And this line is a bit too long, so it will be broken to some lines blah blah. And this line is a bit too long, so it will be broken to some lines. And this line is a bit too long, so it will be broken to some lines. And this line is a bit too long, so it will be broken to some lines.
\end{tabular}

\lipsum[2]
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen