Referenzieren auf mathematische und Reaktionsgleichungen Thema ist als GELÖST markiert

Formelsatz für Mathematik, Naturwissenschaften und Technik


Mikkka
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 27. Okt 2021, 11:28

Referenzieren auf mathematische und Reaktionsgleichungen

Beitrag 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}

gast.

Re: Refernzieren auf mathematische und Reaktionsgleichungen

Beitrag 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.


Mikkka
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 27. Okt 2021, 11:28

Re: Refernzieren auf mathematische und Reaktionsgleichungen

Beitrag 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}
Zuletzt geändert von Mikkka am Mo 13. Dez 2021, 09:14, insgesamt 3-mal geändert.


gast.

Re: Refernzieren auf mathematische und Reaktionsgleichungen

Beitrag 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.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Re: Referenzieren auf mathematische und Reaktionsgleichungen

Beitrag 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
Clemens
Paketauthor

Antworten