PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inhalt einer Tabellenzelle vertikal zentrieren



Roboto
02-04-2010, 00:52
Hallo zusammen!

Ich suche hier eure Hilfe auf, da ich es aufgegeben habe nach folgendem Problem zu googeln.

Und zwar habe ich eine Tabelle (4x4), in der ich lediglich eine Zelle (im Code blau hervorgehoben) vertikal zentrieren will. Es handelt sich dabei um die Zelle mit dem Inhalt "Mobile Phase".

Hier mein Header:

\documentclass[a4paper,12pt,headsepline,liststotocnumbered,titlep age,bibtotoc,idxtotoc,twoside,pointlessnumbers]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[latin1,applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{bibgerm}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{makeidx}
\usepackage{tabularx, booktabs, multirow}
\usepackage[thinspace]{SIunits}
\usepackage{upgreek}
\usepackage{listings}
\usepackage[automark]{scrpage2}
\usepackage{hyperref}

nun der Code für die Tabelle:

\begin{table}[h]
\caption{Einteilung nach Phasenaufbau der Trennstrecke}
\centering
\begin{tabular}{|ll|p{3cm}|p{3cm}|}
\hline
& \multicolumn{1}{c|}{} & \multicolumn{2}{c|}{Stationäre Phase} \\
\cline{3-4}
& & fest & flüssig \\
\hline
[COLOR="Blue"]\multirow{2}{0.4cm}{\rotatebox{90}{Mobile Phase}} & \multicolumn{1}{|l|}{flüssig} & flüssig-fest \newline (Adsorption) \newline LSC & flüssig-flüssig \newline (Verteilung) \newline LLC \\
\cline{2-4}
&\multicolumn{1}{|c|}{gasförmig} & gasförmig-fest \newline (Adsorption) \newline GSC & gasförmig-flüssig \newline (Verteilung) \newline GLC \\
\hline
\end{tabular}
\label{Tab2.1}
\end{table}

Ich habe da schon eine ganze Weile dran gesessen, bloß geschafft habe ich es leider nicht.
Kann mir jemand dabei helfen?

MfG
Roberto

u_fischer
02-04-2010, 12:12
Hier mein Header:

Warum machst du nicht ein lauffähiges Minimalbeispiel, in dem du ein paar der unnötigen Pakete weglässt und dafür noch \begin{document} und \end{document} hinzufügst? Dann könnte man deinen Code gleich ausprobieren.


\usepackage[latin1,applemac]{inputenc}

Ist deine Datei halb in Latin1 und halb in applemac kodiert? Oder welche Idee steckt hinter den beiden Optionen?


in der ich lediglich eine Zelle (im Code blau hervorgehoben) vertikal zentrieren will.

Dein wesentliches Problem ist, dass multirow eigentlich 6 Zeilen überspannen muss. Dein zweites, dass \rotatebox den Referenzpunkt unten hat.



\documentclass[fontsize=12pt,paper=a4,parskip]{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{multirow}
\usepackage{graphicx}
\begin{document}

x\rotatebox{90}{Mobile Phase}

\begin{tabular}{|ll|p{3cm}|p{3cm}|}
\hline
& \multicolumn{1}{c|}{} & \multicolumn{2}{c|}{Stationäre Phase} \\
\cline{3-4}
& & fest & flüssig \\
\hline
\multirow{6}{0.4cm}{\raisebox{-0.5\height}{\rotatebox{90}{Mobile Phase}}} & \multicolumn{1}{|l|}{flüssig} & flüssig-fest \newline (Adsorption) \newline LSC & flüssig-flüssig \newline (Verteilung) \newline LLC \\
\cline{2-4}
&\multicolumn{1}{|c|}{gasförmig} & gasförmig-fest \newline (Adsorption) \newline GSC & gasförmig-flüssig \newline (Verteilung) \newline GLC \\
\hline

\end{tabular}

Ohne Multirow:

\begin{tabular}{|ll|p{3cm}|p{3cm}|}
\hline
& \multicolumn{1}{c|}{} & \multicolumn{2}{c|}{Stationäre Phase} \\
\cline{3-4}
& & fest & flüssig \\
\hline
& \multicolumn{1}{|l|}{flüssig} & flüssig-fest \newline (Adsorption) \newline LSC & flüssig-flüssig \newline (Verteilung) \newline LLC \\
\cline{2-4}
\raisebox{\dimexpr-0.5\height+\ht\strutbox}[0pt][0pt]{\rotatebox{90}{Mobile Phase}}&\multicolumn{1}{|c|}{gasförmig} & gasförmig-fest \newline (Adsorption) \newline GSC & gasförmig-flüssig \newline (Verteilung) \newline GLC \\
\hline

\end{tabular}

\end{document}

Roboto
02-04-2010, 13:55
Habe den kompletten header deshalb eingefügt, damit man sehen kann welche Pakete genutzt werden und welche evtl noch hinzukommen müssen.

Die Geschichte mit applemac und latin1 benutze ich daher, dass ich ,wenn ich zuhause daran arbeite, mit einem Mac schreibe, in der Uni nutze ich einen PC.

Zu dem Punkt Minimalbeispiel, ich habe zum einem die Tabelle einfach per Copy'n'Paste eingefügt, weil es angenehmer war als unnötige Zeilen zu löschen . Zum anderen habe ich mittels verschiedener Lösungen aus dem Internet schon probiert mein Problem zu lösen, da ich aber ein Latexrookie bin, habe ich es nicht hin bekommen. Daher wollte ich mein konkretes Problem darstellen.

Werde dieses Problem noch bei einigen Tabellen haben, daher würde ich mich freuen, wenn ich es an meinem Beispiel erklärt bekomme.

u_fischer
02-04-2010, 14:31
Selbstverständlich ist es für dich angenehmer, einfach deinen Header und deinen Code zu kopieren, statt darüber nachzudenken, wie man ihn kürzer und klarer und vollständiger darstellen kann. Aber da du von anderen Hilfe haben möchtest, solltest ein paar Minuten investieren und darüber nachdenken, was für die Helfenden angenehmer ist: Ein Beispiel, das man direkt nach copy and paste kompilieren kann, und das nicht diverse Pakete benützt, die nichts mit dem Problem zu tun haben, und die andere vielleicht gar nicht installiert haben.


\usepackage[latin1,applemac]{inputenc} tut nichts anderes wie
\usepackage[applemac]{inputenc}. Denn die letzte Option gewinnt. Oder tauschst du immer die Reihenfolge der Optionen?

Und zuletzt: Hast du denn mein Beispiel mal ausprobiert? Inwiefern löst es dein Problem nicht?

Roboto
02-04-2010, 17:39
ja da hast du sicherlich recht, war gestern Nacht ein wenig gefrustet, und wollt nur noch ins Bett. Sorry!!!

Habe mich heute mit anderen Tabellen beschäftigt. An denen habe ich das komischer Weise sofort hin bekommen und Du hast recht, es liegt an dem rotatebox. Für die anderen Tabellen benutze ich weder multicolumns noch rotateboxes, da klappt das auf Anhieb!!!

Also werde ich mir das bei dieser Tabelle wohl überdenken müssen, ob die eine Zelle wirklich gedreht werden muss!!

Danke für die Hilfe!

Dann noch frohe Ostern!

u_fischer
03-04-2010, 11:29
Also werde ich mir das bei dieser Tabelle wohl überdenken müssen, ob die eine Zelle wirklich gedreht werden muss!!

Was bedeutet, dass du dir mein Beispiel immer noch nicht angeschaut hast.

Roboto
04-04-2010, 22:17
Eigentlich schon. Deine Lösung erhält sehr wahrscheinlich den Vorzug erhalten, muss dazu noch die Linienstärken einzelner Linien ändern. Dazu hab ich gleich die nächste Frage:

Kann bei deiner Lösung die Verwendung von tabularx anstelle von tabular irgendwelche Konflikte erzeugen, denn mit tabularx lassen sich einfach und schnell verschiedene Linienstärken einstellen.

Schon mal vielen Dank für deine Mühen, ich hätte wohl erheblich mehr Zeit dafür gebraucht als du dafür aufgebracht hast.

mechanicus
04-04-2010, 22:27
Eigentlich schon.
Hier ist wohl die Frage berechtigt -- hast du oder hast du nicht. Deine Aussage ist identisch zu: ein bisschen Schwanger. ;)



Deine Lösung erhält sehr wahrscheinlich den Vorzug erhalten, muss dazu noch die Linienstärken einzelner Linien ändern.

Nicht nur ändern, sondern weglassen. Vertikale Linien sind nun wirklich nicht der Hit.



denn mit tabularx lassen sich einfach und schnell verschiedene Linienstärken einstellen.
Was hat tabularx mit Linienstärken zu tun? Soviel ich weiß, nichts.


Gruß
Marco

Roboto
05-04-2010, 11:37
Also wenn du es so genaue wissen willst, ja habe ich, allerdings erst nachdem ich weitere Tabellen mit einheitlichem Design angefertigt habe. Daher war ich mir bis jetzt nicht sicher, ob ich diese Tabelle an die anderen vom Design her anpassen soll. Da ich bei den anderen mit Tabularx gearbeitet habe wollte ich die Tabelle erst umgestalten, was nicht viel sinn macht bei der Tabelle. Daher ist deine Lösung schon eingearbeitet.

Zu dem Punkt mit den Linienstärken ist zu sagen, dass es das drei Befehle für horizontale Linien gibt (toprule, midrule, bottomrule). Jede dieser Linie hat eine andere Stärke, so das z.B. die toprule "dicker" als die midrule ist, welche die oberste Zeile oder die Zeilen mit der Spaltenbeschreibung von den unteren Zellen deutlich trennt.
Hoffe doch mal, dass ich dir jetzt was sagen konnte, das du vielleicht noch nicht wußtest. Ich habe es nämlich gesehen, als ich bei google nach der Linienstärke gesucht habe.

lockstep
05-04-2010, 11:46
Zu dem Punkt mit den Linienstärken ist zu sagen, dass es das drei Befehle für horizontale Linien gibt (toprule, midrule, bottomrule). Jede dieser Linie hat eine andere Stärke, so das z.B. die toprule "dicker" als die midrule ist, welche die oberste Zeile oder die Zeilen mit der Spaltenbeschreibung von den unteren Zellen deutlich trennt.

Diese drei Befehle stammen aus dem Paket booktabs und haben mit tabularx nichts zu tun.

Die Anleitung zu booktabs ist übrigens eine gute Einführung in die Gestaltung von Tabellen. ("Never, ever use vertical rules." :D)

lockstep

Nina123
07-09-2010, 21:55
Hallo!

Ich habe mir dieses Thema jetzt schon in mehreren Foren durchgelesen und hab alles probiert, allerdings hab ich noch immer keine Lösung gefunden (kann auch sein, dass ich es einfach nicht kapier - ich verwende Latex erst seit kurzem): Wie kann ich Zellen, die ich mit \multirow vereint habe, horizontal zentrieren?

Als Beispiel hätte ich folgende Tabelle:

\documentclass[12pt, a4paper] {scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{array}
\usepackage{graphicx}
\addtokomafont{caption}{\small}
\parindent 0pt
\usepackage{color}
\usepackage{tabularx}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{multirow}
\renewcommand{\arraystretch}{1.5}



\begin{document}


\begin{tabular}{|C{2.5cm} C{1.8cm} C{3cm} C{2cm} C{2.2cm} C{2.5cm}|}
\hline
& & \textbf{GNSS} & \textbf{Ge\-nau\-ig\-keit} & \textbf{Ver\-füg\-bar\-keit} & \textbf{In\-ter\-vall} \\
\hline
\multirow{2}{2.5cm}{Ultra-Rapid (predicted half)} & Orbits & GPS & $\sim$ 10 cm & \multirow{2}{2.5cm}{Echtzeit} & 15 min \\
& Sat.uhren & GPS & $<$ 5 ns & & \\
\hline
\multirow{2}{2.5cm}{Ultra-Rapid (observed half)} & Orbits & GPS & $\sim$ 5 cm & \multirow{2}{2.5cm}{3 Stunden} & 15 min \\
& Sat.uhren & GPS & $\sim$ 0,2 ns & & \\
\hline
\multirow{2}{2.5cm}{Rapid} & Orbits & GPS & $<$ 5 cm & \multirow{2}{2.5cm}{17 Stunden} & 15 min \\
& Sat.uhren & GPS & 0,1 ns & & 5 min \\
\hline
\multirow{2}{2.5cm}{Final} & Orbits & GPS/GLONASS & $<$ 5 cm & \multirow{2}{2.5cm}{13 Tage} & 15 min \\
& Sat.uhren & GPS & $<$ 0,1 ns & & 5 min/30 sek \\
\hline
\end{tabular}


\end{document}



Das Problem dabei: Die erste und die fünfte Spalte (bei beiden wurde \multirow verwendet) lassen sich einfach nicht horizontal zentrieren! Egal was ich versucht habe - sie sind immer linksbündig.
Vielleicht kann mir jemand helfen?
Danke!

MfG Nina

u_fischer
08-09-2010, 08:31
\multirow{2}{2.5cm}{\centering Ultra-Rapid (predicted half)}

rais
08-09-2010, 09:23
Moin moin,

Die erste und die fünfte Spalte (bei beiden wurde \multirow verwendet) lassen sich einfach nicht horizontal zentrieren! Egal was ich versucht habe - sie sind immer linksbündig.
was hast Du denn versucht?


\renewcommand*\multirowsetup{\centering}

MfG

Nina123
08-09-2010, 09:36
\renewcommand*\multirowsetup{\centering}



Nein, das hab ich nicht versucht, aber das klappt jetzt, danke ihr beiden!!! :)
Ach wie einfach sowas gehn kann, und ich such gestern 2 Stunden herum... DAS hat aber nie jemand in einem Forum geschrieben.