Anzeige:
Ergebnis 1 bis 8 von 8

Thema: PDF Lesezeichen Problem bei 8 Ebenen (alnumsec)

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.12.2014
    Beiträge
    10

    Unhappy PDF Lesezeichen Problem bei 8 Ebenen (alnumsec)

    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:

    Code:
    \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\nobreak}}
    \newcommand*{\scr@fnt@abschnitt}{\size@abschnitt}
    \newcommand*\l@abschnitt{\@dottedtocline{6}{2em}{2em}}
    \let\abschnittmark\@gobble
    \makeatother
    %
    \makeatletter \let\size@subabschnitt\normalsize
    \newcounter{subabschnitt}[abschnitt]
    \newcommand\subabschnitt{\@startsection{subabschnitt}{7}{\parindent}%
    	{-3.25ex\@plus -1ex \@minus -.2ex}%
    	{1.5ex \@plus .2ex}%
    	{\setlength{\parfillskip}{\z@ \@plus 1fil}%
    		\raggedsection\normalfont\sectfont\nobreak\size@subabschnitt\nobreak}}
    \newcommand*{\scr@fnt@subabschnitt}{\size@subabschnitt}
    \newcommand*\l@subabschnitt{\@dottedtocline{7}{12em}{6em}}
    \let\subabschnittmark\@gobble
    \makeatother
    
    
    \usepackage{alnumsec}
    \alnumsectionlevels{1}{chapter,section,subsection,subsubsection,paragraph,subparagraph,abschnitt,subabschnitt}
    \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}
    Geändert von Scissorsweep (22-02-2015 um 11:59 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    23.12.2014
    Beiträge
    10
    Problem gelöst:

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

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    Ich würde trotzdem dazu raten, die neuen Ebenen mit den dafür vorgesehenen KOMA-Script-Anweisungen zu definieren:
    Code:
    \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,subabschnitt}
    \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.

  4. #4
    Registrierter Benutzer
    Registriert seit
    23.12.2014
    Beiträge
    10
    Danke Dir! Folgendes Minimalbeispiel funktioniert jetzt (habe es etwas modifiziert):

    Code:
    \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,subabschnitt}
    \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}
    Geändert von Scissorsweep (22-02-2015 um 23:19 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    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.

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.12.2014
    Beiträge
    10
    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:

    Code:
    %---------------------------------------------------------------------------------------------------------
    % Überschriften-Abstände
    %---------------------------------------------------------------------------------------------------------
    \RedeclareSectionCommands[
    beforeskip=1\baselineskip,
    afterskip=1\baselineskip
    ]{section,subsection,subsubsection,paragraph,subparagraph,abschnitt,subabschnitt}
    Und ist folgende Änderung der Einzüge im Index mit Hilfe von KOMA auch ok?

    Code:
    \RedeclareSectionCommand[tocindent=3em,tocnumwidth=1.7em]{subsection}
    Besten Dank nochmal!!
    Geändert von Scissorsweep (23-02-2015 um 07:41 Uhr)

  7. #7
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    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.

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.12.2014
    Beiträge
    10
    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.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •