Die Antwort von Epllus auf die Frage Wie kann ich eine Aufzählung in einer Tabelle ohne zusätzlichen vertikalen Abstand verwenden? wollte ich auf eine longtable übertragen. Wenn die Aufzählung am Anfang der Tabellenzelle eingefügt wird, entsteht aber trotzdem eine Leerzeile. Kann man das irgendwie ändern?

Code, hier editierbar zum Übersetzen:
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{array,longtable}
\makeatletter
\newcommand{\minipagetrue}{\@minipagetrue}
\makeatother
\usepackage{enumitem}
\newlist{titemize}{itemize}{4}% neue Listenumgebung für Tabellen
\setlist[titemize]{nosep,after=\vskip-\baselineskip,
label={\textbullet},leftmargin=*,before=\minipagetrue,}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
\renewcommand\arraystretch{1.25}
\begin{document}
\begin{longtable}{@{}lP{6cm}@{}}
\textbf{Gebiet} & \textbf{Erläuterung} \\[5pt]
Gebiet 1 &
\begin{titemize}
\item Punkt 1
\begin{titemize}
\item Unterpunkt 1
\item Unterpunkt 2
\item etc.
\end{titemize}
\item Punkt 2
\item Punkt 3
\item Punkt 4
\end{titemize}\\
Gebiet 2 &
\begin{titemize}
\item Punkt a
\item etc.
\end{titemize}\\
Gebiet 3 &
Hier steht Text\\
Gebiet 4 &
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

gefragt 07 Aug '13, 21:47

esdd's gravatar image

esdd
17.8k304257
Akzeptiert-Rate: 62%

bearbeitet 31 Dez '13, 02:22

cgnieder's gravatar image

cgnieder
22.1k253463


Das folgende ist im wesentlichen eine Zusammenfassung der anderen Antworten, die ich aber für sinnvoll halte:

Da bei einer longtable das Vortäuschen einer minipage mit \@minipagetrue die Leerzeile vor einer Aufzählung nicht in jedem Fall verhindert, ist es besser, wie von @Stefan vorgeschlagen, eine echte minipage in die Spaltendefinition einzubauen:

Code, hier editierbar zum Übersetzen:
\newcolumntype{P}[1]{%
>{\begin{minipage}[t]{#1}\raggedright\arraybackslash}p{#1}<{\end{minipage}}}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Warum eine minipage dafür sinnvoll ist, findet man u.a. in den Antworten auf die Frage Wann sollte ich minipage statt parbox verwenden?

Dann gibt es (mindestens) zwei Möglichkeiten eine kompakte Aufzählung in einer Tabelle unterzubringen.

(1) Mit dem Paket enumitem und einer für diesen Zweck definierten Aufzählung titemize

Code, hier editierbar zum Übersetzen:
\usepackage{enumitem}
\newlist{titemize}{itemize}{4}% neue Listenumgebung für Tabellen
\setlist[titemize]{nosep, label=\textbullet, leftmargin=*, after=\strut}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(2) Mit dem Paket paralist und einer neu definierten Umgebung mycompactitem (siehe Antwort von @Bettina)

Code, hier editierbar zum Übersetzen:
\usepackage[alwaysadjust]{paralist}
\setdefaultitem{\textbullet}{\textbullet}{\textbullet}{\textbullet}
\newenvironment{mycompactitem}{\begin{compactitem}}{\strut\end{compactitem}}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Das\strut sorgt in beiden Fällen dafür, dass die letzte Aufzählungszeile die richtige Tiefe hat. Nähere Informationen dazu findet man u.a. in der Antwort auf die Frage Was macht der Befehl strut?

Beide Lösungen funktionieren sowohl für tabular als auch longtable Tabellen, wobei das Paket enumitem an sich sehr viel mehr Einstellungsmöglichkeiten bietet.

alt text

Permanenter link

beantwortet 19 Aug '13, 17:13

esdd's gravatar image

esdd
17.8k304257
Akzeptiert-Rate: 62%

bearbeitet 19 Aug '13, 18:10

Du könntest eine echte minipage in die Spaltendefinition einbauen:

\newcolumntype{P}[1]{>{\begin{minipage}[t]{#1}\raggedright\arraybackslash}p{#1}<{\end{minipage}\endgraf}}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Dann würde ich after=\vskip-\baselineskip entfernen.

Permanenter link

beantwortet 07 Aug '13, 23:08

stefan's gravatar image

stefan ♦♦
18.4k163148
Akzeptiert-Rate: 50%

Kannst Du erläutern, was \endgraf ist, wieso man es hier braucht und warum \par nicht funktioniert?

(08 Aug '13, 11:13) cgnieder

@Clemens Vielleicht lohnt sich das als eigene Frage mit einem Minibeispiel, wo par in einer Tabelle fehlschlägt. Ich erinnere mich, dass ein Fehler auftrat, weshalb ich das "Ersatzpar" :-) wählte.

(08 Aug '13, 12:12) stefan ♦♦
1

\par wird von array umdefiniert.

(08 Aug '13, 12:29) Herbert
1

@stefan: Das \endgraf führt bei mir leider zu einer ungewünschten Leerzeile, wenn die Tabellenzelle nicht mit einer Aufzählung endet. Im Beispiel also zwischen Gebiet 3 und 4. Lass ich den Befehl dort weg und verwende dafür after=\strut sieht es bei mir gut aus.

(08 Aug '13, 12:33) esdd

Ich habe damals als Lösung für das Problem \usepackage(paralist) in Verbindung mit einer eigenen Umgebung im Internet gefunden. Deren Definition wurde vor die Tabelle gesetzt, in der dann mycompactitem statt itemize verwendet wurde:

Code, hier editierbar zum Übersetzen:
\newenvironment{mycompactitem}{%
\vspace*{-3ex}% verkleinert den oberen vertikalen Abstand
\begin{compactitem}[\textbullet]%
}{
\vspace*{-3ex}% verkleinert den unteren vertikalen Abstand
\end{compactitem}%
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Damit die Lösung gleichzeitig für table-Umgebungen funktioniert, ist es aber besser die Abstände bei der Definition von mycompactitem nicht mit \vspace*{-3ex} zu korrigieren, sondern statt dessen den Vorschlag von @Stefan für die geänderte Spaltendefinition zu nutzen. Warum sich eine minipage eignet, ist in den Antworten auf die Frage Wann sollte ich minipage statt parbox verwenden? erläutert.

Code, hier editierbar zum Übersetzen:
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{array,longtable}
\usepackage[alwaysadjust]{paralist}
\setdefaultitem{\textbullet}{\textbullet}{\textbullet}{\textbullet}
\newenvironment{mycompactitem}{%
\begin{compactitem}%
}{%
\strut\end{compactitem}%
}
\newcolumntype{P}[1]{>{\begin{minipage}[t]{#1}\raggedright\arraybackslash}p{#1}<{\end{minipage}}}
\renewcommand\arraystretch{1.25}
\begin{document}
\begin{longtable}{@{}P{3cm}P{6cm}@{}}
\textbf{Gebiet} & \textbf{Erläuterung} \\[5pt]
Gebiet 1 &
\begin{mycompactitem}
\item Punkt 1
\begin{compactitem}
\item Unterpunkt 1
\item Unterpunkt 2
\item etc.
\end{compactitem}
\item Punkt 2
\item Punkt 3
\item Punkt 4
\end{mycompactitem} \\
Gebiet 2 &
\begin{mycompactitem}
\item Punkt 1
\item Punkt 4
\end{mycompactitem} \\
Gebiet 3 &
Hier steht Text\\
Gebiet 4 mit weiterer Erläuterung &
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 08 Aug '13, 15:22

Bettina's gravatar image

Bettina
665181923
Akzeptiert-Rate: 25%

bearbeitet 10 Aug '13, 12:55

esdd's gravatar image

esdd
17.8k304257

1

@Bettina In der Doku von paralist habe ich jetzt einen Weg gefunden, der ohne das Paket enumitem auskommt. Da sich das Ergebnis nicht ändert, habe ich das direkt in deinen Code eingefügt.

(08 Aug '13, 21:14) esdd

@Bettina Ich hab den Text mal etwas angepasst und auf Stefans Vorschlag verwiesen. Reicht der Link zum Unterschied von parbox und minipage als Erklärung von Stefans Vorschlag aus?

(10 Aug '13, 12:52) esdd

@esdd Ich denke schon, dass der Link ausreicht. Was macht eigentlich der Befehl \strut?

(11 Aug '13, 09:28) Bettina

@Bettina vielleicht hilft dir das hier weiter.

(11 Aug '13, 20:27) Epllus
Deine Antwort
[Vorschau ausblenden]

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

Frage-Themen:

×258
×39
×17

gestellte Frage: 07 Aug '13, 21:47

Frage wurde gesehen: 19,257 Mal

zuletzt geändert: 31 Dez '13, 02:22