Necesito tres listas de elementos una al lado de la otra, con un encabezado centrado para cada lista. Usando el multicol
paqueteno parece satisfacer mis necesidadescomono me permite llenar mis columnas de forma independiente, ¿verdad?
Poner todo en una mesa, tampoco parece adecuado.
Se me ocurrió una solución usando minipage
, aunque parece excesivo, se acerca bastante a lo que quiero. Pero no puedo organizar las minipáginas una al lado de la otra con algo de espacio entre las columnas. Cómo conseguir que las tres minipáginas utilicen el 100% del espacio, digamos:
30% columna uno, 5% espacio, 30% columna dos, 5% espacio, 30% columna tres
Lo intenté con \hspace
pero no funcionó.
\documentclass[11pt,a4paper]{article}%
\usepackage{enumitem}
\begin{document}
\begin{minipage}[t]{0.30\textwidth}
{\centering \subsection*{Header 1}}
\begin{itemize}[align=left,leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two
\item three
\item four
\end{itemize}
\end{minipage}
\begin{minipage}[t]{0.30\textwidth}
{\centering \subsection*{Header 2}}
\begin{itemize}[align=left,leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two.one \\ two.two
\item three
\item four
\end{itemize}
\end{minipage}
\begin{minipage}[t]{0.30\textwidth}
{\centering \subsection*{Header 3}}
\begin{itemize}[align=left,leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two
\item three
\end{itemize}
\end{minipage}
\end{document}
¿Hay algo mucho más fácil para lograr lo que quiero?
Respuesta1
No solo necesitaba agregar el espacio entre columnas, sino también un espacio \noindent
antes de la primera minipágina. De lo contrario, excedió el ancho de la columna. De hecho, las minipáginas son una buena manera de manejar este tipo de problemas de varias columnas.
REVISADO para eliminar 2 espacios perdidos que señaló David, insertando signos de porcentaje al final de la línea.
\documentclass[11pt,a4paper]{article}%
\usepackage{enumitem}
\begin{document}
\noindent\begin{minipage}[t]{0.30\textwidth}
{\centering \subsection*{Header 1}}
\begin{itemize}[align=left,leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two
\item three
\item four
\end{itemize}
\end{minipage}%
\kern.05\textwidth%
\begin{minipage}[t]{0.30\textwidth}
{\centering \subsection*{Header 2}}
\begin{itemize}[align=left,leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two.one \\ two.two
\item three
\item four
\end{itemize}
\end{minipage}%
\kern.05\textwidth%
\begin{minipage}[t]{0.30\textwidth}
{\centering \subsection*{Header 3}}
\begin{itemize}[align=left,leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two
\item three
\end{itemize}
\end{minipage}
\end{document}
Respuesta2
Sólo para mostrar una solución de tabla:
% arara: pdflatex
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage[inline]{enumitem}
\newcommand*\myTableHeader[1]{\multicolumn{1}{c}{\large\textbf{#1}}}
\begin{document}
\noindent\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}p{0.3\linewidth}p{0.3\linewidth}p{0.3\linewidth}@{}}
\myTableHeader{Header 1} & \myTableHeader{Header 2} & \myTableHeader{Header 3} \\\addlinespace
\begin{itemize*}[itemjoin={\newline}]
\item one one one one one one
\item two
\item three
\item four
\end{itemize*}
&
\begin{itemize*}[itemjoin={\newline}]
\item one one one one one one
\item two.one \newline two.two
\item three
\item four
\end{itemize*}
&
\begin{itemize*}[itemjoin={\newline}]
\item one one one one one one
\item two
\item three
\end{itemize*}\\
\end{tabular*}
\end{document}
Actualizar:
Todavía puedes usar tus antiguas itemize
definiciones aquí. Pero para esto, debes manipular la altura del espacio en blanco frente a la segunda fila. La imagen muestra el resultado sin corrección. El código ya contiene un \vspace{-10pt}
que se vería bastante bien.
\documentclass{article}
\usepackage{array}
\usepackage{enumitem}
\newcommand*\myTableHeader[1]{\multicolumn{1}{c}{\large\textbf{#1}}}
\begin{document}
\noindent\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}p{0.3\linewidth}p{0.3\linewidth}p{0.3\linewidth}@{}}
\myTableHeader{Header 1} & \myTableHeader{Header 2} & \myTableHeader{Header 3} \vspace{-10pt}\\
\begin{itemize}[align=left, leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two
\item three
\item four
\end{itemize}
&
\begin{itemize}[align=left, leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two.one \newline two.two
\item three
\item four
\end{itemize}
&
\begin{itemize}[align=left, leftmargin=*,labelsep=1ex]
\item one one one one one one
\item two
\item three
\end{itemize}\\
\end{tabular*}
\end{document}