Vert. und hor. Ausrichten in Tabellenzellen

Tabellen und Grafiken erstellen und anordnen


VladTepes
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: Di 12. Mär 2013, 14:20

Vert. und hor. Ausrichten in Tabellenzellen

Beitrag 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 ? :idea:
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}
_Latex Newbie_
Ubuntu 12.04
TeX Live 2012
TexMaker 3.52

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag 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}

VladTepes
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: Di 12. Mär 2013, 14:20

Beitrag 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}
_Latex Newbie_
Ubuntu 12.04
TeX Live 2012
TexMaker 3.52

VladTepes
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: Di 12. Mär 2013, 14:20

Beitrag von VladTepes »

Weiß denn wirklich niemand eine Lösung ? :?:
_Latex Newbie_
Ubuntu 12.04
TeX Live 2012
TexMaker 3.52

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag 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

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag 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}}

VladTepes
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: Di 12. Mär 2013, 14:20

Beitrag 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!
_Latex Newbie_
Ubuntu 12.04
TeX Live 2012
TexMaker 3.52

Antworten