Seite 1 von 1
Vert. und hor. Ausrichten in Tabellenzellen
Verfasst: Di 2. Apr 2013, 16:51
von VladTepes
Hallo Leute,
sitze schon seit 2h an einem Problem mit Tabellen
Bin jetzt schon soweit dass mir nur noch eine Eigenschaft fehlt.
Ich habe eine Tabelle mit 3 Spalten und 4 Zeilen. In der ersten Spalte befinden sich Tabellen und in der 2. und 3. Bilder.
Wie kann nun ich die Tabellen vertikal oben anordnen ? Und die Bilder vertikal und horizontal mittig.
Habe schon gelesen vertikal ausrichten sollte mit der Tabelleneingenschaft p{breite} gehen. Und m{breite} für vertikal mittig.
Aber das funktioniert irgendwie nicht
Hat jemand eine Idee ?
Bin für jeden Tipp dankbar !!
Grüße
Vlad
Hier das Minimalbeispiel:
\documentclass[oneside]{scrreprt}
\usepackage[demo]{graphicx}
\usepackage{tabularx}
\usepackage[latin1]{inputenc}
\usepackage{array}
\begin{document}
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{table}[htb!]
\begin{tabularx}{\textwidth}{|p{5cm}|m{4cm}|X|}
\hline
% 1. Spalte
\begin{tabular}{p{2cm}p{3cm}}
Nummer & 1 \\
Standort & linker \linebreak Seitenspiegel \\
Richtfaktor in dBi & 15
\end{tabular}
&
% 2. Spalte
\includegraphics[width=4cm , height = 5cm]{}
&
% 3. Spalte
\includegraphics[width=4cm, height = 5cm]{}
\\
\hline
\end{tabularx}
\end{table}
\end{document}
Verfasst: Di 2. Apr 2013, 17:45
von u_fischer
"Ausrichten" bezieht sich meist auf eine Grundlinie - und die ist bei einem Bild nun mal unten. Wenn du oberhalb des Bildes ausrichten willst, musst du entweder das Bild unter die Grundlinie verschieben (mit \raisebox) oder darüber eine (leere) Zeile einfügen. Ich würde auch die X-Spalte dem Text zuordnen und nicht dem Bild. Und weniger Striche benutzen. Du malst doch kein Gefängnis.
\documentclass[oneside]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[demo]{graphicx}
\usepackage{array,tabularx}
\begin{document}
\extrarowheight=5pt
\begin{tabularx}{\textwidth}{>{\raggedright}X
>{\centering\vspace{-\ht\strutbox}}p{5cm}
>{\centering\vspace{-\ht\strutbox}}p{5cm}}
\hline
Nummer: Info 1 \\
Breite: Info 2 \\
Höhe: Info 3
&
\includegraphics[width=4cm , height = 3cm]{tiger}
&
\includegraphics[width=4cm, height = 3cm]{tiger}
\tabularnewline
\hline
Nummer: Info 1 \\
Breite: Info 2 \\
Höhe: Info 3
&
\includegraphics[width=4cm , height = 3cm]{tiger}
&
\includegraphics[width=4cm, height = 3cm]{tiger}
\tabularnewline
\hline
\end{tabularx}
\end{document}
Verfasst: Di 2. Apr 2013, 19:21
von VladTepes
Danke für die schnelle und hilfreiche Antwort.
Diesen Trick mit den genauen Optionen in den Tabelleneigenschaften mit \raggedright habe ich voher nirgendwo gesehen. Also danke dafür!
Jetzt gibt es noch ein kleines Problem mit dem Text:
Die Informationen (Info1 Info2 und Info3) sollten genau übereinander sein. Also so wie in einer Tabelle.
Also habe ich das versucht mit einer Tabelle zu machen. Dann wird aber die Tabellenzeile die die kleine Tabelle beinhaltet automatisch größer (vertikal) und die Bilder sind nicht mehr vertikal zentriert.
Kann man das irgendwie beheben ? Oder gibt es einen anderen Ansatz die Infos alle übereinander anzuzeigen.
Ich hab den Code mal editiert, das ist vielleicht anschaulicher. Einfach kompilieren dann sieht man es direkt.
\documentclass[oneside]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[demo]{graphicx}
\usepackage{array,tabularx}
\begin{document}
\extrarowheight=5pt
\begin{tabularx}{\textwidth}{>{\raggedright}X
>{\centering\vspace{-\ht\strutbox}}p{4cm}
>{\centering\vspace{-\ht\strutbox}}p{4cm}}
\hline
Nummer: Info 1 \\
Breite: Info 2 \\
Höhe: Info 3
&
\includegraphics[width=4cm , height = 3cm]{tiger}
&
\includegraphics[width=4cm, height = 3cm]{tiger}
\tabularnewline
\hline
\begin{tabular}{p{2cm}p{3cm}}
Nummer & 1 \\
Standort & linker \linebreak Seitenspiegel \\
Richtfaktor in dBi & 15
\end{tabular}
&
\includegraphics[width=4cm , height = 3cm]{tiger}
&
\includegraphics[width=4cm, height = 3cm]{tiger}
\tabularnewline
\hline
\end{tabularx}
\end{document}
Verfasst: Do 4. Apr 2013, 08:54
von VladTepes
Weiß denn wirklich niemand eine Lösung ?

Verfasst: Do 4. Apr 2013, 09:03
von Epllus
Hätte nicht gedacht, dass das funktioniert …
\documentclass[oneside]{scrreprt}
\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[demo]{graphicx}
\usepackage{array,tabularx,multirow}
\begin{document}
\extrarowheight=5pt
\begin{tabularx}{\textwidth}{>{\raggedright}X
>{\centering\vspace{-\ht\strutbox}}p{4cm}
>{\centering\vspace{-\ht\strutbox}}p{4cm}}
\hline
multirowNummer: Info 1 \\
Breite: Info 2 \\
Höhe: Info 3
&
\includegraphics[width=4cm , height = 3cm]{tiger}
&
\includegraphics[width=4cm, height = 3cm]{tiger}
\tabularnewline
\hline
\multirow{1}{*}{\begin{tabular}{p{2cm}p{3cm}}
Nummer & 1 \\
Standort & linker \linebreak Seitenspiegel \\
Richtfaktor in dBi & 15
\end{tabular} }
&
\includegraphics[width=4cm , height = 3cm]{tiger}
&
\includegraphics[width=4cm, height = 3cm]{tiger}
\tabularnewline
\hline
\end{tabularx}
\end{document}
Hoffe es hilft
Epllus
Verfasst: Do 4. Apr 2013, 09:42
von u_fischer
Die Defaultgrundlinie einer Tabelle ist in der Mitte. Du musst bei der inneren Tabelle also das optionale Argument benutzen, damit ihre Grundlinie dort ist, wo du sie haben willst:
\begin{tabular}{p{2cm}p{3cm}}
Verfasst: Do 4. Apr 2013, 12:11
von VladTepes
@ Epllus: Super! Vielen Dank so funktioniert es!
@ u_fischer: Das hat funktioniert! Vielen vielen Dank! Auch für die Erklärung ! Damit weiß ich in Zukunft Bescheid!