Die KOMA-Script Klassen bieten ja die Möglichkeit zusätzliche Gliederungsebenen zu definieren. Wenn ich jetzt aber beispielsweise eine zusätzliche Ebene subsubsubsection zwischen subsubsection und paragraph definiere und außerdem hyperref lade, dann bekomme ich die Warnungen

Open in Online-Editor
Package hyperref Warning: bookmark level for unknown subsubsubsection defaults 
to 0.

und das Lesezeichen im pdf ist entsprechend auch auf einer falschen Ebene.

alt text

Wie kann ich die Ebene für das Lesezeichen, also bookmark level, für eine neue Gliederungsebene einstellen?

Beispiel für KOMA-Script Version 3.20:

Open in Online-Editor
\documentclass{scrartcl}[2016/05/10]
\usepackage{lipsum}

\DeclareNewSectionCommand[
  style=section,
  level=\paragraphnumdepth,
  toclevel=\paragraphtocdepth,
  indent=0pt,
  beforeskip=-3.25ex plus 1ex minus .2ex,
  afterskip=1sp,
  font=\normalsize,
  counterwithin=subsubsection
]{subsubsubsection}

\RedeclareSectionCommands[
  increaselevel=1,% muss vor level und toclevel stehen
  level=\subparagraphnumdepth,
  toclevel=\subparagraphtocdepth
]{paragraph,subparagraph}

\setcounter{secnumdepth}{\subsubsubsectionnumdepth}
\setcounter{tocdepth}{\subsubsubsectiontocdepth}

\usepackage{hyperref}

\begin{document}
\tableofcontents
\section{Abschnitt}
\subsection{Unterabschnitt}
\lipsum[1]
\subsubsection{Unterunterabschnitt}
\lipsum[1]
\subsubsubsection{Unterunterunterabschnitt}
\lipsum[1]
\paragraph{Paragraph}
\lipsum
\end{document}

Mit Version 3.19 hätte man für die neue Ebene noch zusätzlich die Attribute tocnumwidth und tocindent angeben müssen. Mit Version 3.20 werden für diese automatisch passende Default-Werte ermittelt, wenn der Ebenenname sich von der darüberliegenden nur durch ein zusätzliches sub unterscheidet. Außerdem gab es in Version 3.19 einen Bug für counterwithin.

gefragt 08 Jun, 11:48

esdd's gravatar image

esdd
14.2k53251
Akzeptiert: 87%

bearbeitet 18 Jun, 13:59

2

Du musst \def\toclevel@subsubsubsection{4} definieren (ich hoffe die Zahl stimmt ...).

(08 Jun, 13:03) Ulrike Fischer

Die Frage wurde aus folgenden Grund geschlossen: "Mit KOMA-Script Version 3.21 ist das Problem veraltet." durch esdd 17 Jun, 17:01


Hinweis: Die Frage und damit auch die Antwort sind veraltet. Seit der Prerelease 3.21.2475 bzw. Version 3.21 funktioniert bereits das MWE aus der Frage (siehe unten).

Wie @Ulrike in einem Kommentar vorgeschlagen hat, kann man die Ebene für das Lesezeichen der neuen Gliederungsebene mit

Open in Online-Editor
\makeatletter
\def\toclevel@subsubsubsection{\subsubsubsectiontocdepth}
\makeatother

definieren. Wie @saputello in einem Kommentar erwähnt, ist

Open in Online-Editor
\makeatletter
\edef\toclevel@subsubsubsection{\the\numexpr\subsubsubsectiontocdepth\relax}
\makeatother

für ältere Versionen sicherer.

Wie im folgenden Bild zu sehen ist, reicht das noch nicht, da paragraph noch auf seiner alten Lesezeichenebene steht.

alt text

Es müssen also noch die Lesezeichenebenen für paragraph und subparagraph umdefiniert werden. Dabei muss beachtet werden, dass hyperref für die "normalen" Gliederungsbefehle die Lesezeichenebenen ebenfalls definiert, die eigene Änderung also erst später erfolgen darf.

Mit

Open in Online-Editor
\documentclass{scrartcl}[2016/05/10]
\usepackage{lipsum}

\DeclareNewSectionCommand[
  style=section,
  level=\paragraphnumdepth,
  toclevel=\paragraphtocdepth,
  indent=0pt,
  beforeskip=-3.25ex plus 1ex minus .2ex,
  afterskip=1sp,
  font=\normalsize,
  counterwithin=subsubsection
]{subsubsubsection}
\makeatletter
\edef\toclevel@subsubsubsection{\the\numexpr\subsubsubsectiontocdepth\relax}
\makeatother

\RedeclareSectionCommands[
  increaselevel=1,% muss vor level und toclevel stehen
  level=\subparagraphnumdepth,
  toclevel=5% bis Version 3.20 bei \subparagraphtocdepth falsches Hochzählen
]{paragraph,subparagraph}
\makeatletter
\AtBeginDocument{
  \edef\toclevel@paragraph{\the\numexpr\paragraphtocdepth\relax}
  \edef\toclevel@subparagraph{\the\numexpr\subparagraphtocdepth\relax}
}

\makeatother

\setcounter{secnumdepth}{\subsubsubsectionnumdepth}
\setcounter{tocdepth}{\subsubsubsectiontocdepth}

\usepackage{hyperref}

\begin{document}
\tableofcontents
\section{Abschnitt}
\subsection{Unterabschnitt}
\lipsum[1]
\subsubsection{Unterunterabschnitt}
\lipsum[1]
\subsubsubsection{Unterunterunterabschnitt}
\lipsum[1]
\paragraph{Paragraph}
\lipsum
\end{document}

bekommt man dann das gewünschte

alt text


Allerdings habe ich gerade eine neue Vorabversion von KOMA-Script 3.21 (konkret v.3.21.2475) gefunden, mit der die Lesezeichen schon mit dem Beispiel aus meiner Frage richtig angezeigt werden.

Open in Online-Editor
\documentclass{scrartcl}[2016/06/09]
\usepackage{lipsum}

\DeclareNewSectionCommand[
  style=section,
  level=\paragraphnumdepth,
  toclevel=\paragraphtocdepth,
  indent=0pt,
  beforeskip=-3.25ex plus 1ex minus .2ex,
  afterskip=1sp,
  font=\normalsize,
  counterwithin=subsubsection
]{subsubsubsection}

\RedeclareSectionCommands[
  increaselevel=1,% muss vor level und toclevel stehen
  level=\subparagraphnumdepth,
  toclevel=\subparagraphtocdepth
]{paragraph,subparagraph}

\setcounter{secnumdepth}{\subsubsubsectionnumdepth}
\setcounter{tocdepth}{\subsubsubsectiontocdepth}

\usepackage{hyperref}

\begin{document}
\tableofcontents
\section{Abschnitt}
\subsection{Unterabschnitt}
\lipsum[1]
\subsubsection{Unterunterabschnitt}
\lipsum[1]
\subsubsubsection{Unterunterunterabschnitt}
\lipsum[1]
\paragraph{Paragraph}
\lipsum
\end{document}

Man kann sich die Version von hier installieren und testen. Der Code liefert dann ebenfalls

alt text

Permanenter link

beantwortet 09 Jun, 06:00

esdd's gravatar image

esdd
14.2k53251

bearbeitet 19 Jun, 12:46

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×73
×41
×4

Frage gestellt: 08 Jun, 11:48

Frage wurde angeschaut: 2,219 Mal

Zuletzt aktualisiert: 19 Jun, 12:46