Bookmarks hyperref: Gliederungsebenen nicht richtig

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Bookmarks hyperref: Gliederungsebenen nicht richtig

Beitrag 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
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

meep.meep
Forum-Anfänger
Forum-Anfänger
Beiträge: 45
Registriert: Do 8. Apr 2010, 10:36

Beitrag 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

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Danke

Beitrag 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
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

Antworten