Seite 1 von 1

Bookmarks hyperref: Gliederungsebenen nicht richtig

Verfasst: Mi 31. Mär 2010, 14:59
von IrenaSekuta
Hallo zusammen,

ich benutze in meinem Dokument sieben, nummerierte Gleiderungsebenen. Doch leider bekomme die richtige Erstellung (Gliederung) der Lesezeichen in der Lesezeichenleiste hin.

Hier ein das Problem zeigendes Minimalbeispiel:
\documentclass[ngerman]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{hyperref}
\hypersetup{%
	bookmarksopen=true,
	bookmarksopenlevel=9,
	bookmarksnumbered=true}

\makeatletter
% Paragraph umdefinieren
\renewcommand{\paragraph}{%
	\@startsection{paragraph}{4}{0pt}%
	{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}%
	{\raggedsection\normalfont\sectfont\nobreak\size@paragraph}%
}

% Subparagraph umdefinieren
\renewcommand{\subparagraph}{%
	\@startsection{subparagraph}{5}{0pt}%
	{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}%
	{\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}%
}

% Neue Ebene erstellen
\newcounter{subsubparagraph}[subparagraph]
\newkomafont{subsubparagraph}{}
\renewcommand{\thesubsubparagraph}{\thesubparagraph.\arabic{subsubparagraph}}
\newcommand{\subsubparagraph}{%
	\@startsection{subsubparagraph}{7}{0pt}%
	{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}%
	{\raggedsection\normalfont\sectfont\nobreak\usekomafont{subsubparagraph}}%
}
\newcommand{\l@subsubparagraph}{\bprot@dottedtocline{6}{14em}{7em}}
\newcommand{\subsubparagraphmark}[1]{} % wichtig, siehe LaTeX-Kernel 
\makeatother

% KOMA-Script
\setcounter{secnumdepth}{7}	% Nummerierungstiefe Überschriften

% HYPERREF-Paket
\AtBeginDocument{
\renewcommand{\theHsection}{\theHchapter.\arabic{section}}
\renewcommand{\theHsubsection}{\theHchapter.\theHsection.\arabic{subsection}}
\renewcommand{\theHsubsubsection}{\theHchapter.\theHsection.\theHsubsection.\arabic{subsubsection}}
\renewcommand{\theHparagraph}{\theHchapter.\theHsection.\theHsubsection.\theHsubsubsection.\arabic{paragraph}}
\renewcommand{\theHsubparagraph}{\theHchapter.\theHsection.\theHsubsection.\theHsubsubsection.\theHparagraph.\arabic{subparagraph}}
\renewcommand{\theHsubsubparagraph}{\theHchapter.\theHsection.\theHsubsection.\theHsubsubsection.\theHparagraph.\theHsubparagraph.\arabic{subsubparagraph}}
}


\begin{document}
\chapter{Ebene1: chapter}
\blindtext
\section{Ebene 2: section}
\blindtext
\subsection{Ebene 3: subsection}
\blindtext
\subsubsection{Ebene 4: subsubsection}
\blindtext
\paragraph{Ebene 5: paragraph}
\blindtext
\subparagraph{Ebene 6: subparagraph}
\blindtext
\subsubparagraph{Ebene 7: subsubparagraph}
\blindtext
\end{document}
Die Ebenen 4, 5 und 6 werden gar nicht als Lesezeichen gesetzt und die Ebene 7 wird in die erste Lesezeichenebene eingegliedert.

Zumindest bei der 7 Ebene kommt der Hinweis beim Kompilieren: bookmark level to unknown subsubparagraph defaults to 0.

Wie mache ich den dem hyperref die von mir erstelle Ebene denn bekanntß

Eventuell kann jemand helfen.

Gruß,

Irena

Verfasst: Do 8. Apr 2010, 15:47
von meep.meep
Hi,

ich hab mal über dein Problem drübergeschaut und vremute Folgendes:

Bezüglich der Lesezeichen: Mit dem Befehl \setcounter{tocdepth}{6} wurden bei mir alle Ebenen bis auf die letzte angezeigt.

Die Fehlermeldung bzgl. Ebene 7 kommt wohl daher, dass latex meines Wissens nur die Ebenen -1, 0, 1, 2, 3, 4, 5 (part bis subparagraph) kennt. Hier wäre mein Vorschlag, für die erste Gliederungesebene \part{part} zu benutzen und somit quasi jede Ebene um 1 hochzustufen. Diese Lösung habe ich aber nicht getestet.

Gruß, Anja

Verfasst: Do 8. Apr 2010, 18:29
von KOMA
LaTeX selbst kennt überhaupt keine Ebenen. Das ist allein eine Sache der Klassen. Das Problem dürfte sein, dass hyperref nur die Ebenen \part bis \subparagraph mit den Ebenendefinitionen
\expandafter\ifx\csname chapter\endcsname\relax
  \def\toclevel@part{0}%
\else
  \def\toclevel@part{-1}%
\fi
\def\toclevel@chapter{0}
\def\toclevel@section{1}
\def\toclevel@subsection{2}
\def\toclevel@subsubsection{3}
\def\toclevel@paragraph{4}
\def\toclevel@subparagraph{5}
\def\toclevel@figure{0}
\def\toclevel@table{0}
kennt.

Wenn man also neue Ebenen hinzufügt, muss man vermutlich für hyperref auch entsprechende toclevel-Anweisungen definieren. Wieviele Ebenen der PDF-Viewer dann darstellen kann, ist nochmal eine andere Frage.

Danke

Verfasst: Do 22. Apr 2010, 09:09
von IrenaSekuta
Hallo Markus,

herzlichen Dank für den Hinweis. Habe in der Hyperref-Anleitung nach dem Stichwort "toclevel" gesucht und bin fündig geworden.

Durch hinzufügen von
\makeatletter
\providecommand*{\toclevel@subsubparagraph}{7}
\makeatother
wird nun auch meine selbst erstellte Überschriftenebene richtig zugeordnet.

Gruß,

Irena