Seite 1 von 2
Kein Zeilenumbruch in Tablelle mit tabularx
Verfasst: Mo 17. Jan 2011, 10:24
von sandman85
Hallo zusammen.
Ich bin ein ziemlicher Latex-Neuling und versuche gerade, meine Diplomarbeit damit zu schreiben. Als Umgebung verwende ich Miktex 2.9 und als Editor Texniccenter. Soweit komm ich auch ganz gut klar (dank google

), nur hab ich gerade ein Problem mit einer Tabelle. Der Code sieht so aus:
\documentclass[a4paper,pdftex,oneside]{scrbook}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tabularx}
\begin{document}
\chapter{Grundlagen der numerischen Strömungssimulation}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{|X|X|X|X|X|}
\hline
\multicolumn{2}{|X|}{\textbf{Körperkräfte}}&\multicolumn{3}{X|}{\textbf{Oberflächenkräfte}}\\
\hline
Schwerkraft&elektromag. Kräfte&Druckkraft&\multicolumn{2}{X|}{Reibungskräfte}\\
\hline
\multicolumn{2}{|X}{}&&Normalspannungskraft&Schubspannungskraft\\
\hline
\end{tabularx}
\label{tab:momforces}
\caption{Komponenten des Kraftvektors $\vec{F}$}
\end{table}
\end{document}
Ich hoff, ich hab das mit dem Minimalbeispiel richtig gemacht
Naja, auf jeden Fall is das, was dabei rauskommt (siehe Bild im Anhang) Nicht so ganz das, was ich mir vorstelle. Und zwar wird ich der dritten Zeile in den letzten beiden Spalten der Text nicht mehr umbrochen, weshalb er über die Zellen raussteht. Ich dachte eigentlich, dass der Sinn der tabularx Umgebung ist, dass in der "X" Zelle Text automatisch umbrochen wird. Ich hätte gerne eine Tabelle, wie in meinem Beispiel, nur eben, dass in den letzten beiden Zellen der Text auch automatisch umbrochen wird.
Könnt ihr mir da weiterhelfen?
Viele Grüße
Sandman
Verfasst: Mo 17. Jan 2011, 10:40
von Sepp99
Du hast in der letzten Zeile ein "&" zuviel, durch den \multicolumn{2}-Befehl
\documentclass[a4paper,pdftex,oneside]{scrbook}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tabularx}
\begin{document}
\chapter{Grundlagen der numerischen Strömungssimulation}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{|X|X|X|X|X|}
\hline
\multicolumn{2}{|X|}{\textbf{Körperkräfte}}&\multicolumn{3}{X|}{\textbf{Oberflächenkräfte}}\\
\hline
Schwerkraft&elektromag. Kräfte&Druckkraft&\multicolumn{2}{X|}{Reibungskräfte}\\
\hline
\multicolumn{2}{|X}{}&Normalspannungskraft&Schubspannungskraft\\
\hline
\end{tabularx}
\label{tab:momforces}
\caption{Komponenten des Kraftvektors $\vec{F}$}
\end{table}
\end{document}
Gruß, Sepp
Verfasst: Mo 17. Jan 2011, 11:13
von sandman85
Hallo,
vielen Dank für die schnelle Antwort, doch leider wars das nicht.
Die zwei & in der letzten Zeile sollten eigentlich eine leere Zelle machen. Hab das jetzt mal ausgebessert und in die \multicolumn mit reingenommen. Doch leider ist das Ergebnis immer noch dasselbe
Aktualisierter Code:
\documentclass[a4paper,pdftex,oneside]{scrbook}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tabularx}
\begin{document}
\chapter{Grundlagen der numerischen Strömungssimulation}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{|X|X|X|X|X|}
\hline
\multicolumn{2}{|X|}{\textbf{Körperkräfte}}&\multicolumn{3}{X|}{\textbf{Oberflächenkräfte}}\\
\hline
Schwerkraft&elektromag. Kräfte&Druckkraft&\multicolumn{2}{X|}{Reibungskräfte}\\
\hline
\multicolumn{3}{|X|}{}&Normalspannungskraft&Schubspannungskraft\\
\hline
\end{tabularx}
\label{tab:momforces}
\caption{Komponenten des Kraftvektors $\vec{F}$}
\end{table}
\end{document}
Verfasst: Mo 17. Jan 2011, 11:25
von Sepp99
Bei mir siehts so aus (Anhang). Oder meinst Du etwas Anderes?
Gruß, Sepp.-[/img]
Verfasst: Mo 17. Jan 2011, 12:27
von sandman85
Ne, net ganz.
Die Zellen "Normalspannungskraft" und "Schubspannungskraft" sollten zusammen unter der Zelle "Reibungskräfte" stehen. Deswegen is "Reibungskräfte" auch als Multicolumn angelegt:
\multicolumn{2}{X|}{Reibungskräfte}
Nur leider macht er eben in den beiden o.g. Zellen keinen Zeilenumbruch, sondern schreibt über die Zelle hinaus...
Grüße
Sandman
Verfasst: Mo 17. Jan 2011, 13:31
von Sepp99
Warum machst Du dann 5 Spalten, wenn Du nur 4 benötigst? Im übrigen wäre das mit einer "einfachen" Tabellenumgebung auch zu machen. Ich habe dein Beispiel noch einmal adaptiert:
\listfiles
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tabularx}
\begin{document}
\chapter{Grundlagen der numerischen Strömungssimulation}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{|X|X|X|X|}
\hline
\multicolumn{2}{|X|}{\textbf{Körperkräfte}}&\multicolumn{2}{X|}{\textbf{Oberflächenkräfte}}\\
\hline
Schwerkraft&elektromag. Kräfte&Druckkraft&Reibungskräfte\\
\hline
\multicolumn{3}{|X|}{}&Normalspannungskraft Schubspannungskraft\\
\hline
\end{tabularx}
\label{tab:momforces}
\caption{Komponenten des Kraftvektors $\vec{F}$}
\end{table}
\end{document}
Vertikale Linien in Tabellen sind nicht unbedingt schön.
Gruß, Sepp.-
Verfasst: Mo 17. Jan 2011, 14:33
von Sepp99
Nachtrag:
Ich würde die Tabelle normalerweise so anlegen
\listfiles
\documentclass[a4paper,oneside]{scrbook}
%\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{blindtext}
\begin{document}
\chapter{Grundlagen der numerischen Strömungssimulation}
\blindtext
\begin{table}[htb]
\captionabove{Komponenten des Kraftvektors $\vec{F}$}
\centering
\begin{tabular}{llll} \toprule %p{3cm}p{3cm}p{3cm}p{3cm}
\multicolumn{2}{l}{\textbf{Körperkräfte}} & \multicolumn{2}{l}{\textbf{Oberflächenkräfte}} \\ \midrule
Schwerkraft & elektromag. Kräfte & Druckkraft & Reibungskräfte \\ \cmidrule(r){4-4}
& & & Normalspannungskraft \\
& & & Schubspannungskraft \\
\bottomrule
\end{tabular}
\label{tab:momforces}
\end{table}
\blindtext
\end{document}
Gruß, Sepp.-
Verfasst: Mo 17. Jan 2011, 14:50
von sandman85
Hmm... Also, so wirklich passt das immer noch net...
Zum einen wird in der letzten Zelle immer noch nicht passend umbrochen (Siehe Bild Fehler2.png im Anhang) und zum Anderen brauch ich schon die 5 Spalten, damit das Ganze so sortiert ist, wie ich mir das eingebildet hab

Ich habs mal schnell die Tabelle im Schreibprogramm eines bekannten, kommerziellen Office-Paketes (:)) erstellt, so wie ich mir das in etwa vorstell Siehe Bild Tabelle_Soll.png im Anhang. Nur, dass hier halt die Silbentrennung überhaupt nicht passt, aber das ist ja erstmal wurst... Das muss doch so (nur in besser

) in Latex auch irgendwie gehn, oder?
Desweiteren hab ich mir mal deine Anmerkung mit den vertikalen Linien zu Gemüte geführt, und ich glaub du hast recht... Sieht wirklich besser aus. Aber ich würd gern erstmal die Tabelle selbst so hinbekommen...
Sorry, dass ich so lang nerv, aber ich kann mir einfach nicht vorstellen, dass das nicht funktioniert...
Verfasst: Mo 17. Jan 2011, 15:08
von Sepp99
OK - neuer Versuch: LaTeX kann die beiden Worte scheinbar nicht trennen, deshalb mußt Du es unterstützen mit "Sollbruchstellen".
\listfiles
\documentclass[a4paper,pdftex,oneside]{scrbook}
%\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tabularx}
\begin{document}
\chapter{Grundlagen der numerischen Strömungssimulation}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{|X|X|X|X|X|}
\hline
\multicolumn{2}{|X|}{\textbf{Körperkräfte}}&\multicolumn{3}{X|}{\textbf{Oberflächenkräfte}}\\
\hline
Schwerkraft&elektromag. Kräfte & Druckkraft & \multicolumn{2}{|c|}{Reibungskräfte}\\
\hline
\multicolumn{3}{|X|}{}&Normal\-spannungs\-kraft & Schub\-spannungs\-kraft\\
\hline
\end{tabularx}
\label{tab:momforces}
\caption{Komponenten des Kraftvektors $\vec{F}$}
\end{table}
\end{document}
Gruß, Sepp.-
Verfasst: Mo 17. Jan 2011, 15:49
von sandman85
Suuuuuper... Vielen Dank!
Jetz schauts so aus, wie ich mir das vorgestellt hab
Nur einen kleinen Schönheitsfehler gibts noch. Hier ein kurzer Auszug aus der Logdatei:
Overfull \hbox (15.20139pt too wide) in paragraph at lines 24--24
[]|\T1/ptm/b/n/10.95 Oberflächenkräfte|
[]
Underfull \hbox (badness 10000) in paragraph at lines 24--24
[]|\T1/ptm/m/n/10.95 elektromag.
[]
Underfull \hbox (badness 10000) in paragraph at lines 24--24
[]|\T1/ptm/m/n/10.95 Normal-
[]
Underfull \hbox (badness 10000) in paragraph at lines 24--24
[]|\T1/ptm/m/n/10.95 Schub-
[]
Kann man da noch was gegen machen?
Grüße
Sandman