Como justificar totalmente colunas tabulares

Como justificar totalmente colunas tabulares

Gostaria de um tabularambiente com colunas totalmente justificadas. Meu melhor palpite de como fazer isso acontecer é usar um tabularxambiente (para que o tabular saiba qual deve ser a largura) e depois colocar \hilll(para alguma repetição apropriada da letra l) entre todas as colunas adjacentes. No entanto, isso não funcionou. Veja o MWE abaixo.

\documentclass{article}
\usepackage{tabularx}
\begin{document}
Text before. Text before. Text before. Text before. Text before. Text before. Text before.

\begin{tabularx}{\textwidth}{l@{\hfill}c@{\hfill}r}
 On the LEFT & In the middle & On the RIGHT
\end{tabularx}

Text between. Text between. Text between. Text between. Text between. Text between. Text between.

\def\magicNumber{50pt}
\begin{tabularx}{\textwidth}{lcr}
 On the LEFT & \hspace*{\magicNumber} In the middle \hspace*{\magicNumber} & On the RIGHT
\end{tabularx}

Text after. Text after. Text after. Text after. Text after. Text after. Text after. Text after.
\end{document}

insira a descrição da imagem aqui

O primeiro tabularxambiente é minha tentativa fracassada. O segundo tabularxambiente está escrito (aproximadamente) correto, mas é um hack usando números mágicos.

Pergunta:

Como usar corretamente colas infinitas (como \hfill) para especificar o espaço entre tabularxcolunas? De forma mais geral, como obter um tabularambiente com colunas totalmente justificadas?

Responder1

tabularxsó funciona quando você usa uma Xcoluna. Provavelmente você está interessado na configuração \extracolsep{\fill}, conforme sugerido emPreenchimento de colunas e linhas em tabelas:

insira a descrição da imagem aqui

\documentclass{article}
\begin{document}
Text before. Text before. Text before. Text before. Text before. Text before. Text before.

\noindent
\begin{tabular*}{\linewidth}{@{}@{\extracolsep{\fill}}lcr@{}}
  On the LEFT & In the MIDDLE & On the RIGHT
\end{tabular*}

Text after. Text after. Text after. Text after. Text after. Text after. Text after. Text after.

\noindent
\begin{tabular*}{\linewidth}{@{}@{\extracolsep{\fill}}lcr@{}}
  On the LEFT & In the very MIDDLE & On the RIGHT
\end{tabular*}

\end{document}

Observe que o texto acima não representa colunas "totalmente justificadas". Para isso você poderia usar

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{tabularx}
\begin{document}
Text before. Text before. Text before. Text before. Text before. Text before. Text before.

\noindent
\begin{tabularx}{\linewidth}{@{}XXX@{}}
  On the LEFT & In the MIDDLE & On the RIGHT
\end{tabularx}

Text after. Text after. Text after. Text after. Text after. Text after. Text after. Text after.

\end{document}

Se necessário, você pode modificar a justificação das colunas usando oarraypacote.

informação relacionada