Silbentrennung im ersten (und einzigen) Wort einer Spalte

Tabellen und Grafiken erstellen und anordnen


tari
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 25. Feb 2011, 12:06

Silbentrennung im ersten (und einzigen) Wort einer Spalte

Beitrag von tari »

Hallo,
ich bin neu hier im Forum und hoffe, dass ich das mit dem Minimalbeispiel ganz ok hinbekommen habe. Bin mir nicht sicher welche packages ich noch rauslassen kann, so dass es aber trotzdem noch gut funktioniert, sorry.
Ich schreibe meine Doktorarbeit in Latex und arbeite seit mehr als zwei Jahren mit TeXnikCenter. Bisher konnte ich meine Fragen und Probleme immer mit Hilfe von Forum-Antworten lösen, aber jetzt komme ich damit nicht mehr weiter.

Es geht um folgendes: Ich muss eine Tabelle im Querformat einfügen. Diese enthält Text und später auch Zahlen hab ich unten weggelassen. Aber mein Problem taucht schon gleich in den ersten zwei Zeilen auf. Da Latex das erste Wort eines Absatzes nicht trennt, ragen die Wörter in die nächste Spalte hinein.

Bisher habe ich es versucht mit
\newcolumntype{v}[1]{>{\RaggedRight\hspace*{0cm}}p{1.6cm}}

mit \hspace*{0pt} vor den zu langen Wörtern

und mit Elasto\-graphie z.B., aber das führte alles zu nichts.

Vielleicht überseh ich ja einen ganz einfachen Fehler? Ich hoffe, Ihr könnt mir helfen!

Vielen Dank!


\documentclass[12pt, headsepline, liststotoc, footsepline, a4paper] {scrartcl}

\usepackage[left=4cm, right=2cm, top=2cm, bottom=2cm, includeheadfoot]{geometry}
\usepackage[latin1]{inputenc}  
\usepackage{ngerman,textcomp}
\usepackage{graphicx}
\usepackage{scrpage2}
\usepackage{epstopdf}
\usepackage{hyperref}
\usepackage[nottoc]{tocbibind}
\usepackage{rotating}
\usepackage{float}
\usepackage[bf]{caption2}
\renewcommand{\captionfont}{\it \small}
\usepackage[none]{hyphenat}
\pagestyle{empty}

\begin{document}
\sloppy

\begin{sidewaystable} 
\begin{tabular}{|p{1.6cm}|p{1.6cm}|p{1.6cm}|p{1.6cm}|p{1.6cm}|p{1.6cm}|p{1.6cm}|p{1.6cm}|p{1.6cm}|p{1.6cm}|}
\hline
Patient & \multicolumn{3}{|c|}{Demographie} & Elastographie in kPa \footnote{Wenn innerhalb 18 Monaten auch Histologie} & \multicolumn{5}{|c|}{Histologie} \\
\hline
\hline
 & Alter in Jahren & Geschlecht & Erkrankungsdauer in Jahren &  & Stadium & Fibrosegrad & Gangproliferation & Cholestase & Granulomvorkommen \\
\hline
\hline
\end{tabular}
\end{sidewaystable}

\end{document}

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Wie soll es auch trennen, wenn du Trennungen verboten hast?
Es wird ja auch im ganz normalen Text nicht getrennt, nicht nur in der Tabelle nicht.
Wenn du weiter Pakete auskommentiert hättest, hättest du den Fehler ganz leicht finden können: Paket hyphenat ist dafür da, um mit Option "none" jegliche Trennung zu unterbinden...

Abgesehen davon:
- Paket "caption2" ist veraltet, wie auch in den Warnungen kommt, es soll durch "caption" ersetzt werden.
- Paket "hyperref" soll in 99% der Fälle als allerletztes Paket geladen werden, da es sonst unspezifische Probleme verursachen kann.
- Der Befehl "\RaggedRight" funktionierte bei mir nur, nachdem das Paket "ragged2e" geladen war.
- Vertikale Linien in Tabellen sind verpönt, da sie den Lesefluss stören. Man findet sie auch in keinem gut gesetzten Buch. Ich habe deine Tabelle mal noch ein wenig mit booktabs und tabularx überarbeitet, ich finde, sie wirkt so eleganter, ausserdem wird die Seite besser ausgenutzt.
\documentclass[12pt, headsepline, liststotoc, footsepline, a4paper] {scrartcl} 

\usepackage[left=4cm, right=2cm, top=2cm, bottom=2cm, includeheadfoot]{geometry} 
\usepackage[latin1]{inputenc}   
\usepackage[T1]{fontenc}

\usepackage{ngerman}
\usepackage{textcomp} 

\usepackage{graphicx} 
\usepackage{scrpage2} 
\usepackage{epstopdf} 
\usepackage[nottoc]{tocbibind} 
\usepackage{rotating} 
\usepackage{float} 
\usepackage[bf]{caption} 
\renewcommand{\captionfont}{\it \small} 
%\usepackage[none]{hyphenat} 
\pagestyle{empty} 

\usepackage{ragged2e} 
\usepackage{array}
\usepackage{booktabs}
\usepackage{tabularx}


\usepackage{hyperref} 

\begin{document} 
%\sloppy 

\newcolumntype{v}[1]{>{\arraybackslash\hspace*{0cm}}p{#1}} 


\begin{sidewaystable} 
\begin{tabular}{*{10}{|v{1.6cm}}|} 
\hline 
Patient & \multicolumn{3}{|c|}{Demographie} & Elastographie in kPa \footnote{Wenn innerhalb 18 Monaten auch Histologie} & \multicolumn{5}{|c|}{Histologie} \\ 
\hline 
\hline 
 & Alter in Jahren & Geschlecht & Erkrankungsdauer in Jahren &  & Stadium & Fibrosegrad & Gangproliferation & Cholestase & Granulomvorkommen \\ 
\hline 
\hline 
\end{tabular} 
\end{sidewaystable} 


\begingroup
\newcolumntype{Y}{>{\centering\hspace*{0cm}\arraybackslash}X}
\renewcommand{\tabularxcolumn}[1]{b{#1}}
\begin{sidewaystable} 
\begin{tabularx}{\textheight}{*{10}{Y}} 
\toprule 
Patient & \multicolumn{3}{c}{Demographie} & Elastographie in kPa \footnote{Wenn innerhalb 18 Monaten auch Histologie} & \multicolumn{5}{c}{Histologie} 
\\ 
\cmidrule(lr){1-1}
\cmidrule(lr){2-4}
\cmidrule(lr){5-5}
\cmidrule(lr){6-10}
 & Alter in Jahren & Geschlecht & Erkrankungsdauer in Jahren &  & Stadium & Fibrosegrad & Gangproliferation & Cholestase & Granulomvorkommen \\  
\cmidrule(lr){1-1}
\cmidrule(lr){2-4}
\cmidrule(lr){5-5}
\cmidrule(lr){6-10}
Ich & 44 & weiblich & 4 & C & X & D & H & keins\\
\bottomrule
\end{tabularx} 
\end{sidewaystable} 
\endgroup

\end{document}

tari
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 25. Feb 2011, 12:06

Beitrag von tari »

Vielen Dank für deine Hilfe!

Ich hab Trennungen verboten, da mir jemand gesagt hatte, der Text sähe besser aus im Blocksatz ohne Silbentrennung.

Das mit den vertikalen Linien habe ich jetzt auch schon mehrmals gelesen, da werde ich alle meine Tabellen eventuell nochmals überarbeiten.

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

tari hat geschrieben:Ich hab Trennungen verboten, da mir jemand gesagt hatte, der Text sähe besser aus im Blocksatz ohne Silbentrennung.
Au weia. Das halte ich für keine gute Idee, zumindest im Deutschen nicht, da es hier zu viele lange Wörter gibt.

Es gibt zwei Möglichkeiten, Text für den Blocksatz auf die ganze Zeile zu strecken:
Entweder, man schaut, dass der Text die Zeile ziemlich genau ausfüllt, oder man streckt die Wort-Zwischenräume so, dass das letzte Wort dann bündig mit dem Zeilenende aufhört.
Ersteres ist definitiv am Schönsten. Die zweite Variante kann man ein Stück weit machen, darf es aber nicht übertreiben, sonst stehen nur zwei oder drei Wörter in einer Zeile und dazwischen ist ein kilometerweiter Zwischenraum.
LaTeX macht eine Kombination aus beidem und sorgt dabei auch dafür, dass die gesamte Seite stimmig aussieht.

Solange du nicht wirklich weisst, was du tust, lass LaTeX einfach mal machen. Der ganz normale Standard-Blocksatz ist bereits hervorragend.
Es gibt nur ganz wenige Gründe, daran was zu ändern.
Lass also hypenat komplett weg und streiche auch \sloppy raus.
(\sloppy sorgt für einen "schlampigeren" Blocksatz, \fussy stellt auf den "pingeligen" Standard-Blocksatz zurück.)

die-kenny
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 28. Mär 2012, 11:15

Beitrag von die-kenny »

Bei mir tritt das Problem, dass ein einzelnes Wort in einer Zelle nicht getrennt wird, ebenfalls auf und durch googeln bin ich eben hier fündig geworden..
Allerdings ist das Beispiel hier ja oberkompliziert, sodass ich nicht so recht verstehe, was nun dazu führt, dass die Wörter dort doch getrennt werden.
Darum von mir noch mal ein ganz einfaches Minimalbeispiel, welches das Problem demonstriert.
\documentclass{scrartcl}
\begin{document}
 
\begin{table}
\centering
\begin{tabular}{p{2cm}|p{2cm}|p{2cm}}
	\hline
	eindimensional & mehrdimensional & ein lange Zeile \\
	\hline
	A & B & C 
\end{tabular}
\caption{Eine dreispaltige Tabelle}
\end{table}
 
\end{document}


Also ich hoffe ihr seht, was ich meine und wisst, wie man das ändern kann.

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

LaTeX trennt afaik das erste Wort in einer Zelle aus Prinzip nicht. Daher setzt man entweder die Trennstellen manuell, z.B. Trenn\-stelle, oder setzt ein \hspace{0pt} davor, damit es nicht mehr das erste Wort nicht mehr merkt, dass es das Erste ist.

Das ist das, was der Threadstarter bei seinem Problem versucht hat anzuwenden, wobei ihm da aber ein anderes Paket quergeschossen hat.
Bei dir ist das alles aber kein Thema :)

Ich habe die beiden Möglichkeiten in dein (prima) MB eingefügt:
\documentclass{scrartcl} 
\begin{document} 
  
\begin{table} 
\centering 
\begin{tabular}{p{2cm}|p{2cm}|p{2cm}} 
   \hline 
    ein\-dimensional & \hspace{0pt}mehrdimensional & ein lange Zeile \\ 
   \hline 
   A & B & C 
\end{tabular} 
\caption{Eine dreispaltige Tabelle} 
\end{table} 
  
\end{document} 
 

die-kenny
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 28. Mär 2012, 11:15

Beitrag von die-kenny »

Vielen Dank Xenara! :)
Oh, das mit \hspace{0pt} hab ich wohl überlesen. Das klappt aber super. Auf jeden Fall praktischer als \- (was ich schon probiert hatte und auch geklappt hatte)

PS: das Minimalbeispiel war quasi vom table-wiki-Eintrag geklaut ;)

Antworten