von KOMA » Do 5. Aug 2021, 09:48
Das Hauptproblem hier dürfte wieder einmal sein, dass falsch nummeriert wird. Wenn man nämlich im Vorderteil römische Seitenzahlen verwendet, dann sollte man damit nicht erst nach den Titelseiten beginnen. Titelseiten werden mitgezählt, auch wenn sie keine Nummer erhalten → Welche Seitenzahl hat das Inhaltsverzeichnis?
Wenn man also die Umschaltung auf römische Zählen korrekt vor dem Titel durchführt und dann nach den Verzeichnissen ordentlich per
\cleardoubleoddpage
\pagenumbering{arabic}
zurückschaltet, dann funktioniert die Nummerierung und auch die Verlinkung.
In der Tat stellt sich dann aber die Frage, ob – insbesondere bei einem ohnehin doppelseitigen Dokument – nicht scrbook die bessere Klasse wäre. Dann könnte man nämlich für die Unterscheidung von Vorderteil und Hauptteil \frontmatter und \mainmatter verwenden, die selbst für den notwendigen Seitenwechsel sorgen. Allerdings sieht \frontmatter kleine römische Seitenzahlen vor – einfach, weil diese üblich sind.
Große römische Seitenzahlen bekommt man mit
\usepackage{xpatch}
\xpatchcmd{\frontmatter}{roman}{Roman}{\typeout{große römische Seitenzahlen in Vorderteil aktiviert}}{\typeout{Aktivierung großer römischer Seitenzahlen im Vorderteil fehlgeschlagen. Bitte \string\pagenumbering{Roman}\space nach \string\frontmatter\space verwenden}}
Insgesamt könnte das also so aussehen:
\documentclass[12pt]{scrbook}% a4 und twoside sind Voreinstellung
\usepackage[left= 2.75cm,right = 2.75cm, bottom = 2.5 cm, top= 2cm]{geometry}% Ungünstige Randeinstellungen erzwungen
\usepackage{blindtext}% Für vollständige Minimalbeispiele höchst praktisch. In
% echten Dokumenten natürlich weglassen.
\usepackage{float}% Brauchst du nicht wirklich. Für alternatives Vorgehen → KOMA-Script-Anleitung
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}% Der Vollständigkeit
% halber sei auf Paket ragged2e und dessen
% Anweisung \Centering hingewiesen. In
% Tabellen ist das meist eine bessere Wahl als
% \centering\arraybackslash, zumal das
% \arraybackslash ohnehin nur bei der letzten
% Spalte einer Tabelle einen Sinn ergibt.
\usepackage[version=4]{mhchem}
\usepackage[demo]{graphicx}% Im echten Dokument nicht vergessen, die Option
% wieder zu entfernen! Alternative: Die Abbildungen
% aus Paket mwe verwenden. Dann braucht man für ein
% vollständiges Minimalbeispiel keine Option demo
% und vergisst die auch nicht.
\setcounter{tocdepth}{5}% Wer weiß auswendig, welcher Level das ist? Ich
% nicht. In der KOMA-Script-Anleitung wird daher die
% Verwendung von \subparagraphtocdepth, wie in der
% KOMA-Script-Anleitung in der Erklärung zum Zähler
% tocdepth erklärt. Allerdings rate ich davon ab, so
% tiefe Gliederungsebenen ins Inhaltsverzeichnis
% aufzunehmen.
\usepackage{lscape}% Wirklich nicht pdflscape?
\setcounter{secnumdepth}{5}% Wer weiß auswendig, welcher Level das ist? Ich
% nicht. In der KOMA-Script-Anleitung wird daher die
% Verwendung von \subparagraphtocdepth, wie in der
% KOMA-Script-Anleitung in der Erklärung zum Zähler
% tocdepth erklärt. Allerdings rate ich davon ab, so
% tiefe Gliederungsebenen noch zu nummerieren.
\usepackage[utf8]{inputenc}% Überflüssig seit LaTeX 2018/04/01
\usepackage[ngerman]{babel}% Wenn man die Sprachoption bereits bei
% \documentclass angibt, muss man sie nicht bei
% diversen Pakewten wiederholen und vergisst auch
% nicht, das zu tun.
\usepackage[T1]{fontenc}
%\usepackage{graphicx}% Das Paket wurde oben bereits geladen. Es wird dringend
% davon abgeraten, Palete mehrfach (gar mit
% unterschiedlichen Optionen) zu laden, weil das früher
% oder später zu einem "option clash" und schwer
% wartbaren Dokumenten führt.
\usepackage{subfigure}% Dieses Paket ist seit Jahrzehnten veraltet und sollte
% nicht mehr verwendet werden. Da der Autor des Pakets
% mit subfig einen offiziellen Nachfolger veröffentlicht
% hat, werden Probleme mit dem Paket nicht mehr
% behoben. Wenn man es schon verwendet, hängt es leider
% komplett von der verwendeten Version ab, in welcher
% Reihenfolge man es mit hyperref laden sollte. Siehe
% dazu Abschnitt 9.1.35 der hyperref-Anleitung. Bei der
% aktuellen Version ist nicht so ganz sicher, ob man sie
% besser vor oder nach hyperref lädt.
\graphicspath{{img/}}% Ist zwar ggf. korrekt aber in einem vollständigen
% Minimalbeispiel höchst unpraktisch.
\usepackage{lmodern}% Ich würde alle Font-Pakete zusammen halten, also das
% direkt nach (oder auch vor) fontenc laden.
\usepackage{color}% Wirklich nict xcolor?
\usepackage{transparent}% Brauchst du das?
\usepackage{acronym}
\usepackage{scrlayer-scrpage}% Da das Paket später offensichtlich verwendet
% wird, sollte man es auch laden.
\usepackage{nameref}% Siehe den nachfolgenen Hinweis zu varioref.
\usepackage[ngerman]{varioref}% Das ist eines der Pakete, die mit hyperref
% generell Probleme verursachen. Wenn man es
% schon mit hyperref kombiniert, sollte man
% unbedingt Abschnitt 9.1.40 der
% hyperref-Anleitung beachten!
\usepackage[
pdftitle={Titel der Abschlussarbeit},
pdfsubject={},
pdfauthor={Euer Name},
pdfkeywords={},
%Links nicht einrahmen
hidelinks,
plainpages=false,pdfpagelabels
]{hyperref}% hyperref sollte von wenigen, dokumentierten Ausnahmen abgesehen,
% das letzte geladene Paket sein.
\hypersetup{% String sollte man wegen der Codierung besser damit als bei
% \usepackage festlegen
pdftitle={Titel der Abschlussarbeit},
pdfsubject={}
pdfauthor={Euer Name}
pdfkeywords={}
}
\usepackage{bookmark}% Es wird empfohlen dieses Paket nach hyperref selbst zu
% laden. Anderenfalls ist die Klasse auf einen
% Notfallmechanismus angewiesen. Wer das Paket
% keinesfalls haben will, der kann das Laden per Option
% bei \documentclass unterbinden. Ich rate aber
% ausdrücklich zur Verwendung des Pakets.
\usepackage{xpatch}
\xpatchcmd{\frontmatter}
{roman}
{Roman}
{\typeout{große römische Seitenzahlen in Vorderteil aktiviert}}
{\typeout{Aktivierung großer römischer Seitenzahlen im Vorderteil
fehlgeschlagen. Bitte \string\pagenumbering{Roman}\space nach
\string\frontmatter\space verwenden.}}
% Einstellungen gehören nach Möglichkeit in die Dokumentpräambel
\automark[chapter]{chapter}
\clearscrheadfoot
\ohead{}
\chead{\headmark}
\ofoot{}
\cfoot*{\pagemark}
% part im Inhaltsverzeichnis nicht nummerierern. Die Umdefinierung ergibt
% überhaupt nur einen Sinn, wenn man im Dokumente auch \part verwendet. Ich
% halte aber auch dann wenig davon, im Inhaltsverzeichnis eine Nummerierung
% wegzulassen, die man im Text hat.
\renewcommand*{\addparttocentry}[2]{%
\addtocentrydefault{part}{}{#2}%
}
%%%%%%%%%%%%%%%%%%
\begin{document}
\frontmatter
% Ersatztitel, weil ich deine Titeldate nicht habe:
\title{Titel}
\author{Ich}
\maketitle
% Wenn man stattdessen den Titel frei gestaltet, sei die titlepage-Umgebung
% empfohlen. Damit kann man sich dann auch die Umschaltung des Seitenstils
% sparen, weil diese ein \thispagestyle{empty} enthält.
% Zwei Ersatzkapitel, weil ich deine Dateien Chapter2 und Chapter3 nicht habe.
\chapter{Beispielkapitel automatisch nicht nummeriert aber im
Inhaltsverzeichnis}
\blindtext
\chapter{Noch ein Beispielkapitel automatisch nicht nummeriert aber im
Inhaltsverzeichnis}
\blindtext
%Inhaltsverzeichnis
\tableofcontents
\mainmatter
\addchap{Einleitung}% Einleitungen sind häufig nicht nummeriert. Keine Ahnung,
% wie das bei dir ist. So werden nicht nummerierte Kapitel
% im Hauptteil trotzdem ins Inhaltsverzeichnis eingefügt
% und auch die Kolumnentitel angepasst.
\Blindtext[5]
\blinddocument% Ersatzkapitel, weil ich deine Datei Einleitung nicht habe.
% Und damit man die Wirkung der Umdefinierung von \addparttocentry auch sieht,
% hier noch ein Beispiel für \part. Wenn man dagegen gar keiin \part
% verwendet, dann sollte man die Umdefinierung oben natürlich weglassen.
\part{Irgend so ein Teil}
\blinddocument % Und weiterer Dummy-Inhalt
\end{document}
Ich kann und will dich natürlich nicht zwingen, das so zu machen. Aber wie du leicht überprüfen kannst, funktioniert so die Verlinkung automatisch korrekt. Man hat also mit eher weniger Aufwand (kein \phantomsection, kein \addcontentsline, kein \cleardoubleoddpage …) ein besseres Ergebnis. Die saubere Trennung von Form und Inhalt bekommt quasi gratis dazu.
Das Hauptproblem hier dürfte wieder einmal sein, dass falsch nummeriert wird. Wenn man nämlich im Vorderteil römische Seitenzahlen verwendet, dann sollte man damit nicht erst nach den Titelseiten beginnen. Titelseiten werden mitgezählt, auch wenn sie keine Nummer erhalten → [url=https://golatex.de/viewtopic.php?f=11&t=13474]Welche Seitenzahl hat das Inhaltsverzeichnis?[/url]
Wenn man also die Umschaltung auf römische Zählen korrekt vor dem Titel durchführt und dann nach den Verzeichnissen ordentlich per
[code]
\cleardoubleoddpage
\pagenumbering{arabic}
[/code]
zurückschaltet, dann funktioniert die Nummerierung und auch die Verlinkung.
In der Tat stellt sich dann aber die Frage, ob – insbesondere bei einem ohnehin doppelseitigen Dokument – nicht [tt]scrbook[/tt] die bessere Klasse wäre. Dann könnte man nämlich für die Unterscheidung von Vorderteil und Hauptteil [tt]\frontmatter[/tt] und [tt]\mainmatter[/tt] verwenden, die selbst für den notwendigen Seitenwechsel sorgen. Allerdings sieht [tt]\frontmatter[/tt] kleine römische Seitenzahlen vor – einfach, weil diese üblich sind.
Große römische Seitenzahlen bekommt man mit
[code]
\usepackage{xpatch}
\xpatchcmd{\frontmatter}{roman}{Roman}{\typeout{große römische Seitenzahlen in Vorderteil aktiviert}}{\typeout{Aktivierung großer römischer Seitenzahlen im Vorderteil fehlgeschlagen. Bitte \string\pagenumbering{Roman}\space nach \string\frontmatter\space verwenden}}
[/code]
Insgesamt könnte das also so aussehen:
[code]
\documentclass[12pt]{scrbook}% a4 und twoside sind Voreinstellung
\usepackage[left= 2.75cm,right = 2.75cm, bottom = 2.5 cm, top= 2cm]{geometry}% Ungünstige Randeinstellungen erzwungen
\usepackage{blindtext}% Für vollständige Minimalbeispiele höchst praktisch. In
% echten Dokumenten natürlich weglassen.
\usepackage{float}% Brauchst du nicht wirklich. Für alternatives Vorgehen → KOMA-Script-Anleitung
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}% Der Vollständigkeit
% halber sei auf Paket ragged2e und dessen
% Anweisung \Centering hingewiesen. In
% Tabellen ist das meist eine bessere Wahl als
% \centering\arraybackslash, zumal das
% \arraybackslash ohnehin nur bei der letzten
% Spalte einer Tabelle einen Sinn ergibt.
\usepackage[version=4]{mhchem}
\usepackage[demo]{graphicx}% Im echten Dokument nicht vergessen, die Option
% wieder zu entfernen! Alternative: Die Abbildungen
% aus Paket mwe verwenden. Dann braucht man für ein
% vollständiges Minimalbeispiel keine Option demo
% und vergisst die auch nicht.
\setcounter{tocdepth}{5}% Wer weiß auswendig, welcher Level das ist? Ich
% nicht. In der KOMA-Script-Anleitung wird daher die
% Verwendung von \subparagraphtocdepth, wie in der
% KOMA-Script-Anleitung in der Erklärung zum Zähler
% tocdepth erklärt. Allerdings rate ich davon ab, so
% tiefe Gliederungsebenen ins Inhaltsverzeichnis
% aufzunehmen.
\usepackage{lscape}% Wirklich nicht pdflscape?
\setcounter{secnumdepth}{5}% Wer weiß auswendig, welcher Level das ist? Ich
% nicht. In der KOMA-Script-Anleitung wird daher die
% Verwendung von \subparagraphtocdepth, wie in der
% KOMA-Script-Anleitung in der Erklärung zum Zähler
% tocdepth erklärt. Allerdings rate ich davon ab, so
% tiefe Gliederungsebenen noch zu nummerieren.
\usepackage[utf8]{inputenc}% Überflüssig seit LaTeX 2018/04/01
\usepackage[ngerman]{babel}% Wenn man die Sprachoption bereits bei
% \documentclass angibt, muss man sie nicht bei
% diversen Pakewten wiederholen und vergisst auch
% nicht, das zu tun.
\usepackage[T1]{fontenc}
%\usepackage{graphicx}% Das Paket wurde oben bereits geladen. Es wird dringend
% davon abgeraten, Palete mehrfach (gar mit
% unterschiedlichen Optionen) zu laden, weil das früher
% oder später zu einem "option clash" und schwer
% wartbaren Dokumenten führt.
\usepackage{subfigure}% Dieses Paket ist seit Jahrzehnten veraltet und sollte
% nicht mehr verwendet werden. Da der Autor des Pakets
% mit subfig einen offiziellen Nachfolger veröffentlicht
% hat, werden Probleme mit dem Paket nicht mehr
% behoben. Wenn man es schon verwendet, hängt es leider
% komplett von der verwendeten Version ab, in welcher
% Reihenfolge man es mit hyperref laden sollte. Siehe
% dazu Abschnitt 9.1.35 der hyperref-Anleitung. Bei der
% aktuellen Version ist nicht so ganz sicher, ob man sie
% besser vor oder nach hyperref lädt.
\graphicspath{{img/}}% Ist zwar ggf. korrekt aber in einem vollständigen
% Minimalbeispiel höchst unpraktisch.
\usepackage{lmodern}% Ich würde alle Font-Pakete zusammen halten, also das
% direkt nach (oder auch vor) fontenc laden.
\usepackage{color}% Wirklich nict xcolor?
\usepackage{transparent}% Brauchst du das?
\usepackage{acronym}
\usepackage{scrlayer-scrpage}% Da das Paket später offensichtlich verwendet
% wird, sollte man es auch laden.
\usepackage{nameref}% Siehe den nachfolgenen Hinweis zu varioref.
\usepackage[ngerman]{varioref}% Das ist eines der Pakete, die mit hyperref
% generell Probleme verursachen. Wenn man es
% schon mit hyperref kombiniert, sollte man
% unbedingt Abschnitt 9.1.40 der
% hyperref-Anleitung beachten!
\usepackage[
pdftitle={Titel der Abschlussarbeit},
pdfsubject={},
pdfauthor={Euer Name},
pdfkeywords={},
%Links nicht einrahmen
hidelinks,
plainpages=false,pdfpagelabels
]{hyperref}% hyperref sollte von wenigen, dokumentierten Ausnahmen abgesehen,
% das letzte geladene Paket sein.
\hypersetup{% String sollte man wegen der Codierung besser damit als bei
% \usepackage festlegen
pdftitle={Titel der Abschlussarbeit},
pdfsubject={}
pdfauthor={Euer Name}
pdfkeywords={}
}
\usepackage{bookmark}% Es wird empfohlen dieses Paket nach hyperref selbst zu
% laden. Anderenfalls ist die Klasse auf einen
% Notfallmechanismus angewiesen. Wer das Paket
% keinesfalls haben will, der kann das Laden per Option
% bei \documentclass unterbinden. Ich rate aber
% ausdrücklich zur Verwendung des Pakets.
\usepackage{xpatch}
\xpatchcmd{\frontmatter}
{roman}
{Roman}
{\typeout{große römische Seitenzahlen in Vorderteil aktiviert}}
{\typeout{Aktivierung großer römischer Seitenzahlen im Vorderteil
fehlgeschlagen. Bitte \string\pagenumbering{Roman}\space nach
\string\frontmatter\space verwenden.}}
% Einstellungen gehören nach Möglichkeit in die Dokumentpräambel
\automark[chapter]{chapter}
\clearscrheadfoot
\ohead{}
\chead{\headmark}
\ofoot{}
\cfoot*{\pagemark}
% part im Inhaltsverzeichnis nicht nummerierern. Die Umdefinierung ergibt
% überhaupt nur einen Sinn, wenn man im Dokumente auch \part verwendet. Ich
% halte aber auch dann wenig davon, im Inhaltsverzeichnis eine Nummerierung
% wegzulassen, die man im Text hat.
\renewcommand*{\addparttocentry}[2]{%
\addtocentrydefault{part}{}{#2}%
}
%%%%%%%%%%%%%%%%%%
\begin{document}
\frontmatter
% Ersatztitel, weil ich deine Titeldate nicht habe:
\title{Titel}
\author{Ich}
\maketitle
% Wenn man stattdessen den Titel frei gestaltet, sei die titlepage-Umgebung
% empfohlen. Damit kann man sich dann auch die Umschaltung des Seitenstils
% sparen, weil diese ein \thispagestyle{empty} enthält.
% Zwei Ersatzkapitel, weil ich deine Dateien Chapter2 und Chapter3 nicht habe.
\chapter{Beispielkapitel automatisch nicht nummeriert aber im
Inhaltsverzeichnis}
\blindtext
\chapter{Noch ein Beispielkapitel automatisch nicht nummeriert aber im
Inhaltsverzeichnis}
\blindtext
%Inhaltsverzeichnis
\tableofcontents
\mainmatter
\addchap{Einleitung}% Einleitungen sind häufig nicht nummeriert. Keine Ahnung,
% wie das bei dir ist. So werden nicht nummerierte Kapitel
% im Hauptteil trotzdem ins Inhaltsverzeichnis eingefügt
% und auch die Kolumnentitel angepasst.
\Blindtext[5]
\blinddocument% Ersatzkapitel, weil ich deine Datei Einleitung nicht habe.
% Und damit man die Wirkung der Umdefinierung von \addparttocentry auch sieht,
% hier noch ein Beispiel für \part. Wenn man dagegen gar keiin \part
% verwendet, dann sollte man die Umdefinierung oben natürlich weglassen.
\part{Irgend so ein Teil}
\blinddocument % Und weiterer Dummy-Inhalt
\end{document}
[/code]
Ich kann und will dich natürlich nicht zwingen, das so zu machen. Aber wie du leicht überprüfen kannst, funktioniert so die Verlinkung automatisch korrekt. Man hat also mit eher weniger Aufwand (kein [tt]\phantomsection[/tt], kein [tt]\addcontentsline[/tt], kein [tt]\cleardoubleoddpage[/tt] …) ein besseres Ergebnis. Die saubere Trennung von Form und Inhalt bekommt quasi gratis dazu.