Problem mit hyperref und shadethm

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Lord Mobi

Problem mit hyperref und shadethm

Beitrag von Lord Mobi »

Hallo :)
Ich habe ein etwas komplizierteres Problem mit der Verwendung von hyberref für die Verlinkung in Kombination mit Theoremen (Sätzen, Definitionen,...), die ich mit der shadethm-Umgebung einbinde.

Zunächst ein paar allgemeine Informationen:
  • Die Dokumentklasse ist scrbook.
  • hyperref wird direkt vor \begin{document} eingebunden
Ich habe das Dokument so eingerichtet, dass ein gemeinsamer Zähler "definitions" über die Sätze, Lemmata, Korollare und Definitionen zählt und jeweils zu Begin eines Chapters zurückgesetzt wird.
Hier liegt anscheinend das Problem. Hyperref weist den shadethm-Umgebungen identifier der Form "definitions.nummer" zu, wobei "nummer" die jeweilige Nummer innerhalb eines Kapitels ist, die natürlich in jedem Kapitel von neuem anfängt. Daraus resultiert das Problem, dass die identifier nicht mehr eindeutig sind, Beispiel:
Ich erzeuge ein Theorem (in diesem Fall eine Definition (Nummer 3.12)) wie folgt:
\begin{defi}[Stichwort]\label{def:3-12}
Hier steht der Inhalt des Theorems
\end{defi}
Das wäre also das 12. Theorem in Kapitel 3.

Ich verweise später auf diese Theoreme dann mittels
\ref{def:3-12}
Die richtige Nummer (also 3.12) wird auch automatisch angezeigt. Nur das Linkziel ist nicht Definition 3.12 sondern das 12. Theorem in Kapitel 1 (dort kam der Identifier definitions.12) als 1. vor.


Hier noch meine Konfiguration des Zählers und der Theoreme:
\newshadetheorem{definitions}{Definition}[chapter]
\newshadetheorem{thms}[definitions]{Satz}
\newshadetheorem{lemma}[definitions]{Lemma}
\newshadetheorem{cors}[definitions]{Korollar}
\newshadetheorem{zuss}[definitions]{Zusammenfassung}
\newshadetheorem{axioms}[definitions]{Axiom}

\newenvironment{satz}[1][]{%
\renewcommand{\labelenumi}{\textbf{\alph{enumi})}}
\renewcommand{\labelenumii}{\textbf{(\roman{enumii})}}
\definecolor{shadethmcolor}{rgb}{.9,.9,.95}%
\definecolor{shaderulecolor}{rgb}{0.0,0.0,0.0}%
\setlength{\shadeboxrule}{1pt}%
\begin{thms}[#1]\hspace*{1mm}%
\vspace*{0.5em}\\\rm
}{\end{thms}}

\newenvironment{defi}[1][]{%
\renewcommand{\labelenumi}{\textbf{\alph{enumi})}}
\renewcommand{\labelenumii}{\textbf{(\roman{enumii})}}
\definecolor{shadethmcolor}{rgb}{.9,.9,.95}%
\definecolor{shaderulecolor}{rgb}{0.0,0.0,0.0}%
\setlength{\shadeboxrule}{1pt}%
\begin{definitions}[#1]\hspace*{1mm}%
\vspace*{0.5em}\\\rm
}{\end{definitions}}

\newenvironment{lem}[1][]{%
\renewcommand{\labelenumi}{\textbf{\alph{enumi})}}
\renewcommand{\labelenumii}{\textbf{(\roman{enumii})}}
\definecolor{shadethmcolor}{rgb}{.9,.9,.95}%
\definecolor{shaderulecolor}{rgb}{0.0,0.0,0.0}%
\setlength{\shadeboxrule}{1pt}%
\begin{lemma}[#1]\hspace*{1mm}%
\vspace*{0.5em}\\\rm
}{\end{lemma}}

\newenvironment{corr}[1][]{%
\renewcommand{\labelenumi}{\textbf{\alph{enumi})}}
\renewcommand{\labelenumii}{\textbf{(\roman{enumii})}}
\definecolor{shadethmcolor}{rgb}{.9,.9,.95}%
\definecolor{shaderulecolor}{rgb}{0.0,0.0,0.0}%
\setlength{\shadeboxrule}{1.5pt}%
\begin{cors}[#1]\hspace*{1mm}%
\vspace*{0.5em}\\\rm
}{\end{cors}}
Ich hoffe, dass ich das Problem verständlich schildern konnte.

Danke schon mal für die Hilfe!