Seite 1 von 2

Probleme beim Layout von Tabellen

Verfasst: Sa 3. Okt 2015, 12:52
von Xodarap
Guten Tag,
ich bin neu hier und auch mit Latex. Zum üben schreibe ich gerade alle meine Berichte vom Studium mit Latex.

Ich habe viel mit Tabellen zu tun. Und dabei habe ich einen fehler den sehr viele haben, habe dazu auch schon viel in Foren (Auch in diesem) gelesen und auch viele Lösungsansätze ausprobiert, aber ich bin immernoch nicht richtig zufrieden.

Ich bekomme immer wieder "hbox" Warnungsmeldungen. verschiedene Lösungsansätze habe ich schon ausprobiert, aber immer wieder kommen diese Warnungen, je nachdem wie lang der Text in den einzelnen Zellen ist.

Also ich poste hier jetzt einfach mal genau meine Tabelle.
Ich wünsche mir Tipps ob man allgemein Sachen besser machen kann, wie ich die ständigen "hboxes" vermeide und ich möchte das "Mittwoch" in der Zelle auch vertikal zentriert ist.
Ich hoffe auf viele Ideen und Lösungsvorschläge:
% Meine Tabelle
\documentclass[a4paper, 12pt]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{array}
\usepackage{microtype}


\begin{document}

\begin{tabular}{ |l|l|l| }
\hline
Wochentag & Projekt & Tätigkeiten \\ \hline
\parbox{2cm}{Montag} & \parbox{4,5cm}{Renovierung eines Wohnzimmers (Schlutup)} &
\parbox{7,5cm}{
\begin{itemize}
\item Schlitzen und ausstemmen von Kabelkanälen
\item Legen von Kabelleitungen für Dosen, Schalter und Lampen
\item Kabelbefestigungen mittels Spachtelmasse, Nagel-scheiben und -schellen
\end{itemize}
}\\ \hline
\parbox{2cm}{Dienstag} & \parbox{4,5cm}{Geschäft für Sportbekleidung (Lübeck Altstadt)} &
\parbox{7,5cm}{
\begin{itemize}
\item Netzwerkkabel verlegen und anschließen
\item Netzwerk installieren und prüfen
\item Kabelleitung für Heizung verlegen
\end{itemize}
}\\ \hline
\parbox{2cm}{Mittwoch} & \parbox{4,5cm}{Einfamilienhaus (Lübeck)} & \parbox{7,5cm}{
\begin{itemize}
\item Dimmbare LED-Deckenleuchten montieren
\item Schalter für Jalousien montieren
\end{itemize}
}\\ \cline{2-3}
& \parbox{4,5cm}{Renovierung eines Wohnzimmers (Schlutup)} & \parbox{7,5cm}{
\begin{itemize}
\item Arbeiten mit einer Durchziehhilfe
\end{itemize}
}\\ \hline
\parbox{2cm}{Donnerstag} & \parbox{4,5cm}{Einfamilienhaus (Hamberge)} & \parbox{7,5cm}{
\begin{itemize}
\item Schaltkasten vorbereiten und beschriften
\item Ausstemmen von Kabelkanälen
\item Unterputz- und Aufputz- Steckdosen montieren
\end{itemize}
}\\ \hline
\parbox{2cm}{Freitag} & \parbox{4,5cm}{Einfamilienhaus (Hamberge)} & \parbox{7,5cm}{
\begin{itemize}
\item Anschluss von Backofen und Herd
\item Baubegehung und Besprechung
\end{itemize}
}\\ \hline
\end{tabular}

\end{document}

%Ende 
[/code]

Verfasst: Sa 3. Okt 2015, 13:22
von Johannes_B
Ich würde zuerst die vertikalen Linien rausschmeißen, und die vielen unnötigen parboxen.
\documentclass[a4paper, 12pt]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\usepackage{microtype}
\usepackage{booktabs}
\usepackage{enumitem}


	\setlist[itemize]{nosep,leftmargin=1em}
\begin{document}

\begin{tabular}{ m{.18\linewidth}L{.25\linewidth}L{.45\linewidth} }
	\toprule
	Wochentag & Projekt & Tätigkeiten \\ \midrule
	Montag & Renovierung eines Wohnzimmers (Schlutup) &
	\begin{itemize}
			\item Schlitzen und ausstemmen von Kabelkanälen
			\item Legen von Kabelleitungen für Dosen, Schalter und Lampen
			\item Kabelbefestigungen mittels Spachtelmasse, Nagel-scheiben und -schellen
		\end{itemize}
	\\ \midrule
	Dienstag & Geschäft für Sportbekleidung (Lübeck Altstadt) &
	\begin{itemize}
			\item Netzwerkkabel verlegen und anschließen
			\item Netzwerk installieren und prüfen
			\item Kabelleitung für Heizung verlegen
		\end{itemize}
	\\ \midrule
	Mittwoch & Einfamilienhaus (Lübeck) & 
	\begin{itemize}
			\item Dimmbare LED-Deckenleuchten montieren
			\item Schalter für Jalousien montieren
		\end{itemize}
	\\ \cmidrule{2-3}
	& Renovierung eines Wohnzimmers (Schlutup) &
	\begin{itemize}
			\item Arbeiten mit einer Durchziehhilfe
		\end{itemize}
	\\ \midrule
	Donnerstag & Einfamilienhaus (Hamberge) &
	\begin{itemize}
			\item Schaltkasten vorbereiten und beschriften
			\item Ausstemmen von Kabelkanälen
			\item Unterputz- und Aufputz- Steckdosen montieren
		\end{itemize}
	\\ \midrule
	Freitag & Einfamilienhaus (Hamberge) &
	\begin{itemize}
			\item Anschluss von Backofen und Herd
			\item Baubegehung und Besprechung
		\end{itemize}
	\\ \bottomrule
\end{tabular}

\end{document}

Verfasst: Sa 3. Okt 2015, 13:23
von Besserwisser
Statt \parbox in l-Spalten könnte man direkt p- oder m-Spalten (mit array) oder X-Spalten (mit tabularx) verwenden. Wobei die vertikale Zentrierung in Deinem Beispiel ja ohnehin beim Mittwoch nicht funktioniert und man IMHO problemlos darauf verzichten könnte. Dann bräuchte man auch die horizontalen Linien nicht mehr.

Die ganzen ohnehin eher störenden vertikalen Linien könnte man weglassen.

Damit böte es sich dann auch an, optisch gefälligere horizontale Linien – soweit noch erforderlich – mit booktabs zu setzen, wo diese notwendig sind.

Siehe auch das tabsatz-Dokument in Wichtige Netzdokumente.

Overfull \hbox bekommst du übrigens beim Donnerstag, weil der Text länger ist als die \parbox breit. Kann man sehr schön sehen, wenn man mal Option draft einschaltet. Dann werden übervolle Boxen nämlich mit schwarzem Balken markiert.

Verfasst: Sa 3. Okt 2015, 18:57
von Xodarap
Vielen dank schonmal für die ganzen Vorschläge!
Ich gucke mir das morgen alles mal an :)

Verfasst: Di 6. Okt 2015, 17:11
von Xodarap
Sehr cool :)
Habe mich gerade nochmal rangesetzt :)
Der Vorschlag ohne die vertikalen Linien war super. Das sieht viel besser aus! Hätte ich nicht erwartet.
Warnungen habe ich auch keine mehr !

Danke schön.
Ich habe in der nächsten Zeit bestimmt öfter mal fragen ;)

Grüße

Verfasst: Sa 10. Okt 2015, 10:46
von Xodarap
Hey jetzt habe ich ein neues Problem.
Ich nutze im Prinzip die selbe Tabelle und bín immernoch im selben Dokument.
Nur hat meine Tabelle jetzt deutlich mehr Inhalt und ist länger als eine Din A4 Seite. Die Tabelle ist also unten abgeschnitten.
Wie löse ich das ?

Verfasst: Sa 10. Okt 2015, 11:07
von Johannes_B
Paket longtable

Verfasst: So 11. Okt 2015, 11:43
von Xodarap
und nochmal vielen Dank :) Das hat wieder geholfen !

Verfasst: Mo 21. Dez 2015, 15:41
von Guban
Ich habe ein Problem mit meiner Tabelle. Ich möchte gerne \multicolumn verwenden und zwar ist es eine Tabelle mit 4 Spalten. Jetzt möchte ich gerne als Beschriftung in der ersten Zeile die beiden ersten Zellen zu einer und die beiden letzten Zellen zu einer zusammenfassen.


Ich füge mal eine Minimalbeispiel an. Im ersten ist das \multicolumn in der ersten Zeile und produziert Fehler:
! Misplaced \omit.
\multispan ->\omit
\@multispan
l.481 ...olumn{2}{|c|}{\textbf{Extraction buffer}}
& \multicolumn{2}{c|}{\te...
I expect to see \omit only after tab marks or the \cr of
an alignment. Proceed, and I'll ignore this case.
\documentclass[11pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=3cm,right=4cm,top=3cm,bottom=3cm,includeheadfoot]{geometry}

\usepackage[german, english]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Kopf- und Fußzeile
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}

%Kopfzeile rechts bzw. außen
\fancyhead[R]{\nouppercase{\leftmark}}
%Linie oben
\renewcommand{\headrulewidth}{0.5pt}

%Fußzeile rechts bzw. außen
\fancyfoot[R]{\thepage}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}


\usepackage{multirow}
\usepackage[T1]{fontenc}
\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{}}}

\usepackage{caption}
\captionsetup{font={footnotesize},labelfont={bf}}


 \begin{document}
 \begin{table}
\caption{\textbf{asndaf}}

\begin{tabular}{|c|c|c|c|}
\hline 
\rule[-1ex]{0pt}{2.5ex}
\multicolumn{2}{|c|}{\textbf{alskdf}} & \multicolumn{2}{c|}{\textbf{asdfk}} \\  
\hline
\textbf{xy} &\textbf{yx}  &  \textbf{xy} & \textbf{yx} \\ 
\hline
\rule[-1ex]{0pt}{2.5ex}
a &  b & c & d \\
\hline
a & b & c & d\\ 
\hline 
\end{tabular} 
\end{table}

\end{document}
Im zweiten Beispiel ist das \multicolumn in der zweiten Zeile und die Kompilierung läuft normal.
\documentclass[11pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=3cm,right=4cm,top=3cm,bottom=3cm,includeheadfoot]{geometry}

\usepackage[german, english]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Kopf- und Fußzeile
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}

%Kopfzeile rechts bzw. außen
\fancyhead[R]{\nouppercase{\leftmark}}
%Linie oben
\renewcommand{\headrulewidth}{0.5pt}

%Fußzeile rechts bzw. außen
\fancyfoot[R]{\thepage}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}


\usepackage{multirow}
\usepackage[T1]{fontenc}
\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{}}}

\usepackage{caption}
\captionsetup{font={footnotesize},labelfont={bf}}


 \begin{document}
 \begin{table}
\caption{\textbf{asndaf}}

\begin{tabular}{|c|c|c|c|}
\hline 
\rule[-1ex]{0pt}{2.5ex}
\textbf{xy} &\textbf{yx}  &  \textbf{xy} & \textbf{yx} \\ 
\hline
\multicolumn{2}{|c|}{\textbf{alskdf}} & \multicolumn{2}{c|}{\textbf{asdfk}} \\  
\hline
\rule[-1ex]{0pt}{2.5ex}
a &  b & c & d \\
\hline
a & b & c & d\\ 
\hline 
\end{tabular} 
\end{table}

\end{document}

Verfasst: Mo 21. Dez 2015, 15:49
von Guban
Ah, jetzt habe ich das mit den Codes direkt anzeigen rausgefunden.. Beispiel 2 unterscheidet sich nur darin, dass das \multicolumn in der zweiten Zeile steht.
Hat jemand eine Ahnung, was ich tun kann, um die Überschriften so hinzubekommen?
\documentclass[11pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=3cm,right=4cm,top=3cm,bottom=3cm,includeheadfoot]{geometry}

\usepackage[german, english]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Kopf- und Fußzeile
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}

%Kopfzeile rechts bzw. außen
\fancyhead[R]{\nouppercase{\leftmark}}
%Linie oben
\renewcommand{\headrulewidth}{0.5pt}

%Fußzeile rechts bzw. außen
\fancyfoot[R]{\thepage}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}


\usepackage{multirow}
\usepackage[T1]{fontenc}
\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{}}}

\usepackage{caption}
\captionsetup{font={footnotesize},labelfont={bf}}


 \begin{document}
 \begin{table}
\caption{\textbf{asndaf}}

\begin{tabular}{|c|c|c|c|}
\hline 
\rule[-1ex]{0pt}{2.5ex}
\multicolumn{2}{|c|}{\textbf{alskdf}} & \multicolumn{2}{c|}{\textbf{asdfk}} \\  
\hline
\textbf{xy} &\textbf{yx}  &  \textbf{xy} & \textbf{yx} \\ 
\hline
\rule[-1ex]{0pt}{2.5ex}
a &  b & c & d \\
\hline
a & b & c & d\\ 
\hline 
\end{tabular} 
\end{table}

\end{document}
Noch ne Frage: warum krieg ich immer diese Meldung?

Usage of package `fancyhdr' together(scrartcl) with a KOMA-Script class is not recommended.