Naja, zumindest mir hätte ein Beispiel von dem Code, den Du jetzt schon für reaction hast, geholfen, besser in die Sache reinzukommen. Schließlich hast Du ja schon gewisse Anpassungen durchgeführt, die ich jetzt selbst nachbauen musste. Bei TeX.SE schreibe ich immer, dass ein Beispiel nicht nur sicherstellt, dass alle wirklich über dasselbe reden, und daher schon sinnvoll ist, sondern auch, dass es ein Zeichen der Höflichkeit ist. Die Fragestellerin zeigt damit, dass sie die Zeit der Helferinnen nicht dadurch geringschätzt, dass sie sie zunächst reproduzieren lässt, was bei der schon längst fertig vorhanden ist. In diesem Fall hätte ich wohl nicht nach einem
Minimalbeispiel gefragt, ein paar Minuten Arbeit hätte es mir aber schon erspart.
Nun gut, wie dem auch sei. Es scheint mir so, als gäbe es kein Interface, um einfach so eine neue Umgebung mit eigenem, neuen Zähler zu erstellen.
Daher habe ich einigen internen Code von chemmacros kopieren und leicht anpassen müssen. Eventuell wäre das also etwas für ein Feature-Request, wenn Du das häufiger benötigst.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{chemmacros}
\usepackage{amsmath}
\usepackage{cleveref}
\chemsetup{modules=reactions}
\chemsetup[reactions]{
before-tag = R\space,
tag-open = [ ,
tag-close = ]
}
\newtagform{cell}[Z ]{[}{]}
% alles aus dem chemmacros-Modul `reactions' geklaut
% und reaction mit cell ersetzt
\makeatletter
\ExplSyntaxOn
\newcounter {chemmacros_save_cell}
\newcounter {cell}
\cs_new_protected:Npn \__chemmacros_begin_cell:
{
\patchcmd \thecell {cell} {equation} {} {}
\cs_set_eq:NN \theequation \thecell
\cs_set_eq:NN \r@equation \r@cell
\cs_set_eq:NN \p@equation \p@cell
\cs_set:Npn \theHequation { C . \theHsection . \theequation }
\setcounter {chemmacros_save_cell} { \value {equation} }
\setcounter {equation} { \value {cell} }
\chemmacros_if_package_loaded:nT {cleveref}
{ \crefalias {equation} {cell} }
\usetagform {cell}
}
\cs_new_protected:Npn \__chemmacros_end_cell:
{
\setcounter {cell} { \value {equation} }
\setcounter {equation} { \value {chemmacros_save_cell} }
}
\tl_new:N \l__chemmacros_cells_args_tl
\cs_new_protected:Npn \__chemmacros_cells_build_args:n #1
{ \tl_put_right:Nn \l__chemmacros_cells_args_tl { {## #1} } }
\cs_new_protected:Npn \chemmacros_define_cell:nnn #1#2#3
{
\int_compare:nNnT {#3+0} > {0}
{
\tl_clear:N \l__chemmacros_cells_args_tl
\int_step_function:nnnN {2} {1} {#3+1} \__chemmacros_cells_build_args:n
}
\chemmacros_declare_cell_env:nnnV {#1} {#2} {#3} \l__chemmacros_cells_args_tl
}
% #1: chem
% #2: math
% #3: args number
% #4: argument list ({#2}{#3}...)
\cs_new_protected:Npn \chemmacros_declare_cell_env:nnnn #1#2#3#4
{
\exp_args:Nnx \DeclareDocumentEnvironment {#1} { O{} \prg_replicate:nn {#3+0} {m} }
{
% \chemmacros_add_reaction_description:n {##1}
\__chemmacros_begin_cell:
\chemmacros_reaction_read:nnw {#2} {#4}
}
{
\__chemmacros_end_cell:
\ignorespacesafterend
}
}
\cs_generate_variant:Nn \chemmacros_declare_cell_env:nnnn {nnnV}
\NewChemMacroset* {Cell} {mO{}m}
{ \chemmacros_define_cell:nnn {#1} {#3} {#2} }
\ExplSyntaxOff
\makeatother
\NewChemCell {cell} {equation}
\NewChemCell {cell*} {equation*}
\NewChemCell {cells} {align}
\NewChemCell {cells*} {align*}
\ChemCleverefSupport{cell}{Zelle}{Zellen}%??
\creflabelformat{cell}{#2[#1]#3}
\begin{document}
\begin{reaction}
A+B<=>C+D\label{r}
\end{reaction}
\begin{cell}
A|B||C|D\label{c}
\end{cell}
\cref{r} and \cref{c}
\ref{r} and \ref{c}
\begin{reaction}
A+B<=>C+D
\end{reaction}
\begin{cell}
A|B||C|D
\end{cell}
\begin{cell}
A|B||C|D
\end{cell}
\begin{cell}
A|B||C|D
\end{cell}
\begin{reaction}
A+B<=>C+D
\end{reaction}
\begin{cell}
A|B||C|D
\end{cell}
\end{document}