Hyperref verlinkt teilweise auf falsche Kapitel Thema ist als GELÖST markiert

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Nicolas.jfB
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 3. Feb 2023, 09:23

Hyperref verlinkt teilweise auf falsche Kapitel

Beitrag von Nicolas.jfB »

Ich arbeite gerade an meiner Masterthesis, welche vor und auch nach dem Inhalt diverse Verzeichnisse enthält, welche ich römisch nummeriert habe (sowohl Kapitelnummer als auch Seitenzahl). Dabei war mir wichtig, dass das Literaturverzeichnis und der Anhang am Ende der Thesis die römischen Nummerierungen aus der Einleitung fortführt, was ich durch die Befehle \pagenumbering, \setcounter etc. umgesetzt habe, (s. Beispiel).
Zur Vereinfachung der Kapitelzugänglichkeit habe ich des Weiteren hyperref verwendet. Wenn ich nun jedoch im Inhaltsverzeichnis auf die einzelnen Kapitel klicke, lande ich bei manchen an einer falschen Stelle. Folgendes Muster ergibt sich:

I. Abbildungsverzeichnis + II. Tabellenverzeichnis + III. Abkürzungsverzeichnis: Verlinkung passt

1. Einführung --> I. Abbildungsverzeichnis: falsch

2. Hauptteil 1 --> II. Tabellenverzeichnis: falsch

3. Hauptteil 2 --> III. Abkürzungsverzeichnis: falsch

4. Schlussbetrachtung --> Verlinkung passt wieder

IV. Literaturverzeichnis --> 4. Schlussbetrachtung: falsch

Anhang passt wieder.

Ich gehe davon aus, dass dies mit meiner wechselnden Kapitelnummerierung und den gesetzten Countern zu tun hat. Leider konnte ich bisher nicht herausfinden, wie ich das Problem umgehen und gleichzeitig meine Kapitelnummerierung so beibehalten kann. Eventuell kann mir hier jemand weiterhelfen? Dafür wäre ich Euch sehr dankbar!

Viele Grüße Nicolas

Die bib.Datei habe ich angehängt, damit das Literaturverzeichnis erzeugt werden kann.

\documentclass[12pt,listof=totocnumbered,bibliography=totocnumbered,chapterprefix,parskip=full]{scrreprt}
\usepackage[a4paper,left=30mm,right=25mm,top=20mm,bottom=20mm,includeheadfoot]{geometry}

\usepackage[utf8]{inputenc}

\usepackage[ngerman]{babel}

% Kopf- und Fußzeilen:

\usepackage[automark,						
		headsepline,				
		footsepline,				
		plainfootsepline]{scrlayer-scrpage}
\pagestyle{scrheadings}
\clearpairofpagestyles

\ihead{\headmark} %Kopfzeile innen
\ofoot[\pagemark]{\pagemark} %Fußzeile außen

% sonstiges:

\usepackage{microtype} 

\usepackage{blindtext} 

\usepackage[printonlyused]{acronym} 

\usepackage[backend=biber]{biblatex}
\addbibresource{Literatur.bib} 
\urlstyle{same}
\setcounter{biburlnumpenalty}{9000}

\usepackage[hidelinks]{hyperref} 

%-------------------------------------
% Verzeichnisse römisch nummerieren und Anzeige im Inhaltsverzeichnis:
\newcommand{\chapternumbering}[1]{%
  \setcounter{chapter}{0}%
   \renewcommand{\thechapter}{\csname #1\endcsname{chapter}}}
   
%-----------------------------------------------------------------------------------------------------------------

\begin{document}

%-------------------------------------
\pagenumbering{Roman} %stellt Seitenzählung auf römisch um
%-------------------------------------
\chapternumbering{Roman} %stellt Kapitelnummerierung auf römisch um
%-------------------------------------

\chapter*{Kurzreferat}

\blindtext

\blindtext

\chapter*{Versicherung an Eides Statt}

\blindtext[2]

\chapter*{Vorwort}

\blindtext[2]

\tableofcontents

\listoffigures

\listoftables

\chapter{Abkürzungsverzeichnis}	
	
%-------------------------------------
\newcounter{Seiten} %neuen Zähler für Seitenzahlen erstellen
\setcounter{Seiten}{\value{page}} %aktuelle Seitenzahl speichern
%-------------------------------------
\newcounter{Kapitel} %neuen Zähler für Kapitel erstellen
\setcounter{Kapitel}{\value{chapter}} %aktuelle Kapitelnummer speichern
%-------------------------------------

\clearpage

%----------------------------------------------------------------------------------------------------------
\pagenumbering{arabic} %Seitennummerierung auf arabisch umstellen und bei 1 beginnen
%-------------------------------------
\chapternumbering{arabic} %Kapitelnummerierung auf arabisch umstellen
%-------------------------------------

\chapter{Einführung}
\blindtext
\section{Abschnitt 1}
\blindtext[5]
\section{Abschnitt 2}
\blindtext[5]

\chapter{Hauptteil 1}
\label{chptr_ht1}
\section{Abschnitt 1}
\blindtext[3]
Es folgen einige Quellen, bspw. \cite{Campanile.2005}, oder \cite{Hering_Sensoren_in_WuT.2018}. Wichtig ist auch \cite{Teuffel.2004}.
\section{Abschnitt 2}
\blindtext[3]

\chapter{Hauptteil 2}
\label{chptr_ht2}
\blindtext
\section{Abschnitt 1}
\blindtext[5]
\section{Abschnitt 2}
\blindtext[5]
	
\chapter{Schlussbetrachtung}
\label{chptr_schluss}
\blindtext[5]
	
\clearpage
	
%----------------------------------------------------------------------------------------------------------
\pagenumbering{Roman} %Seitenzählung auf römisch umstellen
\setcounter{page}{\value{Seiten}} %Seitenzahl auf vorhergehenden Wert stellen
\addtocounter{page}{1} %Seitenzahl um 1 erhöhen
%-------------------------------------
\chapternumbering{Roman} % analog für Kapitel
\setcounter{chapter}{\value{Kapitel}}
%-------------------------------------

\printbibliography[title = {Literaturverzeichnis}]

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

\clearpage

\addpart{Anhang}
\appendix

\chapter{Anhang A}
\label{appx1}

\blindtext[5]

\chapter{Anhang B}
\label{appx2}

\blindtext[5]
	
\end{document}

Dateianhänge
Literatur.bib
(8.1 KiB) 71-mal heruntergeladen

ich meine ja nur

Re: Hyperref verlinkt teilweise auf falsche Kapitel

Beitrag von ich meine ja nur »

Ich kann zwar keine Links sehen, aber es sei darauf hingewiesen, dass hyperref für die Link-Anker nicht \thechapter etc. sondern \theHchapter etc. verwendet. Also musst du ggf. diese zusätzlich umdefinieren, damit sie eindeutig werden. hyperref macht das beispielsweise für \appendix ebenfalls. Einfach einmal in den Code hyperref.sty schauen.

Nicolas.jfB
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 3. Feb 2023, 09:23

Re: Hyperref verlinkt teilweise auf falsche Kapitel

Beitrag von Nicolas.jfB »

Danke dir schonmal für deine Antwort, dort werde ich auf jeden Fall mal reinschauen.
Gibt es denn einen einfach Trick, die Verlinkungen für einzelne Kapitel abzustellen? Zur Not denke ich dass es besser ist, wenn gar nicht auf diese Kapitel verlinkt wird, bevor falsch verlinkt wird.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Hyperref verlinkt teilweise auf falsche Kapitel

Beitrag von u_fischer »

Nicolas.jfB hat geschrieben:
Sa 4. Feb 2023, 08:04
Danke dir schonmal für deine Antwort, dort werde ich auf jeden Fall mal reinschauen.
Ich würde den Hinweis auf den Code von hyperref nicht zu ernst nehmen. Ich maintaine das Ding: das sind (mit den Treibern) an die 10000 Zeilen Code (und über 25000 Quellcode) und kein normaler Nutzer sollte sich damit rumschlagen müssen.
Gibt es denn einen einfach Trick, die Verlinkungen für einzelne Kapitel abzustellen?
Du musst nicht abstellen. Eine einfach Methode ist
\usepackage[hidelinks,hypertexnames=false]{hyperref} 
Dann werden die Anker einfach durchnummeriert.

ich meine ja nur

Re: Hyperref verlinkt teilweise auf falsche Kapitel

Beitrag von ich meine ja nur »

u_fischer hat geschrieben:
Sa 4. Feb 2023, 11:44
Ich würde den Hinweis auf den Code von hyperref nicht zu ernst nehmen. Ich maintaine das Ding: das sind (mit den Treibern) an die 10000 Zeilen Code (und über 25000 Quellcode) und kein normaler Nutzer sollte sich damit rumschlagen müssen.
Genau, um zu finden, wie hyperref \theHchapter innerhalb von \appendix umdefiniert, muss man sich die ganzen 25000 Zeilen Quellcode einschließlich dem der Treiber anschauen. Es genügt auf keinen Fall, einfach einmal nach theHchapter oder appendix zu suchen. Wobei das ja in der Tat nur ein ergänzender Hinweis dazu war, dass man ggf. \theHchapter zusätzlich umdefinieren muss, wenn man \thechapter umdefiniert und chapter zurücksetzt, weil sonst eben \theHchapter mehrfach das gleiche Ergebnis liefert. Im einfachsten Fall genügt vermutlich ein:
 \newcommand{\chapternumbering}[1]{%
  \setcounter{chapter}{0}%
  \renewcommand{\thechapter}{\csname #1\endcsname{chapter}}%
  \renewcommand{\theHchapter}{\csname #1\endcsname{chapter}}% ergänzt
}
Der Hinweis auf die Änderung bei appendix habe ich eigentlich nur eingefügt, weil hyperref für Nummerierung mit Großbuchstaben in \theHchapter eben nicht \Alph verwendet. Ich nehme mal an, dass das mit Sprachen wie Griechisch zusammenhängt und im konkreten Fall eher keine Rolle spielt.

Wenn es keine Rolle spielt, dass es mit hypertexnames=false schwerer wird, die Ankernamen zu erraten, wenn man beispielsweise von außen auf ein Kapitel verlinken will, dann ist es natürlich egal.

Nicolas.jfB
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 3. Feb 2023, 09:23

Re: Hyperref verlinkt teilweise auf falsche Kapitel

Beitrag von Nicolas.jfB »

u_fischer hat geschrieben:
Sa 4. Feb 2023, 11:44

Du musst nicht abstellen. Eine einfach Methode ist
\usepackage[hidelinks,hypertexnames=false]{hyperref} 
Dann werden die Anker einfach durchnummeriert.
Ich habe diesen Befehl eben ausprobiert, und siehe da: Es hat schon ausgereicht.

Vielen Dank für Eure Hilfe, die Lösung ist meistens simpler als erwartet!

Antworten