PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nummerierung von Abbildungen ähnlich wie bei Formeln in equation-Umgebung



Kamelot
15-02-2010, 15:49
Hallo,

Ich möchte einen Teil der Abbildungen in einem Text so nummerieren wie das automatisch in der equation Umgebung geschieht. Es handelt sich um komplexe chemische Reaktionsgleichungen, die sich (für mich) nicht sinnvoll mit den diversen Chemie-Paketen setzen lassen. Daher bleibt mir nur ein anderer Weg. Ich habe gedacht, dass ich das Problem vielleicht mit dem floatrow-Paket lösen kann, indem ich dort einen eigenen neuen counter als caption(ohne Bezeichner und Nummerierung) zentriert neben der Abbildung in einer eigenen float-Umgebung ausgeben lasse. Leider bleibe ich ständig stecken. Die Dokumentation[ctan.tug.org] (http://ctan.tug.org/tex-archive/macros/latex/contrib/floatrow/floatrow.pdf) hat mich zwar weitergebracht, aber hier komme ich einfach nicht weiter.



\documentclass[a4paper,10pt]{article}
\usepackage{graphicx}
\usepackage{floatrow}
\newfloat{RGfloat}{h}{rgn}[section]
\newcounter{bob}

\begin{document}
\setcounter{bob}{5}
\begin{RGfloat}
\floatbox[{\capbeside \captionsetup[capbesidefloat]{labelsep=none}%
\thisfloatsetup{capposition=beside,capbesidepositi on={right,center},floatwidth=10cm}}]
{RGfloat}[][][]{\caption\thebob}{\rule{1cm}{2cm}}
\end{RGfloat}
\end{document}

In dieser Form bekomme ich immer einen Bezeichner (in diesem Bsp. RGfloat) und die entsprechende Nummerierung in die caption. Lasse ich den Bezeichner in der entsprechenden Klammer weg, bekomme ich haufenweise Fehler. Eine Möglichkeit die Nummerierung zu beeinflussen ist hier, für RGfloat statt [section], [bob] zu benutzen, ich habe dann aber immernoch den Bezeichner.
So wie ich die Dokumentation verstehe, müsste außerdem {\caption\thebob} überflüssig sein und es sollte stattdessen {\thebob} ausreichen. Das funktioniert dann aber nicht, ich bekomme dann keine caption.

Vielen Dank für eure Hilfe

Legion
15-02-2010, 18:07
Hast du das Paket mchem ausprobiert? Aus selbigem stammt dieses:


\makeatletter
\newcommand\reaction@[1]{\begin{equation}\ce{#1}\end{equation}}
\newcommand\reaction@nonumber[1]%
{\begin{equation*}\ce{#1}\end{equation*}}
\newcommand\reaction{\@ifstar{\reaction@nonumber}{ \reaction@}}
\makeatother

und dann zum Beispiel:


\reaction{CO2 + C}
\reaction*{CO2 + C}
liefert:

CO2 + C (0.1)
CO2 + C

Kamelot
15-02-2010, 18:48
Das ist für meine Zwecke leider ungeeignet. Auch mit dem ochem oder xymtex Paket zu arbeiten ist unverhältnismäßig viel Arbeit. Die Reaktionsgleichungen beinhalten viele große Moleküle die in enstsprechenden Programmen gezeichnet werden und dann leider nur als Bilder zur Verfügung stehen.

Legion
15-02-2010, 20:30
Ach ... ich hatte das Titelthema nur überflogen und dabei das "Abbildungen" übersehen :o

localghost
15-02-2010, 20:38
Der Titel ist etwas irreführend. Er suggeriert, dass die Nummerierung wie bei Formeln rechts in Klammern erfolgen soll. Wenn es dir aber darum geht, eine eigene Gleitumgebung zu haben, in die Du die Reaktionsschemata als Bilder einfügen kannst, dann solltest Du dir caption (http://ctan.org/pkg/caption) oder chemscheme (http://ctan.org/pkd/chemscheme) anschauen.


MfG
Thorsten¹

Kamelot
15-02-2010, 21:04
Ich möchte in der Tat, eine Nummer für jede Reaktionsgleichung. Die Reaktionsgleichungen kommen aber als Bilder daher.


A + B --> C (Zahl)
blabla Text blabla
X + Y --> Z (Zahl+1)

Ob das nun "(Zahl)", "Zahl" oder "[Zahl]" ist, ist mir erstmal egal. Das ich oben eine Gleitumgebung bemüht habe, rührt nur daher, dass ich keine andere (leichtere) Möglichkeit gefunden habe.

Ich sehe nicht, wie caption das Problem lösen soll? Das caption Paket kontrolliert das Aussehen und nicht die Position der caption. Also muss ich, wenn dieser Weg denn irgendwie zum Ziel führt, mit floatrow die caption verschieben.

Das chemscheme Paket ist zwar interessant aber ich finde dort keinerlei Möglichkeit der equation-ähnlichen-Nummerierung.

Legion
15-02-2010, 21:06
... oder ein bisschen tricksen.

Nimm eine zweispaltige Tabelle. Links kommt das Bild mittels \includegraphics rein (Paket graphicx nicht vergessen) und rechts erzeugst du eine leere equation-Umgebung (in einer b{}-Spalte -> array-Paket). Wenn du keine anderen Formeln hast die den Zähler beeinflussen, sollte das klappen.

localghost
15-02-2010, 21:12
[...] Ich sehe nicht, wie caption das Problem lösen soll? Das caption Paket kontrolliert das Aussehen und nicht die Position der caption. Also muss ich, wenn dieser Weg denn irgendwie zum Ziel führt, mit floatrow die caption verschieben.

Das chemscheme Paket ist zwar interessant aber ich finde dort keinerlei Möglichkeit der equation-ähnlichen-Nummerierung.
Wenn ich das richtig sehe, ist floatrow (http://ctan.org/pkg/floatrow) dann aber auch der falsche Weg.

bobmalaria
15-02-2010, 21:41
hi,

das könnte gehen


\documentclass{article}

\usepackage{floatrow}
\usepackage{caption}
\DeclareNewFloatType{reaction}{placement=H,within= section,fileext=rea}
\newfloatcommand{rcapside}{reaction}[\capbeside]
\floatsetup[reaction]{capbesideposition={right,center}}
\captionsetup[reaction]{name={}}
\begin{document}

\section{Some section}

\begin{reaction}
\rcapside{\caption{}}
{\rule{50pt}{50pt}}
\end{reaction}
another one
\begin{reaction}
\rcapside{\caption{}}
{\rule{50pt}{50pt}}
\end{reaction}
\end{document}

voss
15-02-2010, 22:39
Ich möchte in der Tat, eine Nummer für jede Reaktionsgleichung. Die Reaktionsgleichungen kommen aber als Bilder daher.


A + B --> C (Zahl)
blabla Text blabla
X + Y --> Z (Zahl+1)

Ob das nun "(Zahl)", "Zahl" oder "[Zahl]" ist, ist mir erstmal egal. Das ich oben eine Gleitumgebung bemüht habe, rührt nur daher, dass ich keine andere (leichtere) Möglichkeit gefunden habe.

Ich sehe nicht, wie caption das Problem lösen soll? Das caption Paket kontrolliert das Aussehen und nicht die Position der caption. Also muss ich, wenn dieser Weg denn irgendwie zum Ziel führt, mit floatrow die caption verschieben.

Das chemscheme Paket ist zwar interessant aber ich finde dort keinerlei Möglichkeit der equation-ähnlichen-Nummerierung.


\documentclass[a4paper,10pt]{article}
\newcounter{bob}
\renewcommand\thebob{\thesection: \arabic{bob}}
\newsavebox\TBox
\newenvironment{bsp}
{\noindent\refstepcounter{bob}%
\begin{lrbox}{\TBox}}
{\end{lrbox}\hfill\raisebox{-0.5\height}{\usebox{\TBox}}\hfill\llap\thebob}
\setcounter{bob}{5}

\begin{document}

\section{foo}
\begin{bsp}
\rule{2cm}{1cm}
\end{bsp}

bar

\begin{bsp}
\rule{2cm}{1cm}
\end{bsp}
\end{document}


Herbert

Kamelot
15-02-2010, 22:52
localghost:
Das kann gut möglich sein. Das ist das einzige, was ich gefunden hab, das zumindest im Prinzip erfolgversprechend ist. Oft ist es ja so, das man nur nicht das richtige Paket für sein Problem kennt.

bobmalaria:
Ja, das funktioniert, (zumindest wenn ich "name={}" weglasse, sonst sagt TeXnicCenter bei mir "Package caption error: name undefined") hat aber auch wieder den Bezeichner(hier reaction, sonst z.B. figure, tabular) in der caption. Gibt es eine Möglichkeit den Bezeichner nicht auszugeben?

Vielen Dank für euer aller Hilfe.

PS: Fenster war zu lange offen habe die Antwort von Voss nicht mitbekommen, probiere das gerade aus.

PPS: Voss:
Vielen Dank, das funktioniert wunderbar. Jetz habe ich erstmal ein bisschen zu lesen um das nachzuvollziehen.

bobmalaria
15-02-2010, 23:10
hi,

name geht wenn du das caption paket lädst und wenn du es halbwegs aktuell hast. mein code hat den vorteil das du auch eine \listofreaction ausgeben kannst.

gruss

Kamelot
17-02-2010, 13:19
bobmalaria:
Ja du hattest recht, mit einem aktuellen caption Paket funktioniert deine Lösung. Meins war schon etwas angegraut.
Eine Liste ist in meinem Fall zwar nicht nötig, aber dennoch gut zu wissen, Danke.