Como fazer múltiplas colunas independentes e depois preenchê-las horizontalmente?

Como fazer múltiplas colunas independentes e depois preenchê-las horizontalmente?

Estou implementando uma ideia para renderizar autores. Pelo que pude ver, nenhum outro pacote poderia fazer isso por mim, mas estou feliz em ser corrigido. A ideia é colocar os autores em diversas colunas independentes, mas minha dúvida atual é especificamente sobre as maldades que estou recebendo no MWE.

Como primeiro passo eu queria criar 3 colunas independentes e preenchê-las com conteúdo. Adicionei um pouco de cola para separar as colunas caso as linhas fiquem muito próximas. Ele faz o que eu queria, mas estou recebendo um aviso excessivo

\documentclass{article}

\begin{document}

\makebox[\textwidth][c]{
  \parbox[t]{0.3\textwidth}{
    \noindent{}Item 1

    Item 4

    Item 7
  }
  \hskip 10pt plus 5pt minus 5pt\relax
  \parbox[t]{0.3\textwidth}{%
    \noindent{}Item 2

    Item 5 is a little bit longer

    Item 8
  }
  \hskip 10pt plus 5pt minus 5pt\relax
  \parbox[t]{0.3\textwidth}{%
    \noindent{}Item 3

    Item 6
  }
}

\end{document}

Posso fazer isso desaparecer centralizando ou diminuindo a largura da minha caixa horizontal, mas alguém pode explicar por quê? Sinto que ainda estou abusando em vez de usar as macros.

Se houver uma maneira melhor de conseguir esse efeito, por favor me avise. Decidi optar por caixas em vez de mesas, mas estou feliz em revisitar. Achei que as caixas eram mais naturais quando você não sabe de antemão o número de colunas e linhas.

Responder1

Você consegue

Overfull \hbox (15.0pt too wide) in paragraph at lines 5--28

como seu exterior \makeboxé recuado, \parindentisso \noindentcorrigiria isso, mas você também pode obter caixas cheias demais na lista interna.

Você tem uma \textwidthcaixa contendo

SPACE .3\textwidth SPACE 10pt  .3\textwidth SPACE 10pt .3\textwidth SPACE

portanto, pode ou não caber, dependendo se 4 espaços de palavras + 20pt forem maiores que .1\textwidth.

\documentclass{article}

\begin{document}

\noindent\makebox[\textwidth][c]{%%%%
  \parbox[t]{0.3\textwidth}{%
    Item 1

    Item 4

    Item 7
  }\hfill
  \parbox[t]{0.3\textwidth}{%
    Item 2

    Item 5 is a little bit longer

    Item 8
  }\hfill
  \parbox[t]{0.3\textwidth}{%
   Item 3

    Item 6
  }%%%%
}

\end{document}

Os finais de linha marcados %não precisam ser comentados, mas sim boa prática. Os marcados %%%%são necessários para evitar espaços ruins.


Uma razão pela qual tabulares são frequentemente usados ​​para este tipo de layout é que três caixas de largura igual, embora tecnicamente igualmente espaçadas e abrangendo toda a largura, parecem deslocadas para a esquerda se houver a possibilidade de ter entradas curtas.

insira a descrição da imagem aqui

\documentclass{article}

\begin{document}

\hrule

\noindent X\dotfill X

\noindent\makebox[\textwidth][c]{%%%%
  \parbox[t]{0.3\textwidth}{
    Item 1

    Item 4

    Item 7
  }\hfill
  \parbox[t]{0.3\textwidth}{%
    Item 2

    Item 5 is a little bit longer

    Item 8
  }\hfill
  \parbox[t]{0.3\textwidth}{%
   Item 3

    Item 6
  }%%%
}

\bigskip

\hrule

\noindent X\dotfill X

\noindent\makebox[\textwidth][c]{%%%%
  \begin{tabular}[t]{@{}l@{}}
    Item 1\\
    Item 4\\
    Item 7
   \end{tabular}\hfill
   \begin{tabular}[t]{@{}l@{}}
    Item 2\\
    Item 5 is a little bit longer\\
    Item 8
   \end{tabular}\hfill
   \begin{tabular}[t]{@{}l@{}}
   Item 3\\
    Item 6
   \end{tabular}%%%
}


\end{document}

informação relacionada