Probleme mit der vertikalen Ausrichtung in einer Tabelle

Tabellen und Grafiken erstellen und anordnen


CHellwig
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Fr 16. Jul 2010, 18:25

Probleme mit der vertikalen Ausrichtung in einer Tabelle

Beitrag von CHellwig »

Hallo zusammen,

nachdem ich in meiner Studienarbeit und Projektarbeit viele frustrierte Stunden mit Word zugebracht habe wollte ich nun zu Latex wechseln und arbeite mich gerade so ein bisschen ein.

Aktuell hab ich folgendes Problem:
Ich hab eine Tabelle mit 3 Spalten, wobei die 2te Spalte ein Bild enthält. Jetzt sollen die erste und dritte Spalte vertikal zentriert sein, da hier zum Beispiel die Nummer des Bildes steht. Ich habe das array Paket eingebunden und benutze die Option m{...cm}. Leider zentriert er mit den Text nicht vertikal, sondern verändert nur die Spaltenbreite nach der eingegeben Größe. Hier mal ein Beispiel:
\documentclass[fontsize=12pt,a4paper,draft]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[macce]{inputenc}
\usepackage{textcomp}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{array}
\title{Testdokument}
\author{Anonymous}
\date{\today}

\begin{document}
\maketitle

\section{Anhang}

\begin{tabular} { m{2cm} c  m{3cm}}
\hline
Foto-Nr. & Foto & Beschreibung \\
\hline
1 & \includegraphics[scale=0.35]{Foto_001} &  Beschreibung: Test \\
\cline{2-3}
& Bewertung: Test \\
\hline
\end{tabular}

\end{document}


Raus kommt dann die Tabelle im Anhang. Hat jemand zufällig eine Idee was ich falsch mache?

Danke schonmal für eure Mühe
Dateianhänge
Test_Tabelle.jpg
Test_Tabelle.jpg (33.94 KiB) 2824 mal betrachtet

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Grafik in Tabelle

Beitrag von Stefan Kottwitz »

Hallo,

der Grund ist die Ausrichtung am unteren Rand der Grafik. Du kannst sie mit \raisebox zur Hälfte versetzen, dann kann vertikal mittig ausgerichtet werden:
\begin{tabular} { m{2cm} c  m{3cm}}
\hline
Foto-Nr. & Foto & Beschreibung \\
\hline
1 & \raisebox{-.5\height}{\includegraphics[scale=0.35]{Foto_001}} &  Beschreibung: Test \\
\cline{2-3}
& Bewertung: Test \\
\hline
\end{tabular}
Viele Grüße,

Stefan

CHellwig
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Fr 16. Jul 2010, 18:25

Beitrag von CHellwig »

Danke das hat schon mal wunderbar funktioniert, auch wenn ich den Grund noch nicht ganz durchschaut habe :) Aber dann hätte ich glatt noch zwei andere Fragen, wie kann ich eine kleinen Rand oben und unten um das Bild lasse, da es minimal die Linien berührt, was nicht ganz so gut aussieht. Zweite Frage wäre, ich hatte ganz am Anfang versucht per mutlirow jeweils in den ersten beiden Spalten zwei Zeilen zusammenzufassen und das Feld mit der Bewertung rechts neben das Bild in einer horizontal geteilten Box unter zu bringen. Also ungefähr so wie im Anhang
Jedoch wurde dann die Tabellengröße nicht an das Bild angepasst.
Gibts dafür noch einen Trick?

Danke für die schnelle Antwort.

Gruß Christian
Dateianhänge
test.jpg
test.jpg (17.08 KiB) 2795 mal betrachtet

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Tabelle

Beitrag von Stefan Kottwitz »

Hallo Christian,
  1. Du kannst mit \rule eine unsichtbare Stützlinie direkt vor \includegraphics einfügen und dadurch die Zelle vergrößern:
    \rule[-10pt]{0pt}{120pt}
  2. Wenn die automatische Anpassung mit multirow nicht klappt, könntest Du die rechte Spalte passend manuell vergrößern.
Stefan

CHellwig
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Fr 16. Jul 2010, 18:25

Beitrag von CHellwig »

Achso ne es geht nicht um die Spaltenbrei, sonder dass die Zeilenhöhe nicht angepasst wird, siehe wiederum Anhang.

Edit: So der Code natürlich noch...
\documentclass[fontsize=12pt,a4paper,draft]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[macce]{inputenc}
\usepackage{textcomp}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{array}
\title{Untersuchung der Elektroinstallationen}
\author{Christian Hellwig}
\date{\today}

\begin{document}
\maketitle

\section{Anhang}

\begin{tabular} { >\centering m{2cm}  m{6.2cm} m{3cm}}
\hline 
Foto-Nr. & Foto & Beschreibung \\
\hline
\multirow{2}{*}{1} &\multirow{2}{*}{\raisebox{-.5\height}{\rule[-10pt]{0pt}{120pt} \includegraphics[width=6cm]{Foto_001}}} &  Beschreibung \\
\cline{3-3}
& & Bewertung: 100\% Wiederverwendung \\
\hline
\end{tabular}

\end{document}

Dateianhänge
Bildschirmfoto 2010-07-18 um 18.22.42.png
Bildschirmfoto 2010-07-18 um 18.22.42.png (20.91 KiB) 2810 mal betrachtet

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Tabelle

Beitrag von Stefan Kottwitz »

Ich meinte schon die Vergrößerung der Zellenhöhe in der letzten Spalte. Durch \rule eventuell wieder, oder bespielsweise duch \\[2cm] am Zeilenende.

Stefan

CHellwig
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Fr 16. Jul 2010, 18:25

Beitrag von CHellwig »

Ok danke soweit schonmal,

aber dann muss ich die fehlenden Abstände immer manuell korrigieren oder? Weil die Tabelle wird natürlich länger. Ich hab quasi 22 Bilder mit der gleichen Höhe und wäre es jetzt möglich, dass wenn ich ihm sage er soll die Bilder auf 6cm Höhe skalieren, dass man dann auch gleich sagt, dass beide Zellen rechts davon auf jeweils 3 cm fixiert werden. Denn der Text variiert in der Beschreibung natürlich von der länge.

Gruß Christian

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Zellenhöhe

Beitrag von Stefan Kottwitz »

CHellwig hat geschrieben:dass beide Zellen rechts davon auf jeweils 3 cm fixiert werden.
Vielleicht lässt sich das durch sowas wie
>{\begin{minipage}[c][3cm][c]{2cm}}m{2xm}<{\end{minipage}}}
realisieren.

Stefan

CHellwig
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Fr 16. Jul 2010, 18:25

Beitrag von CHellwig »

Man kommt der Sache näher, ich hab jetzt folgenden Code:
\documentclass[fontsize=12pt,a4paper,draft]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[macce]{inputenc}
\usepackage{textcomp}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{array}
\usepackage{booktabs}
\title{Untersuchung der Elektroinstallationen}
\author{Christian Hellwig}
\date{\today}

\begin{document}
\maketitle


\begin{tabular} { >\centering m{2cm}  >\centering m{8.2cm}  m{3cm}}
\toprule
Foto-Nr. & Foto &  Beschreibung / Bewertung  \\
\midrule
\multirow{2}*{1} &\multirow{2}{*}{\includegraphics[height=6cm]{Foto_001}} &
 {\begin{minipage}[c][3cm][c]{3cm}}
 Beschreibung 
  {\end{minipage}}\\
\cline{3-3}
& &
 {\begin{minipage}[c][3cm][c]{3cm}}
 Beschreibung 
  {\end{minipage}}\\

\bottomrule
\end{tabular}

\end{document}
Und das Ergebnis ist wieder im Anhang. Leider ist das Bild nicht ganz da wo ich es gerne hätte und die "1" in der linken Spalte ist auch nicht richtig vertikal zentriert... Irgendwie versteh ich nur gerade nicht aus welchem Grund.

Gruß Christian
Dateianhänge
Bildschirmfoto 2010-07-18 um 19.41.00.png
Bildschirmfoto 2010-07-18 um 19.41.00.png (23.29 KiB) 2798 mal betrachtet

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

multirow

Beitrag von Stefan Kottwitz »

multirow hat so seine Egentümlichkeiten. Komplikationslos ist es wohl nur bei einfachen Tabellen einzusetzen, sonst muss man nachbessern. Die 1 würde tiefer rutschen wenn man die Anzahl in \multirow{2}*{1} erhöht.

Man könnte es auch ganz anders angehen, durch Verschachteln, kein Multirow stattdessen zweizeilige/einspaltige Tabellen in der rechten Spalte. Da sich das wiederholen würde, durch Definition eines Makros dafür.

Stefan

Antworten