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 '16, 17:48

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 18 Jun '16, 19:59

2

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

(08 Jun '16, 19:03) Ulrike Fischer

Die Frage wurde aus folgenden Grund "Mit KOMA-Script Version 3.21 ist das Problem veraltet." geschlossen esdd 17 Jun '16, 23: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 '16, 12:00

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 19 Jun '16, 18:46

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×131
×62
×5

gestellte Frage: 08 Jun '16, 17:48

Frage wurde gesehen: 10,023 Mal

zuletzt geändert: 19 Jun '16, 18:46