Zeilenumbruch in Tabelle, \multicolumn funktioniert nicht

Tabellen und Grafiken erstellen und anordnen


Eddie144
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Do 18. Jun 2015, 08:40

Zeilenumbruch in Tabelle, \multicolumn funktioniert nicht

Beitrag von Eddie144 »

Hallo zusammen,

ich habe das Problem, dass der Zeilenumbruch in einer Tabelle nicht funktioniert. Zum Problem findet man sehr viel in div. Foren, eine übliche Lösung ist die Verwendung von \multicolumn mit Breitenangabe. Dies funktioniert bei mir jedoch nicht.

Meine Tabelle hat eine etwas komplizierte Struktur, in der ich eine Maximalbreite einiger Spalten durchsetzen möchte. Im Beispiel unten sollen z.B. die ganzen h's umgebrochen werden, was aber nicht passiert.

Hat jemand eine Idee?
\documentclass{article}
\usepackage{tabularx}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}
\begin{table}

\begin{tabular}{lrc|clc|c}

	                                     	                                     &           &                                        \multicolumn{ 5}{c}{\textbf{Überschrift}}                                         \\
	                                     	                                      \cline{3-4} \cline{6-7}
	                                     	                                     
	\multirow{2}{*}{\textbf{text}} &    bla & \multicolumn{1}{|C{2cm}|}{a} & \multicolumn{1}{C{2cm}|}{b}                         & &  \multicolumn{1}{|C{2cm}|}{e} & \multicolumn{1}{C{2cm}|}{f} \\ 
	\cline{3-4}\cline{6-7}
	                                  & blub & \multicolumn{1}{|C{2cm}|}{c}               &  \multicolumn{1}{C{2cm}|}{d} & &  \multicolumn{1}{|C{2cm}|}{g} & \multicolumn{1}{C{2cm}|}{hhhhhhhhhhhhhhhhhh} \\ 
	                                  \cline{3-4} \cline{6-7}
\end{tabular}  
\end{table}

\end{document}
[/code]

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Wie würdest Du hhhhhhhhhhhhhhhhhh in einem Text von Dir umbrechen??

Es muss zum einen eine mögliche Trennstelle geben. Die sind auch sprachabhängig, weshalb Du babel mit der entsprechenden Sprachoption laden solltest. Außerdem wird das erste Wort in einem Absatz nicht getrennt. In Tabellen kann man das dennoch erreichen, wenn man ein \hspace{0pt} voranstellt.
\documentclass{article} 
\usepackage[ngerman]{babel}
\usepackage{tabularx} 
\usepackage[utf8]{inputenc} 
\usepackage{multirow} 
\newcolumntype{C}[1]{>{\centering\arraybackslash\hspace{0pt}}p{#1}} 

\begin{document} 
\begin{table} 
\begin{tabular}{lrc|clc|c} 
&&\multicolumn{ 5}{c}{\textbf{Überschrift}}\\ 
\cline{3-4} \cline{6-7} 
\multirow{2}{*}{\textbf{text}} &bla 
  & \multicolumn{1}{|C{2cm}|}{a} & \multicolumn{1}{C{2cm}|}{b}&
  &\multicolumn{1}{|C{2cm}|}{e} & \multicolumn{1}{C{2cm}|}{f} \\ 
\cline{3-4}\cline{6-7} 
& blub 
  & \multicolumn{1}{|C{2cm}|}{c}&  \multicolumn{1}{C{2cm}|}{d} &
  &  \multicolumn{1}{|C{2cm}|}{g} & \multicolumn{1}{C{2cm}|}{Schifffahrtsgesellschaft} \\ 
\cline{3-4} \cline{6-7} 
\end{tabular}   
\end{table} 
\end{document}

Falls Du in Deiner echten Tabelle in Spalten in mehr als der Hälfte der Zellen dieses immer gleiche \multicolumn{1}{C{2cm}}{...} drin stehen hast, dann solltest Du besser die Spaltendefinition im Tabellenkopf ändern. \multicolumn verwendet man nur, wenn man entweder Einträge über mehrere Spalten machen will oder wenn man die Formatierung einzelner Zellen in einer Spalte ändern möchte.

Gruß
Elke

Eddie144
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Do 18. Jun 2015, 08:40

Beitrag von Eddie144 »

Eigentlich gehört da natürlich kein "hhhhhh" rein, sondern eine Aufzählung. Die hat aber keine Leerzeichen, deswegen wurde nicht umgebrochen. Eigentlich sehr offensichtlich, aber manchmal hat man ein Brett vor dem Kopf. Danke fürs Brett entfernen :)

und das mit den multicolumns in jeder Zeile ist auch weniger für die Breite als für die vertikalen Linien da.

Antworten