Multicoluna: justifique à esquerda e preencha o espaço não utilizado a partir da esquerda. (Páginas ímpares.)

Multicoluna: justifique à esquerda e preencha o espaço não utilizado a partir da esquerda. (Páginas ímpares.)

Estimada comunidade, tenho um layout de documento de duas colunas e sei que normalmente posso escolher entre

  1. justificar o texto à esquerda, o que preenche o espaço não utilizado à direita, e
  2. justificando o texto à direita, o que preenche o espaço não utilizado à direita.

Como posso obter um alinhamento que justifique o texto à esquerda, mas coloque toda a caixa de texto o mais à direita possível na coluna, de acordo com a linha mais longa, preenchendo assim o espaço não utilizado a partir da esquerda?

A solução deve afetar colunas inteiras em páginas ímpares (deve ser definível centralmente), e não sei de antemão a largura do texto, isso pode ser diferente para cada coluna.

Muito obrigado pela sua contribuição.

Comportamento exigido em página ímpar

Responder1

Clique nas imagens para vê-las em melhor resolução

Edição 1: verificação de página ímpar/par adicionada

\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 (ímpar):

insira a descrição da imagem aqui

Página 2 (par):

insira a descrição da imagem aqui

Resposta original

Defina um novo tabulartipo de coluna e use\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}

insira a descrição da imagem aqui

informação relacionada