Как создать многоколоночные списки элементов с независимым содержимым?

Как создать многоколоночные списки элементов с независимым содержимым?

Мне нужно три списка элементов рядом друг с другом, с заголовком по центру для каждого списка. Использование multicol-packageпохоже, не соответствует моим потребностямкакон не позволяет мне заполнять свои колонки самостоятельно, не так ли?

Складываем все в таблицу, тоже не кажется уместным.

Я придумал решение с использованием minipage, хотя это кажется излишеством, это довольно близко к тому, что я хочу. Но у меня не получается расположить мини-страницы рядом с некоторым интервалом между столбцами. Как заставить три мини-страницы использовать 100% пространства, скажем так:

30% столбец один, 5% пробел, 30% столбец два, 5% пробел, 30% столбец три

Я попробовал, \hspaceно ничего не вышло.

\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}

введите описание изображения здесь

Есть ли что-то гораздо более простое, чтобы достичь желаемого?

решение1

Вам нужно было добавить не только межколоночное пространство, но и \noindentперед первой мини-страницей. В противном случае вы превысили ширину столбца. Действительно, мини-страницы — это хороший способ справиться с этой проблемой с несколькими столбцами.

ИЗМЕНЕНО с целью удаления двух лишних пробелов, на которые указал Дэвид, путем вставки знаков процента в конце строки.

\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}

введите описание изображения здесь

решение2

Просто для того, чтобы показать табличное решение:

% 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}

введите описание изображения здесь


Обновлять:

Вы все еще можете использовать здесь свои старые itemizeопределения. Но для этого вам придется манипулировать высотой пустого пространства перед второй строкой. Изображение показывает результат без исправления. Код уже содержит , \vspace{-10pt}что будет выглядеть довольно хорошо.

\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}

введите описание изображения здесь

Связанный контент