Gelegentlich wird in einer Tabelle eine Aufzählung verwendet. Damit diese möglichst platzsparend ausgegeben wird, verwende ich das Paket enumitem und definiere mir für die Tabellen eine eigene Listenumgebung itemize. Die Option nosep entfernt laut Dokumentation zwar allen vertikalen Leerraum, aber leider wird trotzdem jeweils eine Leerzeile eingefügt, wenn vor bzw. nach der Aufzählung kein anderer Text steht. Wie kann ich diese Leerzeilen verhindern?

\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{array}

\usepackage{enumitem}
\setlist[itemize]{nosep,label={\textbullet},leftmargin=*}

\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
\renewcommand\arraystretch{1.25}
\begin{document}
    \begin{tabular}{@{}lP{6cm}@{}}
      \textbf{Gebiet} & \textbf{Erläuterung} \\[5pt]
      Gebiet 1 &
        \begin{itemize}
          \item Punkt 1 
          \begin{itemize}
            \item Unterpunkt 1
            \item Unterpunkt 2
            \item etc.
          \end{itemize}
          \item Punkt 2
          \item Punkt 3
          \item Punkt 4
        \end{itemize}\\
      Gebiet 2  & 
        \begin{itemize}
          \item Punkt a
          \item etc.
        \end{itemize}\\
      Gebiet 3 & 
        Hier steht Text\\
      Gebiet 4 & 
        Hier steht Text
        \begin{itemize}
          \item Punkt I
          \item Punkt II
        \end{itemize}
    \end{tabular}
\end{document}

alt text

gefragt 05 Aug '13, 10:21

esdd's gravatar image

esdd
14.2k53251
Akzeptiert: 87%

bearbeitet 06 Jan '14, 04:23

Johannes's gravatar image

Johannes
7.2k132759


Du kannst es mit \@minipagetrue probieren. Entweder du fügst es separat vor jede Liste ein, oder du verwendest before=<code> von enumitem. Um den Abstand nach der Liste wegzubekommen, habe ich die Option after= benutzt, \vskip-\baselineskip eingefügt und hoffe, dass es korrekt ist:

\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{array}

\makeatletter
\newcommand{\minipagetrue}{\@minipagetrue}

\makeatother

\usepackage{enumitem}
\setlist[itemize]{nosep,after=\vskip-\baselineskip,label={\textbullet},leftmargin=*,before=\minipagetrue,}

\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
\renewcommand\arraystretch{1.25}
\begin{document}

    \begin{tabular}{@{}lP{6cm}@{}} 
      \textbf{Gebiet} & \textbf{Erläuterung} \\[5pt]
      Gebiet 1 &
        \begin{itemize}
          \item Punkt 1 
          \begin{itemize}
            \item Unterpunkt 1
            \item Unterpunkt 2
            \item etc.
          \end{itemize}
          \item Punkt 2
          \item Punkt 3
          \item Punkt 4
        \end{itemize}\\
      Gebiet 2  & 
        \begin{itemize}
          \item Punkt a
          \item etc.
        \end{itemize}\\
      Gebiet 3 & 
        Hier steht Text\\
      Gebiet 4 & 
        Hier steht Text
        \begin{itemize}
          \item Punkt I
          \item Punkt II
        \end{itemize}
    \end{tabular}
\end{document}

alt text

Permanenter link

beantwortet 05 Aug '13, 10:28

Epllus's gravatar image

Epllus
59059

bearbeitet 08 Aug '13, 12:43

esdd's gravatar image

esdd
14.2k53251

Sehr gute Idee! :)

(05 Aug '13, 10:41) Clemens
1

Leider funktioniert die Antwort zwar in einer tabular Tabelle, aber nicht in einer longtable. Lösungen, die sowohl mit table als auch longtable funktionieren, findet man in der Antwort auf die Frage Wie kann ich eine Aufzählung in einer longtable einfügen, ohne dass davor eine Leerzeile entsteht?.

(19 Aug '13, 11:23) esdd

Hallo, vielen Dank für diese beiden Erläuterungen. Das Problem, das ich hatte wurde perfekt gelöst.

Allerdings wird die Listeneinstellung so ja für das komplette Dokument geändert. Ich würde die nötigen Einstellung gerne nur für eine bestimmte Tabelle anwenden, ansonsten soll itemize standardisiert bleiben.

Kann mir da jemand helfen, wie ich diese nötigen Zeilen nur um diese eine bestimmte Tabelle kriege und nicht um das ganze Dokument?

Vielen Dank

(27 Okt '14, 04:52) eduardinho

@eduardinho Ich habe Deine Rückfrage in einen Kommentar umgewandelt, da sie keine Antwort auf die ursprüngliche Frage ist.

Da das Paket enumitem verwendet wird, kannst Du Dir mit \newlist{titemize}{itemize}{4} eine neue Liste für diesen Zweck definieren. Passe diese dann mit \setlist[titemize]{...} Deinen Wünschen an und verwende diese neue Liste in der Tabelle.

(27 Okt '14, 05:01) esdd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×15

Frage gestellt: 05 Aug '13, 10:21

Frage wurde angeschaut: 13,821 Mal

Zuletzt aktualisiert: 27 Okt '14, 05:01