Listen in Spalten

Bei der Arbeit zu meinem Paket exsheets, mit dem man Übungsblätter oder auch Übungsaufgaben in Büchern (jeweils mit Lösungen) erstellen kann, bin ich auf folgende Aufgabe gestoßen:

In vielen Mathebüchern nicht nur meiner Schulzeit, sondern auch in aktuellen, findet man Aufgaben in Spalten angeordnet, durchnummeriert von links nach rechts.

tasks-1

Die Lösungen, die es dafür gab, fand ich zu der Zeit nicht recht befriedigend.

  • [cci]multicol[/cci] und [cci]enumerate[/cci] – damit lassen sich ohne weiteres Listen in mehreren Spalten erstellen, aber durchgezählt von oben nach unten statt von links nach rechts.
  • shortlst – darauf bin ich zu der Zeit nicht gestoßen, es ist aufgrund der Lizenz auch nicht in TeX Live. Grundsätzlich sieht es aber ganz gut aus.
  • multenum – die Syntax hat mich nicht wirklich überzeugt. Vor allem, dass Items jetzt als Argumente von Makros eingegeben werden, hat mich etwas gestört, ganz abgesehen davon, dass man sich eine Reihe von Makros merken muss.
  • inparaenum – löst die Aufgabe nicht wirklich.

Was hieß das konkret? Eine neue, eigene Lösung musste her. Daraus ist das tasks-Paket geboren. Das Paket war eine ganze Zeit lang gar kein eigenes Paket, sondern eine Funktionalität von [cci]exsheets[/cci]. Auf Anwenderwunsch habe ich sie dann in ein eigenes Paket extrahiert, dass aber immer noch mit [cci]exsheets[/cci] gebündelt war. Inzwischen ist es aber ein eigenständiges Paket.

Seine Syntax ist einfach:

[cce lang=”latex”]\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tasks}
\begin{document}
\begin{tasks}(3)
\task eins
\task zwei
\task drei
\task vier
\task fünf
\end{tasks}
\end{document}[/cce]

tasks-2

Die Umgebung hat ein optionales Argument [cci]()[/cci], mit dem man die Anzahl der Spalten angeben kann. Die voreingestellte Zahl lässt sich per Setup ändern und ist erst einmal [cci]1[/cci].

Die neueste Version 0.10 erlaubt es auch, dass einzelne Punkte mehrere Spalten überspannen:

[cce lang=”latex”]\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tasks}
\begin{document}
\begin{tasks}(4)
\task eins
\task zwei
\task drei
\task vier
\task fünf
\task*(2) jetzt mal über zwei Spalten
\task sieben
\task acht
\task* und die restlichen Spalten überspannen, hier sind es drei.
\task! Zu guter letzt einmal über die ganze Zeile, no matter what. Wären wir
nicht schon am Anfang, hätte das eine neue Zeile begonnen.
\task elf
\end{tasks}
\end{document}[/cce]

Wie ich das mag, habe ich dem Paket eine ganze Reihe von Optionen zur Anpassung gegeben und man kann auch eigene gleichartige Umgebungen definieren.

Man sollte nicht verschweigen, das das Paket einige Einschränkungen hat:

  • die [cci]tasks[/cci]-Liste lässt sich nicht verschachteln. Streng genommen ist sie auch keine Liste im LaTeX-Sinne.
  • Die Umgebung liest ihren Inhalt als Makro-Argument mit allen Einschränkungen, die das mit sich bringt.
  • Die einzelnen Items werden als Boxen gesetzt, erlauben daher keinen Seitenumbruch innerhalb eines Items.

tasks-3

Über Clemens

Ich bin ein LaTeX-Enthusiast, der auch mit ein paar Paketen wie chemmacros oder fnpct einen bescheidenen Beitrag zur LaTeX-Vielfalt beitragen hat. Ich habe noch einen eigenen Blog: einzelMEINUNG und einen englischsprachigen Blog, der sich ausschließlich mit LaTeX beschäftigt mychemistry.eu.

21. Juli 2014 von Clemens
Kategorien: LaTeX | Schlagwörter: , , | 7 Kommentare

Kommentare (7)

Schreibe einen Kommentar