Nochmals einen schönen guten abend allerseits,
die folgende Frage ist quasi als spin-off meiner vorherigen, hier verlinkten Frage zu verstehen:
Die folgende Herangehensweise an die Zentrierung der Ausgabe von Part im Inhaltsverzeichnis erscheint mir sauber - naja zumindest sauberer als mein vorheriger Versuch (s. oben verlinkte Frage).
Leider kommen die Implementierung und hyperref sich in die Quere, sobald die hyperref-option "final=true" gesetzt wird (s. MWE). Mit final=false funktionierts problemlos - was natürlich witzlos ist, wenn man von hyperref proftieren möchte ...
Ich würde mich sehr freuen, wenn ihr mich auch hier nochmal erleuchten könntet: Gibt es ein bessere Implementieung der Fragestellung, so dass hyperref dieser nicht in die Quere kommt?
Vielen Dank!
\documentclass[% paper=a4, paper=portrait, pagesize=auto, twoside=true, version=last, headings=normal, toc=listof, toc=graduated, parskip=half, headsepline=false, footsepline=false, cleardoublepage=empty, ]{scrbook} \usepackage{fontspec} \usepackage[ngerman,]{babel} \addtokomafont{disposition}{\normalfont\normalcolor} \setkomafont{partentrypagenumber}{\csname @gobble\endcsname} %center toc entry 'part': \renewcommand*{\addparttocentry}[2]{% \addtocentrydefault{part}{}{\protect\parbox{\textwidth}{\protect\centering\partname~#1.~~#2}}} \KOMAoptions{DIV=last} \usepackage[pdfencoding=auto, final=true, colorlinks=true, %linkcolor=red, %citecolor=green,% %anchorcolor=blue, %urlcolor=yellow, linkcolor=black, citecolor=black,% anchorcolor=black, urlcolor=black, % hyperfootnotes=true, bookmarksnumbered=true, bookmarks=true, bookmarksopen=true, bookmarksopenlevel=0, plainpages=false,% pdfpagelabels=true, hyperindex=false, %backref=page, ]{hyperref} \addto\extrasngerman{% %\renewcommand{\partautorefname}{Teil} \renewcommand{\chapterautorefname}{Kap.} \renewcommand{\sectionautorefname}{Absch.} %\renewcommand{\subsectionautorefname}{Unterabsch.} \renewcommand{\subsectionautorefname}{\sectionautorefname} %\renewcommand{\subsubsectionautorefname}{Unterunterabsch.} \renewcommand{\subsubsectionautorefname}{\subsectionautorefname} %\renewcommand{\appendixautorefname}{Anh.} \renewcommand{\figureautorefname}{Abb.} \renewcommand{\tableautorefname}{Tab.} \renewcommand{\footnoteautorefname}{Fußn.} %\renewcommand{\theoremautorefname}{Satz} } \begin{document} \tableofcontents% \chapter{Kapitel Eins} \pdfbookmark[0]{Teil I: Altes Testament}{Teil I: Altes Testament} \part{Altes Testament} \label{part:one} \chapter{Kapitel Zwei} \chapter{Kapitel Drei} \pdfbookmark[0]{Teil II: Neues Testament}{Teil II: Neues Testament} \part{Neues Testament} \label{part:two} \chapter{Kapitel Vier} \chapter{Kapitel Fünf} \end{document}
Eigentlich ein hyperref-Problem
Du darfst in Strings, die hyperref für Bookmarks oder Anker verwenden soll, keine Formatierungsanweisungen einbauen. Es gibt zwei Möglichkeiten das Problem zu lösen. Zum kann man hyperref mitteilen, wie es diese Formatierungsanweisungen behandeln soll, zum anderen kann man den einfacheren Weg gehen und gleich via
\texorpdfstring
für die Verwendung in der TeX-Ausgabe und für die Verwendung im PDF-Code (also Bookmarks, Ankern etc.) unterschiedliche Strings angeben. Das würde auch in Deinem Fall funktionieren. Dabei kann man sich dann auch schon die extra\pdfbookmark
-Anweisungen ersparen, die letztlich nur dafür sorgen würden, dass Teile doppelt in die Bookmarks eingetragen werden. Soweit das hyperref Problem.Machen wir nun aber die eigentliche Anforderung der zentrierten Einträge zu einem KOMA-Script-Problem. Es ist nicht vorgesehen, Einträge im Inhaltsverzeichnis zu zentrieren. Das hat sogar einen guten Grund. Derartige Mischung von symmetrischem und nicht symmetrischem Satz in einem Verzeichnis sieht nicht nur scheußlich aus, es verstößt auch gegen einen der Hauptsätze der Typografie, dass man eben solche Mischungen vermeiden soll.
Will man es trotzdem haben, ist der sauberste Weg
\l@part
, also die Anweisung zum Setzen der Verzeichniseinträge der Teile-Ebene umzudefinieren. Eine recht einfache Möglichkeit dafür wäre:Aber wie gesagt: Ich würde davon abraten.
Es sei außerdem noch darauf hingewiesen, dass es ab KOMA-Script 3.20 die Möglichkeit geben soll, neue Verzeichniseintragsstile zu definieren. Das wäre ab dann der tatsächlich zu empfehlende Weg, das Problem zu lösen.
Übrigens wäre das ganze etwas übersichtlicher gewesen, wenn Du in der Präambel alle überflüssigen Optionen für die Klasse und für hyperref und auch die ganzen überflüssigen Umdefinierungen weggelassen hättest. Mit überflüssig ist dabei irrelevant für das Problem gemeint und weglassen meint wirklich weglassen und nicht nur auskommentieren. Die überflüssigen Teile nehmen derzeit leider rund die Hälfte des Gesamtcodes ein.
Schöne Bescherung!
Im wahrsten Sinne des Wortes!
Ich habe mich für die \texorpdfstring-Variante entschieden und bin gespannt was 3.20 bringt.
Folgendes dürfte zwar nicht nur mir aufgefallen sein, ich möchte es dennoch erwähnen:
Das was meine MWE im negativen Sinne zu viel haben, gilt für Deine Erklärungen im positiven Sinn - ist mir nicht erst bei dem Post aufgefallen. Herzlichen Dank für den Variantenreichtum!
Fröhliche Weihnachten!