Estimada comunidad, tengo un diseño de documento de dos columnas y soy consciente de que normalmente puedo elegir entre
- justificar el texto a la izquierda, que llena el espacio no utilizado desde la derecha, y
- justificando el texto a la derecha, que llena el espacio no utilizado desde la derecha.
¿Cómo puedo lograr una alineación que justifique el texto hacia la izquierda, pero coloque todo el cuadro de texto lo más a la derecha posible en la columna de acuerdo con la línea más larga, llenando así el espacio no utilizado desde la izquierda?
La solución debería afectar columnas enteras en páginas impares (debe poder definirse centralmente) y no sé el ancho del texto de antemano, esto puede ser diferente para cada columna.
Muchas gracias por tu comentario.
Respuesta1
Haz clic en las imágenes para verlas en mejor resolución.
Edición 1: se agregó verificación de página par/impar
\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}
Página 1 (impar):
Página 2 (par):
Respuesta original
Definir un nuevo tabular
tipo de columna y utilizarlo\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}