Dzielenie listy na wiele kolumn w Latex

168

Mam nadzieję, że jest to proste: mam stosunkowo długą listę, na której każdy element listy zawiera bardzo mało tekstu. Na przykład:

* a
* b
* c
* d
* e
* f

Chciałbym to tak sformatować:

* a * d
* być
* c * f

Wolałbym nie tworzyć tabeli z 2 listami, ponieważ chcę mieć możliwość łatwej zmiany listy bez martwienia się o aktualizację wszystkich kolumn.

Jaki jest najlepszy sposób na zrobienie tego w lateksie?

Carl
źródło
38
Bardzo pomocny, ale powinien zostać przeniesiony na tex.stackexchange.com
Matthias

Odpowiedzi:

250

Użycie pakietu multicol i osadzenie listy w multicolsśrodowisku robi to, co chcesz:

\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}
las3rjock
źródło
8
Jeśli nie lubisz liczb, które wyliczają automatycznie, spróbuj wyszczególnić zamiast wyliczać.
Tim Stewart,
1
Lub enumitemktóry pozwala na definiowanie własnych środowisk wyliczeniowych - np. Mam środowisko exenum, tak że każda lista przykładów jest wyliczana w ten sam sposób.
Martin Thoma
3
Co jeśli mam listę nieparzystych liczb, powiedz 5. Ten kod daje 3 pozycje w jednej kolumnie i 2 w kolumnie (jedna w pierwszej, a druga w trzeciej linii). Jak mogę to rozwiązać? Jak mogę dostosować odstęp między dwiema kolumnami?
Fadwa
Co z ogromną przestrzenią, którą multikol dodaje nad sobą?
Marcin
czy istnieje łatwy sposób wyrównywania w przypadku nieparzystej liczby wpisów (np. wszystkie wyrównane do góry, a nie domyślne odstępy)?
user1234
18

Nie wiem, czy to zadziała, ale może mógłbyś podzielić stronę na kolumny za pomocą pakietu multicol.

\usepackage{multicol}

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

źródło
0

Polecono mi multenum dla „Wielokolumnowych list wyliczeniowych”, ale jeszcze nigdy z niego nie korzystałem.

Edycja: składnia nie wygląda dokładnie tak, jakby można było łatwo skopiować i wkleić listy do kodu LaTeX. Może więc nie być najlepszym rozwiązaniem w Twoim przypadku!

janko
źródło
0

Łącząc pakiet multicol i enumitem , można łatwo zdefiniować środowiska, które są wielokolumnowymi odpowiednikami środowisk wyliczania i wyszczególniania:

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

Wynik jest taki, jakiego oczekujesz:

wprowadź opis obrazu tutaj

Andrzej
źródło