Verweis auf \equation ändern Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


LeNeLe

Verweis auf \equation ändern

Beitrag von LeNeLe »

Hallo,
Ich habe mir die Nummerierung von chemischen Reaktionsgleichungen in meiner Arbeit selbstdefiniert, da sie unabhängig von mathematischen Gleichungen laufen und in der Form R$_{\thechapter.\selbstdefinierterzähler}$ angezeigt werden soll. Ich verwende das package mhchem. Nun möchte ich über \label / \ref im Text einerseits auf die Reaktion verweisen können, exakt so wie es in der Nummerierung angezeigt wird. Andererseits möchte ich aber auch die zu den Reaktionen gehörigen Konstanten k mit Indices versehen, die der Nummerierung der zugehörigen Reaktion entsprechen. Hier soll das "R" aber nicht vorkommen, der Index soll also die Form {\thechapter.\selbstdefinierterzähler} haben. Hier beiße ich mir die Zähne aus und komme nicht mehr weiter. Kann mir jemand helfen? Danke!!

Hier noch das Minimalbeispiel:
\documentclass{scrbook}

\usepackage[version=4]{mhchem}

\makeatletter
\newcounter{reaction}

\renewcommand\thereaction{\thechapter.\arabic{reaction}}
\@addtoreset{reaction}{chapter}

\newcommand\reactiontag
{\refstepcounter{reaction}\tag{R$_{\thereaction}$}}

\newcommand\reaction[2][]
{\begin{equation}\ce{#2}
\reactiontag\end{equation}}
\makeatother


%--------------------

\begin{document}

\chapter{The first reactions}
\reaction{DMM + OH ->T[$k_{1.1}$] DMM-R + H_2O \label{reac:DMM}}
\reaction{DME + OH ->T[$k_{1.2}$] DME-R + H_2O \label{reac:DME}}

\chapter{The other reaction}
\reaction{DEE + OH ->T[$k_{2.1}$] DEE-R + H_2O \label{reac:DEE}}
Reactions \ref{reac:DMM}, \ref{reac:DME}, and \ref{reac:DEE} are great. $k_{1.1}$, $k_{1.2}$, and $k_{2.1}$ are constants and should be numbered not by hand but automatically.

\end{document}

LeNeLe

Eigene Lösung

Beitrag von LeNeLe »

Hallo, also ich habe das Problem soweit selbst gelöst bekommen. Weiß nicht, ob es sauber programmiert ist, aber es funktioniert immerhin. Ich unterscheide hier zwischen dem Befehl \reaction, der einfach nur eine nach eigenen Ansprüchen formatierte Nummerierung bereit hält und \reactionk, der zusätzlich noch der Befehl \k#1 bereitstellt, mit dem eine Konstante der Form $k_{\thechapter.\thereation}$ an beliebiger Stelle im Text angezeigt werden kann.

\documentclass{scrbook}

\usepackage[version=4]{mhchem}

\makeatletter
\newcounter{reaction}
\@addtoreset{reaction}{chapter}

\newcommand\reaction[1]{%
\refstepcounter{reaction}%
\begin{equation}%
\ce{#1}%
\tag{R$_{\thechapter.\thereaction}$}%
\end{equation}%
}

\newcommand\reactionk[2]{%
\refstepcounter{reaction}%
\newcounter{#1}%
\setcounter{#1}{\thereaction}%
\newcounter{chap#1}%
\setcounter{chap#1}{\thechapter}%
\expandafter\newcommand\csname k#1\endcsname{$k_{\arabic{chap#1}.\arabic{#1}}$}%
\begin{equation}%
\ce{#2}%
\tag{R$_{\thechapter.\thereaction}$}%
\end{equation}%
}


%--------------------

\begin{document}

\chapter{The first reactions}
\label{chap:first}
\reactionk{DMM}{DMM + OH ->T[\kDMM] DMM-R + H_2O \label{reac:DMM}}
\reactionk{DME}{DME + OH ->T[\kDME] DME-R + H_2O\label{reac:DME}}

\chapter{The other reaction}
\reaction{DEE + OH -> DEE-R + H_2O \label{reac:DEE}}
Reactions \ref{reac:DMM}, \ref{reac:DME}, and \ref{reac:DEE} are great. \kDMM\ and \kDME\ are constants and are numbered not by hand but automatically.

\end{document}


Antworten