Разбиение списка на несколько столбцов в латексе


168

Надеюсь, это просто: у меня относительно длинный список, в котором каждый элемент списка содержит очень мало текста. Например:

* а
* б
* с
* д
* е
* ф

Я хочу отформатировать это так:

* a * d
* б * е
* c * f

Я бы предпочел не создавать таблицу с 2 списками, так как я хочу иметь возможность легко изменять список, не беспокоясь об обновлении всех столбцов.

Каков наилучший способ сделать это в латексе?


38
Очень полезно, но должно быть перенесено на tex.stackexchange.com
Matthias

Ответы:


250

Использование пакета multicol и встраивание вашего списка в multicolsсреду делает то, что вы хотите:

\documentclass{article}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\begin{enumerate}
    \item a
    \item b
    \item c
    \item d
    \item e
    \item f
\end{enumerate}
\end{multicols}
\end{document}

8
Если вам не нравятся числа, которые перечисляются автоматически, попробуйте использовать элементизацию вместо перечисления.
Тим Стюарт

1
Или enumitemкоторый позволяет определять пользовательские среды перечисления - например, у меня есть среда exenum, так что каждый список примеров перечисляется одинаково.
Мартин Тома

3
Что делать, если у меня есть список нечетных чисел, скажем 5. Этот код дает 3 элемента в одном столбце и 2 в столбце (один в первой, а другой в третьей строке). Как я могу решить это? Как я могу настроить пространство между двумя столбцами?
Fadwa

Что с огромным космическим мультиколом добавляет над собой?
Марчин

Есть ли простой способ выравнивания, если существует нечетное количество записей (например, все выровнено по верху, а не по умолчанию)?
user1234

18

Я не знаю, сработает ли это, но, возможно, вы могли бы разбить страницу на столбцы, используя пакет multicol.

\usepackage{multicol}

\begin{document}
\begin{multicols}{2}[Your list here]
\end{multicols}

0

Мне порекомендовали мне многозначный список для " Многоколоночных перечислимых списков", но я сам пока не использовал его.

Редактировать: синтаксис не совсем так, как вы могли бы легко скопировать + вставить списки в код LaTeX. Таким образом, это может быть не лучшим решением для вашего случая использования!


0

Комбинируя пакеты multicol package и enumitem, легко определить среды, которые являются многоколоночными аналогами сред перечисления и детализации:

\documentclass{article}
\usepackage{enumitem}
\usepackage{multicol}

\newlist{multienum}{enumerate}{1}
\setlist[multienum]{
    label=\alph*),
    before=\begin{multicols}{2},
    after=\end{multicols}
}

\newlist{multiitem}{itemize}{1}
\setlist[multiitem]{
    label=\textbullet,
    before=\begin{multicols}{2},
    after=\end{multicols}
}

\begin{document}

  \textsf{Two column enumerate}
  \begin{multienum}
    \item item 1
    \item item 2
    \item item 3
    \item item 4
    \item item 5
    \item item 6
  \end{multienum}

  \textsf{Two column itemize}
  \begin{multiitem}
    \item item 1
    \item item 2
    \item item 3
    \item item 4
    \item item 5
    \item item 6
  \end{multiitem}

\end{document}

Результат - это то, на что вы бы надеялись:

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.