Seite 1 von 1

Referenzieren auf mathematische und Reaktionsgleichungen

Verfasst: Mi 27. Okt 2021, 11:36
von Mikkka
Ich schreibe gerade an meiner Masterarbeit, in der ich sowohl mathematische Gleichungen, als auch Reaktionsgleichungen verwende. Mathematischen Gleichungen werden in der Form (1.1) nummeriert, Reaktionsgleichungen in der Form [R 1]. Im Text möchte ich nun mit dem Befehl \autoref auf beide Arten von Gleichungen verweisen. Für mathematische Gleichungen klappt das problemlos, bei dem Verweis auf die Reaktionsgleichungen, gibt Latex jedoch „Gleichung 1“ aus. Damit schon am Text deutlich wird, dass es sich um eine Reaktionsgleichung handelt, suche ich eine Möglichkeit den \autoref Befehl so umzuändern, dass wenn auf ein Label innerhalb einer reaction-Umgebung steht „Reaktion R 1“ ausgegeben wird. Trotz viel suchen, habe ich dazu noch keine Lösung gefunden. Ich hoffe, jemand hier kann mir weiterhelfen.
Anbei ein Minimalbeispiel das mein Problem hoffentlich verdeutlicht:
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{hyperref}
\usepackage{chemmacros}
\chemsetup{modules={all}}
\chemsetup[reactions]{
	before-tag = R \textbf ,
	tag-open = [ ,
	tag-close = ]
	}
\begin{document}
\chapter{Kapitel 1}
\begin{equation}\label{eq:id_Gas}
    p \cdot V = n \cdot R \cdot T
\end{equation}
\begin{reaction}\label{rxn:BSZ}
H2 + 1/2 O2 <=> \water
\end{reaction}
Nun soll auf \autoref{eq:id_Gas} anders verwiesen wird, als auf \autoref{rxn:BSZ}
\end{document}

Re: Refernzieren auf mathematische und Reaktionsgleichungen

Verfasst: Mi 27. Okt 2021, 11:52
von gast.

Das Problem ist, dass für hyperref beides equations sind. Du kannst aber cleveref (sollte ausnahmsweise irgendwo nach hyperref geladen werden) laden und \cref verwenden. Warum dabei nur die Nummer als Hyperlink markiert wird, ist der cleveref-Anleitung zu entnehmen.


Re: Refernzieren auf mathematische und Reaktionsgleichungen

Verfasst: So 12. Dez 2021, 23:46
von Mikkka
Hallo!

Ich habe jetzt für die Reaktionsgleichung cleveref verwendet. Vielen Dank für den Tipp! Damit bin ich meiner gewünschten Ausgabe deutlich näher gekommen. Die Textausgabe passt soweit, ich hätte jedoch auch gern, dass auch der Text "Reaktion R" mit dem Hyperlink zur Gleichung hinterlegt ist und nicht ausschließlich die Nummer. Nachdem ich ein bisschen rumgegoogelt habe, denke ich, dass der Befehl \crefname{Objekt}{Singularbezeichnung}{Pluralbezeichnung} in der folgenden Art die gewünschte Wirkung erzielen müsste:
\crefname{reactions}{Reaktion~R~}{Reaktionen~R~}
Allerdings scheint reactions kein vordefiniertes Objekt in cleveref zu sein, weshalb ich das Problem noch nicht lösen konnte. Welche andere Möglichkeit habe ich noch, um über \cref auch die Verlinkung über den Text zu ermöglichen?

Mein bearbeitetes Minimalbeispiel habe ich nochmal angefügt.
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}
\chemsetup{modules={all}}
\chemsetup[reactions]{
	before-tag = R \textbf ,
	tag-open = [ ,
	tag-close = ]
	}
\usepackage{hyperref}
\usepackage[ngerman,nameinlink,noabbrev]{cleveref}
\crefname{reactions}{Reaktion~R~}{Reaktionen~R~}
\newcommand{\rxnref}[1]{\text{Reaktion R }\ref{#1}}

\begin{document}
\chapter{Kapitel 1}
\begin{equation}\label{eq:id_Gas}
    p \cdot V = n \cdot R \cdot T
\end{equation}
\begin{reaction}\label{rxn:BSZ}
H2 + 1/2 O2 <=> \water
\end{reaction}
Nun soll auf \autoref{eq:id_Gas} anders verwiesen wird, als auf \rxnref{rxn:BSZ}
\end{document}

Verfasst: Mo 13. Dez 2021, 00:07
von Gast.

Re: Refernzieren auf mathematische und Reaktionsgleichungen

Verfasst: Mo 13. Dez 2021, 09:29
von gast.
Die Umgebung heißt reaction, also muss man für cleveref ggf.:
\crefname{reaction}{Reaktion~R~}{Reaktionen~R~}
verwenden. Und natürlich muss man dann beispielsweise mit \cref statt \ref oder \autoref referenzieren. Aber das sollte nach Lesen der cleveref-Anleitung ja bereits klar sein.

Lies aber unbedingt auch den zweiten Absatz in Abschnitt 7.2 der cleveref-Anleitung.

Re: Referenzieren auf mathematische und Reaktionsgleichungen

Verfasst: Di 15. Feb 2022, 18:44
von cgnieder
Seit chemmacros v6.1 funktionieren Reaktionen mit \autoref und \cref von selbst zusammen und können wie Gleichungen auch entsprechend angepasst werden:
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}
\chemsetup[reactions]{
  before-tag = R \textbf ,
  tag-open = [ ,
  tag-close = ]
}
\usepackage{hyperref}
\usepackage[ngerman,nameinlink,noabbrev]{cleveref}

\crefname{reaction}{Reaktion~R}{Reaktionen~R}
\renewcommand\reactionautorefname{Reaktion~R}

\begin{document}
\chapter{Kapitel 1}
\begin{equation}\label{eq:id_Gas}
  p \cdot V = n \cdot R \cdot T
\end{equation}
\begin{reaction}\label{rxn:BSZ}
  H2 + 1/2 O2 <=> \water
\end{reaction}

Nun soll auf \autoref{eq:id_Gas} anders verwiesen wird, als auf \autoref{rxn:BSZ}

Nun soll auf \cref{eq:id_Gas} anders verwiesen wird, als auf \cref{rxn:BSZ}

\end{document}
test.png