PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PDF Lesezeichen Problem bei 8 Ebenen (alnumsec)



Scissorsweep
22-02-2015, 12:34
Hi, habe folgendes Problem.

Ich nutze das alnumsec Package und habe mir noch 2 weitere Ebenen manuell hinzugefügt ("Abschnitt" / "Subabschnitt"). Diese zusätzlichen Ebenen werden auch im Inhaltsvezeichnis angezeigt.

Jetzt der Fehler: In dem PDF-Lesezeichenmenü werden diese Ebenen nicht als Unter-Ebenen von "Subparagraph" angezeigt, sondern als Hauptebenen (gleich dem "chapter"). Wie bekommt man das in den Griff?

Besten Dank für die Hilfe!

Hier das Minimal-Beispiel:


\documentclass[a4paper]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}


\makeatletter \let\size@abschnitt\normalsize
\newcounter{abschnitt}[subparagraph]
\newcommand\abschnitt{\@startsection{abschnitt}{6} {\parindent}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\setlength{\parfillskip}{\z@ \@plus 1fil}%
\raggedsection\textrm\nobreak\size@abschnitt\nobre ak}}
\newcommand*{\scr@fnt@abschnitt}{\size@abschnitt}
\newcommand*\l@abschnitt{\@dottedtocline{6}{2em}{2 em}}
\let\abschnittmark\@gobble
\makeatother
%
\makeatletter \let\size@subabschnitt\normalsize
\newcounter{subabschnitt}[abschnitt]
\newcommand\subabschnitt{\@startsection{subabschni tt}{7}{\parindent}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\setlength{\parfillskip}{\z@ \@plus 1fil}%
\raggedsection\normalfont\sectfont\nobreak\size@su babschnitt\nobreak}}
\newcommand*{\scr@fnt@subabschnitt}{\size@subabsch nitt}
\newcommand*\l@subabschnitt{\@dottedtocline{7}{12e m}{6em}}
\let\subabschnittmark\@gobble
\makeatother


\usepackage{alnumsec}
\alnumsectionlevels{1}{chapter,section,subsection, subsubsection,paragraph,subparagraph,abschnitt,sub abschnitt}
\surroundarabic[(][)]{}{.}
\otherseparators{6}
\alnumsecstyle{nLRnldnl}
\setcounter{secnumdepth}{7}
\setcounter{tocdepth}{7}

\usepackage{hyperref}
\begin{document}
\tableofcontents

\chapter{Hier fängt alles an}

\section{Dann geht es weiter}

\subsection{Dann geht es noch weiter}

\subsubsection{Dann geht es immer noch weiter}

\paragraph{Dann geht es tiefer}

\subparagraph{und bald am Ziel}

\abschnitt{Vorletzter Abschnitt}

Vorletzter Text

\subabschnitt{Letzter Abschnitt}

Letzter TExt

\end{document}

Scissorsweep
22-02-2015, 14:01
Problem gelöst:


\makeatletter
\providecommand*{\toclevel@abschnitt}{6}
\providecommand*{\toclevel@subabschnitt}{7}
\makeatother

klops
22-02-2015, 14:14
Ich würde trotzdem dazu raten, die neuen Ebenen mit den dafür vorgesehenen KOMA-Script-Anweisungen zu definieren:
\documentclass[a4paper]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}

\DeclareNewSectionCommand[%
counterwithin=subparagraph,
level=6,
indent=\parindent,
beforeskip=-3.25ex plus -1ex minus -.2ex,
afterskip=1.5ex plus .2ex,
font=\rmfamily\normalsize,
tocindent=2em,
tocnumwidth=2em,
]{abschnitt}
\DeclareNewSectionCommand[%
counterwithin=abschnitt,
level=7,
indent=\parindent,
beforeskip=-3.25ex plus -1ex minus -.2ex,
afterskip=1.5ex plus .2ex,
font=\normalsize,
tocindent=12em,
tocnumwidth=6em,
]{subabschnitt}

\makeatletter
\AfterPackage*{hyperref}{% hyperref die Ebenen ebenfalls beibringen
\let\toclevel@abschnitt\abschnitttocdepth
\let\toclevel@subabschnitt\subabschnitttocdepth
}
\makeatother

\usepackage{alnumsec}
\alnumsectionlevels{1}{chapter,section,subsection, subsubsection,paragraph,subparagraph,abschnitt,sub abschnitt}
\surroundarabic[(][)]{}{.}
\otherseparators{6}
\alnumsecstyle{nLRnldnl}
\setcounter{secnumdepth}{7}
\setcounter{tocdepth}{7}

\usepackage{hyperref}
\begin{document}
\tableofcontents

\chapter{Hier fängt alles an}

\section{Dann geht es weiter}

\subsection{Dann geht es noch weiter}

\subsubsection{Dann geht es immer noch weiter}

\paragraph{Dann geht es tiefer}

\subparagraph{und bald am Ziel}

\abschnitt{Vorletzter Abschnitt}

Vorletzter Text

\subabschnitt{Letzter Abschnitt}

Letzter TExt

\end{document}
Du hast da nämlich eine ganze Menge internen Code verwendet, bei dem nicht sicher ist, dass er zukünftig auch nur annähernd noch so funktionieren wird.

Scissorsweep
22-02-2015, 22:31
Danke Dir! Folgendes Minimalbeispiel funktioniert jetzt (habe es etwas modifiziert):


\documentclass[a4paper]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage{hyperref}

\DeclareNewSectionCommand[
style=section,
toclevel=6,level=6,
font=\usekomafont{disposition}\mdseries,
beforeskip=-3.25ex plus 1ex minus 0.2ex,
afterskip=1.5ex plus 0.2ex,
indent=0pt,
tocindent=7em,
tocnumwidth=4em,
counterwithin=subsubsection
]{abschnitt}

\DeclareNewSectionCommand[
style=section,
toclevel=7,level=7,
font=\usekomafont{disposition}\mdseries,
beforeskip=-3.25ex plus 1ex minus 0.2ex,
afterskip=1.5ex plus 0.2ex,
indent=0pt,
tocindent=7em,
tocnumwidth=4em,
counterwithin=subsubsection
]{subabschnitt}

\setcounter{secnumdepth}{\subabschnittnumdepth}
\setcounter{tocdepth}{\subabschnittnumdepth}


\usepackage{alnumsec}
\alnumsectionlevels{1}{chapter,section,subsection, subsubsection,paragraph,subparagraph,abschnitt,sub abschnitt}
\surroundarabic[(][)]{}{.}
\otherseparators{6}
\alnumsecstyle{nLRnldnl}
\setcounter{secnumdepth}{7}
\setcounter{tocdepth}{7}


\begin{document}
\tableofcontents

\chapter{Hier fängt alles an}

\section{Dann geht es weiter}

\subsection{Dann geht es noch weiter}

\subsubsection{Dann geht es immer noch weiter}

\paragraph{Dann geht es tiefer}

\subparagraph{und bald am Ziel}

\abschnitt{Vorletzter Abschnitt}

Vorletzter Text

\subabschnitt{Letzter Abschnitt}

Letzter TExt

\end{document}

klops
23-02-2015, 07:31
Lass das \usekomafont{disposition} weg. Das wird zusammen mit (bzw. nach) \raggedsection und \normalfont jedem der Fonts automatisch vorangestellt. Außerdem verstehe ich nicht, warum subabschnitt ebenfalls von subsubsection und nicht von abschnitt abhängt und überhaupt, warum die Ebene 6 (abschnitt) von der Ebene 3 (subsubsection) und nicht der Ebene 5 (subparagraph) abhängen soll. Außerdem fehlt in deinem Beispiel entscheidender Code, der dafür sorgt, dass hyperref die korrekte Ebene für die Bookmarks kennt. Ich glaube daher nicht, dass dieses Beispiel funktioniert.

Scissorsweep
23-02-2015, 08:23
Hi Klops, danke dass Du hilfst! Hab jetzt dein BSP auch zum Laufen gebracht, indem ich das
\usepackage{hyperref} nach oben vor die Modifizierungen platziert habe (vorher kam immer die undefined Fehlermeldung). Funktioniert alles!

Die Überschriftenabstände habe ich jetzt auch mit KOMA wie folgt modifiziert:


%---------------------------------------------------------------------------------------------------------
% Überschriften-Abstände
%---------------------------------------------------------------------------------------------------------
\RedeclareSectionCommands[
beforeskip=1\baselineskip,
afterskip=1\baselineskip
]{section,subsection,subsubsection,paragraph,subpar agraph,abschnitt,subabschnitt}

Und ist folgende Änderung der Einzüge im Index mit Hilfe von KOMA auch ok?


\RedeclareSectionCommand[tocindent=3em,tocnumwidth=1.7em]{subsection}

Besten Dank nochmal!!

klops
23-02-2015, 10:30
Was für eine undefined Fehlermeldung? In meinem Beispiel kommt keine Fehlermeldung. Und mit dem Verschieben von hyperref solle man vorsichtig sein. Das sollte normalerweise möglichst spät in der Präambel stehen.

Die Abstände im Inhaltsverzeichnis kann man so ändern. Welche Werte aber dabei ideal sind, hängt von den konkreten Umständen ab. Da kann ich mit den wenigen Daten eigentlich nichts dazu sagen.

Scissorsweep
23-02-2015, 15:37
Hi klops, stimmt: dein BSP funktioniert! Vielleicht hatte ich einen copy&paste-Wurm drin .. :) Danke nochmal für die Hilfe. Mit den KOMA Befehlen fällt es mir wesentlich leichter.