zentrieren eines 2-zeiligen Text über 3 Zeilen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: zentrieren eines 2-zeiligen Text über 3 Zeilen

von Xenara » Do 1. Jul 2010, 13:29

Alles klar, vielen Dank für die Erläuterungen.

von KOMA » Do 1. Jul 2010, 13:25

TeX trennt das erste Wort eines Absatzes (also auch das erste Wort in einer \parbox, respektive m- oder b- oder p-Spalte) nicht automatisch. Um die automatische Trennung trotzdem zu ermöglichen, verwende ich \hspace{0pt} als erstes Wort. Das hätte man natürlich auch gleich in die Spaltendefinition mit einbauen können.

Für die automatische Trennung wird natürlich auch die richtige Sprache und die korrekte Eingabecodierung benötigt. Deshalb habe ich in meinem Beispiel beides ergänzt. Danach kann man die Trennung getrost TeX überlassen - solange dabei keine unschönen Trennungen entstehen, was ich keineswegs kontrolliert habe.

von Xenara » Do 1. Jul 2010, 13:18

Das wäre so auch mein Vorschlag gewesen, KOMA war schneller. Dafür habe ich die Sache mit den vertikalen Linien bereits eingearbeitet ;)
\documentclass[12pt]{scrreprt} 

\usepackage[T1]{fontenc} 
%\usepackage{longtable} 
%\usepackage{lmodern} 
%\usepackage{tabularx} 
%\usepackage{multirow}   

\usepackage{array}
\usepackage{booktabs}
                      
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} % horizontal und vertikal zentrierte Spalten mit Breitenangabe 
%\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe 
%\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe 

\begin{document} 

\begin{tabular}{C{1.3cm}C{2.4cm}C{2.45cm}} 
\toprule 
Text 1& \bfseries Gebäude\-grund\-fläche & \bfseries Schiff-\par fahrt \\ 
\midrule 
Hallo &    20 &       23  \\ 
\bottomrule 
\end{tabular} 

\end{document} 
@Markus: Wieso setzt Du noch ein \hspace{0} vor die Einträge?

von KOMA » Do 1. Jul 2010, 13:15

Ich vermute, dass das ein typischer Fall für »weniger ist mehr« ist:
\documentclass[12pt]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} % zentrierte Spalten mit Breitenangabe

\begin{document}

\begin{tabular}{|C{1.3cm}|C{2.4cm}|C{2.45cm}|}
\hline
Text 1 & \hspace{0pt}Gebäudegrundfläche & \hspace{0pt}Schifffahrt \\
\hline
Hallo &    20 &       23  \\
\hline
\end{tabular}

\end{document}
BTW: Vertikale Linien sind in Tabellen höchst ungünstig. Siehe dazu die einschlägige typografische Literatur sowie die Anleitung zum Paket booktabs (← dies ist ein geprüfter Link, der direkt zur Paketkurzbeschreibung auf CTAN führt!) sowie das Dokument tabsatz.pdf (siehe dazu den zweiten Link in meiner Signatur).

zentrieren eines 2-zeiligen Text über 3 Zeilen

von fploink » Do 1. Jul 2010, 12:56

Hallo,
ich hab ein Problem mit dem zentrieren über mehrere Zeilen.
Konkret möchte ich bei meinem Minimalbeispiel das Wort "Schifffahrt", das über zwei Zeilen geht, über die drei Zeilen des Tabellenkopfes zentrieren.

Kann mir da jemand weiterhelfen?
\documentclass[12pt]{scrreprt}

\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{lmodern}
\usepackage{tabularx}
\usepackage{multirow}								
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentrierte Spalten mit Breitenangabe 
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe 
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe 

\begin{document}

\begin{tabular}{|C{1.3cm}|C{2.4cm}|C{2.45cm}|}
\hline 
\multicolumn{1}{|c|}{\multirow{3}{*}{{\bf{Text 1}}}}& \textbf{Gebäude-}& {\textbf{Schiff-}} \\ 
& \textbf{grund-}  &\bf{fahrt}  \\ 
 & \textbf{fläche} & \\ 
\hline
Hallo &    20 &       23  \\
\hline
\end{tabular}

\end{document}
Danke

mfg Florian

Nach oben