Мне нужно три списка элементов рядом друг с другом, с заголовком по центру для каждого списка. Использование 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}