Geschätzte Community, ich habe ein zweispaltiges Dokumentlayout und bin mir bewusst, dass ich normalerweise wählen kann zwischen
- Text linksbündig ausrichten, wodurch ungenutzter Raum von rechts aus aufgefüllt wird, und
- 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.
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):
Seite 2 (gerade):
Ursprüngliche Antwort
Definieren Sie einen neuen tabular
Spaltentyp 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}