Kein Abstand vor und nach \itemize Thema ist als GELÖST markiert

Schriftbild, Absätze und Auflistungen einstellen


Harry168

Kein Abstand vor und nach \itemize

Beitrag von Harry168 »

Hallo Zusammen,

ich möchte die itemize-Umgebung in einer Tabelle nutzen. Ich möchte vor, zwischen und nach den Aufzählungspunkten möglichst einen geringen Abstand haben. Außerdem sollen die Punkte ganz links ausgerichtet sein.

Ich habe es schon mit compactitem versucht, aber das bekomme ich nicht links ausgerichtet...

Mein Code sieht beispielsweise so aus:
\begin{table}[ht] 
\centering 
\caption{Überschrift}
\begin{tabular}[ht]{|p{3cm}|p{5.5cm}|p{5.5cm}|}
  \hline
  \rowcolor{tableheadcolor}
  \bf Spalte 1 & \bf Spalte 2 & \bf Spalte 3 \\ \hline\hline
  Erste Zeile & 
  \begin{itemize}[leftmargin=*, topsep=0pt, itemsep=0pt]
  \item Punkt 1
  \item Punkt 2
 \end{itemize} &
- \\ \hline
\end{tabular}
\label{tab:die_tabelle}
\end{table}
Das mit itemsep usw funktioniert leider nicht...

Kann mir jemand helfen, das würde mich sehr freuen!

Grüße von Harry

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Hallo Harry,

poste doch besser ein übersetzbares Beispiel, dann weiss man, was genau verwendet wird, kann testen und verbessern. Z.B. sind Deine Argumente an itemize nicht Standard, vllt. verwendest Du das enumitem-Paket oder ein anderes - ohne das zu wissen, lässt sich schwer helfen. booktabs und paralist verwendest Du wohl auch, es ist nicht erwähnt.

Viele Grüße,

Stefan

Harry168

Beitrag von Harry168 »

Ich verwende eine Vorlage für eine Diplomarbeit. Da gibt es viele Dateien in denen Pakete geladen werden. Leider kenn ich mich in Latex noch nicht gut aus und weiss nicht welche Pakete ich jetzt alle rauskopieren soll...

Auf jedenfall verwende ich das enumitem, booktabs und das paralist Paket.

Wie gebe ich denn allgemein die Parameter an? Ich habe es so versucht:
  \begin{itemize}[leftmargin=0em, topsep=0em, partopsep=0em, parsep=0em, itemsep=0em]
Aber ich bekomme oben und unten trotzdem einen Abstand... Was bedeutet denn "0em" und was passiert wenn ich leftmargin=* angebe?

Grüße von Harry

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Hallo Harry,

bitte lies doch mal die Seite Was ist ein Minimalbeispiel, da kannst Du lesen, wie man reduzierte Codebeispiele geschickt erstellen kann. Da Du eine Diplomarbeit schreibst, bist Du ein kluger Kopf und das ist kein Problem dann. ;-) Auf jeden Fall hilfreich, wenn Du weitere Fragen hast - ein Minimalbeispiel ist fast ein Garant für die Lösung.

Hier zeige ich Dir mal einen Workaround. In minipage-Umgebungen wird vor itemize-Umgebungen kein Zwischenraum eingefügt, das kann man simulieren durch \@minipagetrue (am besten ein kleines Makro dafür schreiben (habei ich hier mal geschrieben: Preventing itemize environment to insert initial vertical space). Negativen Zwischenraum kann man durch \vspace zur Not auch einfügen. Hier an einem kompletten, übersetzbaren Beispiel mit Deiner Tabelle:
\documentclass{article}
\usepackage{booktabs}
\usepackage{enumitem}
\usepackage[table]{xcolor}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\begin{document}
\begin{table}[ht]
\centering
\caption{\"Uberschrift}
\begin{tabular}[ht]{|p{3cm}|p{5.5cm}|p{5.5cm}|}
  \hline
  \rowcolor{gray}
  \bf Spalte 1 & \bf Spalte 2 & \bf Spalte 3 \\ \hline\hline
  Erste Zeile & \compress
  \begin{itemize}[leftmargin=*, topsep=0pt, itemsep=0pt]
  \item Punkt 1
  \item Punkt 2\vspace{-\baselineskip}
 \end{itemize}&
- \\ \hline
\end{tabular}
\label{tab:die_tabelle}
\end{table} 
\end{document}
Vor der itemize-Umgebung habe ich \compress eingefügt, was ich in der Präambel definierte, direkt vor dem Ende den negativen Zwischenraum - nur ein workaround, doch damit kommst Du weiter.

Übrigens ist \bf ein veralteter LaTeX-Befehl, aktuell ist \bfseries oder \textbf{...},siehe LaTeX2e font selection.

Viele Grüße,

Stefan

Harry168

Beitrag von Harry168 »

Hallo Stefan,

vielen Dank für die Tips! Das hat mir sehr weitergeholfen... Beim nächsten Beispiel werde ich es richtig posten!

Grüße von Harry

Benutzeravatar
localghost
Forum-Meister
Forum-Meister
Beiträge: 825
Registriert: Di 8. Jul 2008, 15:40
Wohnort: Braunschweig

Alternative

Beitrag von localghost »

Ich würde das etwas anders angehen.
\documentclass[captions=tableabove,ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{%
  adieresis={ä},
  germandbls={ß},
  Euro=€
}
\usepackage{babel}
\usepackage{fix-cm,textcomp}

\begin{document}
  \begin{table}[!ht]
    \centering
    \caption{Überschrift}\label{tab:tabelle}
    \begin{tabular}[ht]{|p{2.5cm}|c@{\enspace}p{5cm}|p{5cm}|}\hline
      \bfseries Spalte 1 & \multicolumn{2}{l|}{\bfseries Spalte 2} & \bfseries Spalte 3 \\ \hline\hline
      Erste Zeile & \textbullet & Punkt 1 & --- \\
      & \textbullet & Punkt 2 & --- \\ \hline
    \end{tabular}
  \end{table} 
\end{document}

Thorsten
TeX und LaTeX, Fragen und Antworten – TeXwelt

¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² System: openSUSE 13.1 (Linux 3.11.6), TeX Live 2013, TeXworks 0.5 (r1349)
³ Lernt gerade TeX (und versucht, es zu verstehen).

Harry168

Beitrag von Harry168 »

Hallo Thorsten,

deine Lösung gefällt mir auch sehr gut! Vielen Dank!

Grüße von Harry

Harry168

Beitrag von Harry168 »

Habe jetzt die Lösung von Thorsten genommen, das hat bei mir auf die schnelle am besten geklappt.

Ich habe nur das Problem, wenn ich in der ersten Spalte z.B. über zwei Zeilen schreibe, dass dann in den multicolumn Zellen eine Zeile freigelassen wird, wenn ich nur in der ersten Zeile schreibe... kann man das verhindern, so dass die Zellen nicht miteinander gekoppelt sind?

Vielen Dank.
Grüße von Harry

Antworten