PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bild ragt aus Tabelle



aakaasha
09-05-2008, 13:10
Hallo!

Ich möchte in meine Diss ein Formelverzeichnis aufnehmen. Dazu verwende ich eine Tabelle, in der links die Beschreibung steht und rechts die Strukturformel.

Das eingefügte Bild ragt aber nun über die Tabellenzelle hinaus.

Ich verwende booktabs, tabularx und multicol/row.


\begin{tabularx}{1\linewidth}{Xr}
\multicolumn{2}{l}{\textbf{Bromophenol blue}}\\
\toprule
\ce{C19H10Br4O5S} & \multirow{2}{*}{\includegraphics[scale=0.5]{bromophenolblue}}\\
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol & \\
669.9607 g/mol & \\
\bottomrule
\end{tabularx}

Das ganze sieht dan nso aus wie im Anhang.

Sollte LaTeX nicht die Zelle automatisch vergrößern?

Vielen Dank im Voraus für die Hilfe!

MfG Florian

voss
09-05-2008, 13:41
Ich möchte in meine Diss ein Formelverzeichnis aufnehmen. Dazu verwende ich eine Tabelle, in der links die Beschreibung steht und rechts die Strukturformel.

Das eingefügte Bild ragt aber nun über die Tabellenzelle hinaus.

Ich verwende booktabs, tabularx und multicol/row.

Das ganze sieht dan nso aus wie im Anhang.

Sollte LaTeX nicht die Zelle automatisch vergrößern?


das geht nur, wenn das Paket seine Abbildung auch in eine entsprechende
Box packt, sonst kann LaTeX ja gar nicht wissen, welche Höhe hier
angebracht ist. Du kannst mit \rule[shift]{0pt}{Höhe} vor der Abbildung
eine Höhe erzwingen. Alternativ geht auch eine \parbox mit definierter
Höhe.

Herbert

aakaasha
09-05-2008, 13:54
Gibt es da eine automatische Lösung? Sonst müßte ich bei jeder Abbildung erst einmal die Größe bestimmen und dann den Parameter eintragen.

MfG Florian

aakaasha
09-05-2008, 13:58
Du kannst mit \rule[shift]{0pt}{Höhe} vor der Abbildung
eine Höhe erzwingen.
Herbert

Funktioniert leider nicht. :(


\begin{tabularx}{1\linewidth}{Xr}
\multicolumn{2}{l}{\textbf{Bromophenol blue}}\\
\toprule
\ce{C19H10Br4O5S} & \multirow{2}{*}{\rule{0pt}{27mm}\includegraphics[scale=0.5]{bromophenolblue}}\\
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol & \\
669.9607 g/mol & \\
\bottomrule
\end{tabularx}

Sabrina.Dankers
09-05-2008, 14:20
Hallo,

ich habe festgestellt, dass das mit dem \multirow zu tun hat. Er kann das da anscheinend nicht berechnen. Versuch doch ansonsten deine Tabelle umzustellen und zwar so:



\begin{tabular}{>{\RaggedRight}m{12cm} >{\Centering}m{2cm}}
\multicolumn{2}{m{14cm}}{\textbf{Bromophenol blue}}\\ \toprule
\ce{C19H10Br4O5S}\newline
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol \newline
669.9607 g/mol &\includegraphics[scale=0.5]{bromophenolblue} \\\bottomrule
\end{tabular}


Hab das gerade in einem anderen Zusammenhang gesehen. So sollte es funktionieren. Da benötigst du allerdings die Pakete array und ragged2e

aakaasha
09-05-2008, 14:33
das funktioniert, allerdings ragt dann die ganze tabelle in den margin und das bild zusätzlich noch aus der Tabelle.

Eine nicht ganz so schöne Lösung wäre es auch, einfach ein paar Leerzeilen einzufügen.

MfG Florian

voss
09-05-2008, 14:37
Funktioniert leider nicht. :(


\begin{tabularx}{1\linewidth}{Xr}
\multicolumn{2}{l}{\textbf{Bromophenol blue}}\\
\toprule
\ce{C19H10Br4O5S} & \multirow{2}{*}{\rule{0pt}{27mm}\includegraphics[scale=0.5]{bromophenolblue}}\\
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol & \\
669.9607 g/mol & \\
\bottomrule
\end{tabularx}

mach ein komplettes Beispiel, dann sehe ich es mir genauer an, denn \rule...
funktioniert immer!

Herbert

aakaasha
09-05-2008, 14:44
mach ein komplettes Beispiel,

Ist das nicht ein komplettes Beispiel?


\begin{tabularx}{1\linewidth}{Xr}
\multicolumn{2}{l}{\textbf{Bromophenol blue}}\\
\toprule
\ce{C19H10Br4O5S} & \multirow{2}{*}{\rule{0pt}{27mm}\includegraphics[scale=0.5]{bromophenolblue}}\\
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol & \\
669.9607 g/mol & \\
\bottomrule
\end{tabularx}

ergibt dann so was:

aakaasha
09-05-2008, 14:58
Funktionierendes Beispiel ist angehängt.

MfG Flo

voss
09-05-2008, 16:15
Funktionierendes Beispiel ist angehängt.



\documentclass[a4paper]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[top=3cm, bottom=3cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage{savesym} % solving symbol conflict of pxfonts with mhchem

\usepackage{graphicx}

\usepackage{textcomp} % for text-symbols
\usepackage[textstyle,squaren,mediumqspace]{SIunits} % SI units
\usepackage[version=3]{mhchem} % chemical formula and reactions
\restoresymbol{MHCH}{iint}
\restoresymbol{MHCH}{iiint}
\restoresymbol{MHCH}{iiiint}
\restoresymbol{MHCH}{idotsint}

\usepackage{booktabs} % enhanced tables
\setlength {\heavyrulewidth }{0.08 em}
\setlength {\lightrulewidth }{0.02 em}

\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{>{\scriptsize}m{#1}}

\begin{document}

\begin{tabularx}{\linewidth}{@{} Xc @{}}
\multicolumn{2}{@{}l}{\textbf{Bromophenol blue}}\\\toprule
\ce{C19H10Br4O5S}\newline
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol \newline
669.9607 g/mol
& \raisebox{-0.5\height}{\includegraphics[scale=0.5]{bromophenolblue}}\tabularnewline
\bottomrule
\end{tabularx}

\end{document}


Herbert

Sabrina.Dankers
09-05-2008, 17:09
Hallo noch mal,

das funktioniert. Du musst natürlich die Breitenangaben an deine Seitenränder und an die Breite deines Bildes anpassen. Bei mir funktioniert das so optimal. Aber ich hatte ja dein Bild nicht und hab die Breite deshalb an meines angepasst.

LG Sabrina

aakaasha
13-05-2008, 09:30
Herbert, dein Beispiel funktioniert wunderbar! :D

Gibt es nun auch eine Möglichkeit, den linken Zelleninhalt vertikal unten auszurichten?

MfG Florian

Sabrina.Dankers
13-05-2008, 12:10
Hallo,

ich würde diese Variante empfehlen. Entspricht meiner Meinung nach genau dem was du willst. Da musst du halt nur die Breite für die Spalte mit deinen Bildern festlegen. Und das Paket calc einbinden.



\begin{tabular*}{\linewidth}{>{\RaggedRight \scriptsize}b{\linewidth-4.75cm} >{\Centering}b{4cm}}
\multicolumn{2}{m{14cm}}{\textbf{Bromophenol blue}}\\ \toprule
\ce{C19H10Br4O5S}\newline 2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol \newline
669.9607 g/mol &\includegraphics[scale=0.5]{bromophenolblue} \\\bottomrule
\end{tabular*}

voss
13-05-2008, 12:14
ich würde diese Variante empfehlen. Entspricht meiner Meinung nach genau dem was du willst. Da musst du halt nur die Breite für die Spalte mit deinen Bildern festlegen. Und das Paket calc einbinden.



\begin{tabular*}{\linewidth}{>{\RaggedRight \scriptsize}b{\linewidth-4.75cm}
...
\end{tabular*}


die tabularx-Umgebung ist in jedem Fall der tabular* vorzuziehen!

Herbert

Sabrina.Dankers
13-05-2008, 12:19
Ja,

im Prinzip schon. Aber so klappt das mit der Ausrichtung des Textes nicht. Wenn ich das richtig sehe, dann wird dort als Referenz für die Ausrichtung der Tabularxspalte die Mitte des Bildes genommen und dadurch lässt sich der Text nicht unten am Bild ausrichten. Oder hast du inzwischen eine Lösung gefunden. Zumindest hab ich das so von Florian so verstanden, dass er den Text in der linken Spalte am unteren Bildrand seiner Strukturformeln ausrichten möchte.

voss
13-05-2008, 12:24
Gibt es nun auch eine Möglichkeit, den linken Zelleninhalt vertikal unten auszurichten?


das macht die Sache noch einfacher ...



...
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{>{\scriptsize}b{#1}}

\begin{document}

\begin{tabularx}{\linewidth}{@{} Xc @{}}
\multicolumn{2}{@{}l}{\textbf{Bromophenol blue}}\\\toprule
\ce{C19H10Br4O5S}\newline
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol \newline
669.9607 g/mol
& \includegraphics[scale=0.5]{bromophenolblue}\tabularnewline
\bottomrule
\end{tabularx}
...

Herbert

aakaasha
13-05-2008, 12:38
naja, jetzt ist das bild nicht mehr auf gleicher linie mit dem text, sondern steht höher...

voss
13-05-2008, 12:44
naja, jetzt ist das bild nicht mehr auf gleicher linie mit dem text, sondern steht höher...

dann musst du mir schon mal die Originalgrafik zur Verfügung stellen.
Bei mir als Demo geht es.

HErbert

Grummel ... habe ja die Grafik ...

voss
13-05-2008, 12:55
naja, jetzt ist das bild nicht mehr auf gleicher linie mit dem text, sondern steht höher...

die Grafik hat ja auch unten einen weißen Rand ... also musst du sie "herunterziehen":


\documentclass[a4paper]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[top=3cm, bottom=3cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage{savesym} % solving symbol conflict of pxfonts with mhchem

\usepackage{graphicx}

\usepackage{textcomp} % for text-symbols
\usepackage[textstyle,squaren,mediumqspace]{SIunits} % SI units
\usepackage[version=3]{mhchem} % chemical formula and reactions
\restoresymbol{MHCH}{iint}
\restoresymbol{MHCH}{iiint}
\restoresymbol{MHCH}{iiiint}
\restoresymbol{MHCH}{idotsint}

\usepackage{booktabs} % enhanced tables
\setlength {\heavyrulewidth }{0.08 em}
\setlength {\lightrulewidth }{0.02 em}

\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{>{\scriptsize}b{#1}}

\begin{document}

\begin{tabularx}{\linewidth}{@{} Xc @{}}
\multicolumn{2}{@{}l}{\textbf{Bromophenol blue}}\\\toprule
\ce{C19H10Br4O5S}\newline
2,6-dibromo-4-[3-(3,5-dibromo-4-hydroxyphenyl)-1,1-dioxo-3-benzo[c]oxathiolyl]phenol \newline
669.9607 g/mol
& \raisebox{-1.5mm}{\includegraphics[scale=0.5]{bromophenolblue}}\tabularnewline
\bottomrule
\end{tabularx}

\end{document}

Herbert

aakaasha
13-05-2008, 13:12
Okay, so funktionierts!

Vielen Dank!

Sabrina.Dankers
13-05-2008, 13:39
Hi,

okay so geht es natürlich. Allerdings frage ich mich wieso wird den bei tabularx die Mitte des Bildes als Referenz genommen und bei tabular* nicht? Da brauch ich den ganzen Kram mit der \raisebox dann nicht.

voss
13-05-2008, 13:49
okay so geht es natürlich. Allerdings frage ich mich wieso wird den bei tabularx die Mitte des Bildes als Referenz genommen und bei tabular* nicht? Da brauch ich den ganzen Kram mit der \raisebox dann nicht.

Es ist völlig egal, ob tabular* oder tabularx! Haben beide denselben Spaltentyp, gibt es
dasselbe Ergebnis, bei tabularx wird allerdings der Zelleninhalt automatisch
gestreckt, bei tabular* der Spaltenzwischenraum, weshalb man bei tabular*
eben noch eine Breite angeben muss.

Herbert