PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenspalten: Breite festlegen und zentrieren, aber auch vertikal



andi67
22-06-2011, 16:08
Hallo, ich habe ein Problem mit der Ausrichtung des Inhalts von Tabellenspalten.
Und zwar möchte ich sowohl die Breite einiger Spalten festlegen (wie mit p{}) aber gleichzeitig den Inhalt zentrieren. Dafür habe ich tatsächlich etwas gefunden (obwohl ich nicht verstehe was da passiert) nur zentriert mir diese Lösung nur horizontal aber nicht vertikal wie kann ich nun aber beides erreichen?

Hier ist mein bisheriges Minimalbeispiel:


\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{array} % für Tabellenspaltenformatierung
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}
Das ist ein Test
\begin{table}[htb]
\centering
\begin{tabular}{c|C{3cm}|C{3cm}}\hline\hline
\includegraphics[width=0.25\textwidth]{test.eps} & lalala & hallo\\
\includegraphics[width=0.25\textwidth]{test.eps} & wie & gehts?\\\hline\hline
\end{tabular}
\end{table}
\end{document}


Da der Uploader hier keine eps Dateien annimmt, habe ich die test.eps Datei einfach mal umbenannt in test.tar. Also bitte nicht versuchen sie zu entpacken!

Ich würde das obige Beispiel jetzt gerne um eine zusätzliche vertikale Zentrierung der beiden Spalten erweitern. Gerne auch durch Nutzung eines gänzlich anderen Packetes.
Ich mag es sowieso nicht so, Packete und Commandos zweckzuentfremden, ich bin durch jahrelange Beschäftigung mit HTML Konventionen eher an eine strickte Trennung von Inhalt und Design gewöhnt und will es eigentlich nicht missen, aber ich weis, dass das bei LaTeX nicht so einfach ist.

voss
22-06-2011, 16:35
Ich mag es sowieso nicht so, Packete und Commandos zweckzuentfremden, ich bin durch jahrelange Beschäftigung mit HTML Konventionen eher an eine strickte Trennung von Inhalt und Design gewöhnt und will es eigentlich nicht missen, aber ich weis, dass das bei LaTeX nicht so einfach ist.


\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{array,ragged2e} % für Tabellenspaltenformatierung
\newcolumntype{C}[1]{>{\Centering}m{#1}}

\begin{document}
Das ist ein Test
\begin{table}[htb]
\centering
\begin{tabular}{m{0.25\textwidth}|C{3cm}|C{3cm}}\h line\hline
\includegraphics[width=\linewidth]{test} & lalala & hallo\\
\includegraphics[width=\linewidth]{test} & wie & gehts?\\\hline\hline
\end{tabular}
\end{table}
\end{document}

Herbert

andi67
22-06-2011, 16:41
Super! Wie geht das? :)
Ich meine was passiert da? Ich merke das es an der m-Spalte liegt aber ich verstehe es nicht.

u_fischer
22-06-2011, 16:43
Deine m-Spalten sind entlang der Grundlinie zentriert. Du musst das aber auch für das Bild machen, z.B. indem du es nach unten bewegst. Bilder kannst du in solchem Beispielen durch \rule ersetzen.


\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{array} % für Tabellenspaltenformatierung
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}
Das ist ein Test
\begin{table}[htb]
\centering
\begin{tabular}{c|C{3cm}|C{3cm}}\hline\hline
\raisebox{-0.5\height}{\rule{3cm}{6cm}}&lalala &hallo\newline blub\newline blub\\
\raisebox{-0.5\height}{\rule{3cm}{6cm}}& wie & gehts?\\\hline\hline
\end{tabular}
\end{table}
\end{document}