Multicolumna: justifica a la izquierda y llena el espacio no utilizado desde la izquierda. (Páginas impares.)

Multicolumna: justifica a la izquierda y llena el espacio no utilizado desde la izquierda. (Páginas impares.)

Estimada comunidad, tengo un diseño de documento de dos columnas y soy consciente de que normalmente puedo elegir entre

  1. justificar el texto a la izquierda, que llena el espacio no utilizado desde la derecha, y
  2. 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.

Comportamiento requerido en página impar

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):

ingrese la descripción de la imagen aquí

Página 2 (par):

ingrese la descripción de la imagen aquí

Respuesta original

Definir un nuevo tabulartipo 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}

ingrese la descripción de la imagen aquí

información relacionada