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, 16:21

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 06 Jan '14, 10:23

Johannes's gravatar image

Johannes
7.3k294566


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, 16:28

Epllus's gravatar image

Epllus
620269
Akzeptiert-Rate: 46%

bearbeitet 08 Aug '13, 18:43

esdd's gravatar image

esdd
17.7k254256

Sehr gute Idee! :)

(05 Aug '13, 16:41) cgnieder
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, 17: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, 09: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, 10:01) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×254
×17

gestellte Frage: 05 Aug '13, 16:21

Frage wurde gesehen: 56,946 Mal

zuletzt geändert: 27 Okt '14, 10:01