Gostaria de um tabular
ambiente com colunas totalmente justificadas. Meu melhor palpite de como fazer isso acontecer é usar um tabularx
ambiente (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}
O primeiro tabularx
ambiente é minha tentativa fracassada. O segundo tabularx
ambiente 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 tabularx
colunas? De forma mais geral, como obter um tabular
ambiente com colunas totalmente justificadas?
Responder1
tabularx
só funciona quando você usa uma X
coluna. Provavelmente você está interessado na configuração \extracolsep{\fill}
, conforme sugerido emPreenchimento de colunas e linhas em tabelas:
\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
\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 oarray
pacote.