Mehrere Inhaltsverzeichnisse mit hyperref verlinkt

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


b166er
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Sa 26. Jan 2013, 00:17

Beitrag von b166er »

Vielen Dank für die Antwort.

Gibt es auch einen Weg die Schriftgröße im Inhaltsverzeichnis zu vergrößern ?

b166er
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Sa 26. Jan 2013, 00:17

Beitrag von b166er »

hallo,

ich bin gerade noch auf ein großen problem bei der sache gestoßen:

wenn ich folgendes benutze, also mit input dateien gliedere, taucht im inhaltsverzeichnis nur der inhalt von input{001.tex} auf.
der inhalt von input{002.tex} wird nicht im inhaltsverzeichnis berücksichtigt:
\documentclass[12pt,a4paper,oneside]{scrbook} 
\usepackage[ngerman]{babel} 
\usepackage[top=25mm, bottom=25mm, left=15mm, right=15mm]{geometry} 
\usepackage{blindtext} 

\usepackage{hyperref} 

\usepackage{harvard} 

\hypersetup{pdfborder = 0 0 0}%Kein Kasten um Links 


%Zeichen Kopierbarkeit 
\RequirePackage{cmap} 
%\usepackage[utf8]{inputenc} 
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{textcomp} 
%\usepackage{lmodern} 

\usepackage{pslatex} 
\renewcommand*\familydefault{\sfdefault} 

%----------------------------------% 
%----------------------------------% 
%----------------------------------% 
\usepackage{scrpage2} 

\pagestyle{scrheadings} 

\renewcommand*{\chapterpagestyle}{scrheadings}% pagestyle auf JEDER Seite 

\clearscrheadings 
\clearscrplain 
\clearscrheadfoot 

\setkomafont{pageheadfoot}{\normalfont\sffamily\bfseries} 
\setkomafont{pagefoot}{\normalfont\sffamily} 
%\setkomafont{pagenumber}{\normalfont\rmfamily\slshape} 

\automark[chapter]{section}% gibt den passenden text an \headmark 

\ihead[\headmark]{\headmark} 
\chead[]{\hyperlink{root}{START}} 
\ohead[]{\textbf{Dokumentversion: \today}} 
  
\ifoot[]{} 
\cfoot[\pagemark]{\pagemark} 
\ofoot[]{} 

\setheadsepline{0.5pt} 
\setfootsepline{0.5pt} 
\setfootbotline{0.5pt} 
%----------------------------------% 
%----------------------------------% 
%----------------------------------% 

\usepackage{tocstyle} 
\usetocstyle{standard} 


\setcounter{secnumdepth}{-2}% keine Gliederungsnummerierung 
\newcommand*\maintocdepth{0}% Tiefe für \maintoc 
\newcounter{subtochd}% subtoc heading 
\newcounter{subtocnumber}% subtoc-Nr 
\newcounter{subtocstartlevel}% subtoc: erste angezeigte Ebene 
\newcounter{subtocstoplevel}% subtoc: angezeigte Tiefe 
\newcommand*\maxtocleveldepth{5}% max. Tiefe für ein eigenes subtoc 

\newcommand*{\maintoc}{% bis \maintocdepth 
  \begingroup 
    \value{tocdepth}=\maintocdepth\relax 
    \tableofcontents 
  \endgroup 
} 

\newcommand*\notocshow{\value{tocdepth}=-9\relax}%TOC-Einträge ausblenden 
%werden in \subtoc überschrieben: 
\newcommand*\tocentrytmp{} 
\newcommand*\tocentrytmpb{} 
\newcommand\tocentryline{} 
\newcommand*\tocentrylevel{-2} 

\newif\ifsubtoc\subtocfalse% zur Unterscheidung subtoc/maintoc 
\newcommand*\subtocctrl[2]{% wird von \subtoc ins TOC geschrieben 
  \ifsubtoc % damit's keinen Einfluss aufs \maintoc nimmt 
    \ifnum\value{subtocnumber}=#1\relax 
% nur bei Übereinstimmung (passender Eintrag zum aufrufenden \subtoc) 
      \value{tocdepth}=#2\relax% TOC-Einträge einblenden 
    \else 
      \notocshow% sonst ausblenden 
    \fi 
  \fi 
}%\subtocctrl{subtoc}{depth} 
\newcommand*{\subtoc}[2][1]{% nur Ebene #2+1 bis #2+#1 
% damit man beim \subtoc-Aufruf die Ebene der davorliegenden 
% Gliederung angeben kann (0=chapter, 1=section etc.) 
% lässt sich vermutlich so auch leicht an section@level anpassen 
  \stepcounter{subtocnumber}% subtoc-Nr inkrementieren 
  \setcounter{subtocstartlevel}{#2}% 
  \stepcounter{subtocstartlevel}% subtoc-Startebene 
  \setcounter{subtocstoplevel}{#2}% 
  \addtocounter{subtocstoplevel}{#1}% subtoc-Tiefe 
  \ifnum\value{subtocstartlevel}>\maxtocleveldepth\relax 
    \typeout{Max. TOC level exceeded! (got \arabic{subtocstartlevel})}% 
%    \setcounter{subtocstartlevel}{\maxtocleveldepth}%ggf. begrenzen 
  \fi 
  \setcounter{subtochd}{\value{subtocstartlevel}}% 
  \stepcounter{subtochd}% 
  \ifnum\value{subtochd}<0 
    \setcounter{subtochd}{0}% 
  \fi 
  \ifnum\value{subtochd}>6 
    \setcounter{subtochd}{0}% 
  \fi 
  \addtocontents{toc}{\protect\subtocctrl{\arabic{subtocnumber}}{\arabic{subtocstoplevel}}}% \subctrl ins TOC 
  \ifcase\value{subtochd}\or %\subtoc-Überschrift 
    \chapter*{Liste der Auswahlpunkte}% 
  \or 
    \section*{Sub-Kategorie}% 
  \or 
    \subsection*{Thema}% 
  \or 
    \subsubsection*{Inhalt}% 
  \or 
    \paragraph*{Liste UUUU}~\par 
  \or 
    \subparagraph*{Liste UUUUU}~\par 
  \fi 
  \begingroup 
    \subtoctrue% \subtocctrl aktivieren 
    \let\tocentryline\contentsline% Kopie von \contentsline anlegen 
    \renewcommand\contentsline[1]{% ein Parameter ist hier Absicht! 
% Da bei fehlender Gliederungsnummerierung der vierte Parameter 
% nicht aussagekräftig ist (und ohne hyperref gäbe es eh nur drei), 
% wird hier nur der erste Parameter (chapter/section etc) ausgewertet: 
      \edef\tocentrytmpb{##1}% 
      \edef\tocentrytmp{part}% 
      \ifx\tocentrytmp\tocentrytmpb\relax 
        \edef\tocentrylevel{-1}% 
      \else 
        \edef\tocentrytmp{chapter}% 
        \ifx\tocentrytmp\tocentrytmpb\relax 
          \edef\tocentrylevel{0}% 
        \else 
          \edef\tocentrytmp{section}% 
          \ifx\tocentrytmp\tocentrytmpb\relax 
            \edef\tocentrylevel{1}% 
          \else 
            \edef\tocentrytmp{subsection}% 
            \ifx\tocentrytmp\tocentrytmpb\relax 
              \edef\tocentrylevel{2}% 
            \else 
              \edef\tocentrytmp{subsubsection}% 
              \ifx\tocentrytmp\tocentrytmpb\relax 
                \edef\tocentrylevel{3}% 
              \else 
                \edef\tocentrytmp{paragraph}% 
                \ifx\tocentrytmp\tocentrytmpb\relax 
                  \edef\tocentrylevel{4}% 
                \else 
                  \edef\tocentrytmp{subparagraph}% 
                  \ifx\tocentrytmp\tocentrytmpb\relax 
                    \edef\tocentrylevel{5}% 
                  \else 
                    \typeout{Unknown TOC level (\tocentrytmpb) encountered!}% 
                    \edef\tocentrylevel{99}% 
                  \fi% subparagraph 
                \fi% paragraph 
              \fi% subsubsection 
            \fi% subsection 
          \fi% section 
        \fi% chapter 
      \fi% part 
      \ifnum\value{subtocstartlevel}>\tocentrylevel\relax 
        % spätestens bei der nächst-höheren Gliederung subtoc beenden: 
        \notocshow 
      \fi 
      % den gesicherten \contentline-Befehl aufrufen. 
      % Den bereits verwendeten Parameter wieder einhängen, 
      % alle anderen Parameter greift \tocentryline automagisch: 
      \tocentryline{##1}% 
    }% 
    \notocshow% vorm \subtoc stand bestimmt schon was, das nicht ins 
    % \subtoc reinsoll 
    \showtoc{toc}% TOC ausgeben 
  \endgroup 
} 



\begin{document} 

\hypertarget{root}{} 

\maintoc 

%---------------------------------------------------------% 
%---------------------------------------------------------% 
%---------------------------------------------------------% 
%### 
\chapter{Kategorie 11} 
\subtoc{0} 
\newpage 
%### 

%### 
\section{Sub-Kategorie 11-11-11} 
\subtoc{1} 
\newpage 
%### 

\input{001.tex}

\input{002.tex}

%---------------------------------------------------------% 
%---------------------------------------------------------% 
%---------------------------------------------------------% 

%### 
\chapter{Kategorie 22} 
\subtoc{0} 
\newpage 
%### 

%### 
\section{Sub-Kategorie 22-22-00} 
\subtoc{1} 
\newpage 
%### 

%### 
\subsection{Thema Beispiel 001} 
\subtoc[1]{2}% Test \subtoc subsubsection (2+1) bis paragraph (2+2) %gelbe nummer gibt verzeichnis tiefe an. 
\newpage 
%###

%### 
\subsubsection{Punkt 001} 

\blindtext 

\subsubsection{Punkt 002} 

\blindtext 
%### 
%---------------------------------------------------------% 
%---------------------------------------------------------% 
%---------------------------------------------------------% 


\end{document} 
 
001.tex:
%### 
\subsection{Thema Beispiel 001} 
\subtoc{2} 
\newpage 
%### 

%### 
\subsubsection{Punkt 001} 

\blindtext 

\subsubsection{Punkt 002} 

\blindtext 
%###
002.tex:
%### 
\subsection{Thema Beispiel 002} 
\subtoc{2} 
\newpage 
%### 

%### 
\subsubsection{Punkt 001} 

\blindtext 

\subsubsection{Punkt 002} 

\blindtext 
%###


rais
Forum-Guru
Forum-Guru
Beiträge: 413
Registriert: Di 21. Sep 2010, 00:37

Beitrag von rais »

Hallo,
b166er hat geschrieben: ich bin gerade noch auf ein großen problem bei der sache gestoßen:

wenn ich folgendes benutze, also mit input dateien gliedere, taucht im inhaltsverzeichnis nur der inhalt von input{001.tex} auf.
der inhalt von input{002.tex} wird nicht im inhaltsverzeichnis berücksichtigt:
uups, da hab ich das \subtoc zu früh beendet.:o
Ändere mal die \subtocctrl-Definition zu
\newcommand*\subtocctrl[2]{% wird von \subtoc ins TOC geschrieben
  \ifsubtoc % damit's keinen Einfluss aufs \maintoc nimmt
    \ifnum\value{subtocnumber}=#1\relax
% nur bei Übereinstimmung (passender Eintrag zum aufrufenden \subtoc)
      \value{tocdepth}=#2\relax% TOC-Einträge einblenden
    \fi
  \fi
}%\subtocctrl{subtoc}{depth}
dann wird \subtoc n nicht mehr durch \subtoc n+1 beendet.

MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

b166er
Forum-Anfänger
Forum-Anfänger
Beiträge: 13
Registriert: Sa 26. Jan 2013, 00:17

Beitrag von b166er »

danke, nachdem ich den block ausgetauscht habe funktioniert es nun.
hier nochmal der vollständige funktionsfähige code:
\documentclass[12pt,a4paper,oneside]{scrbook}

\usepackage[ngerman]{babel}

\usepackage[top=25mm, bottom=25mm, left=10mm, right=10mm]{geometry}

\usepackage{blindtext}

%----------------------------------%
%----------------------------------%
%----------------------------------%

%pakete für seitenrahmen

\usepackage{calc}

\usepackage{eso-pic}

%----------------------------------%
%----------------------------------%
%----------------------------------%

\usepackage{hyperref}

\usepackage{harvard}

\hypersetup{pdfborder = 0 0 0} %Kein Kasten um Links

%Zeichen Kopierbarkeit
\RequirePackage{cmap}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
%\usepackage{lmodern}

\usepackage{pslatex}
\renewcommand*\familydefault{\sfdefault}

%----------------------------------%
%----------------------------------%
%----------------------------------%

\usepackage{scrpage2}

\pagestyle{scrheadings}

\renewcommand*{\chapterpagestyle}{scrheadings}% pagestyle auf JEDER Seite

\clearscrheadings
\clearscrplain
\clearscrheadfoot

\setkomafont{pageheadfoot}{\normalfont\sffamily\bfseries}
\setkomafont{pagefoot}{\normalfont\sffamily}
%\setkomafont{pagenumber}{\normalfont\rmfamily\slshape}

\automark[chapter]{section}% gibt den passenden text an \headmark

\ihead[\headmark]{\headmark}
\chead[]{\hyperlink{root}{START}}
\ohead[]{\textbf{Dokumentversion: \today}}
 
\ifoot[]{}
\cfoot[\pagemark]{\pagemark}
\ofoot[]{}

\setheadsepline{0.5pt}
\setfootsepline{0.5pt}
%\setfootbotline{0.5pt}

%----------------------------------%
%----------------------------------%
%----------------------------------%

\usepackage{tocstyle}

\usetocstyle{standard}

\setcounter{secnumdepth}{-2}% keine Gliederungsnummerierung
\newcommand*\maintocdepth{0}% Tiefe für \maintoc
\newcounter{subtochd}% subtoc heading
\newcounter{subtocnumber}% subtoc-Nr
\newcounter{subtocstartlevel}% subtoc: erste angezeigte Ebene
\newcounter{subtocstoplevel}% subtoc: angezeigte Tiefe
\newcommand*\maxtocleveldepth{5}% max. Tiefe für ein eigenes subtoc

\newcommand*{\maintoc}{% bis \maintocdepth
  \begingroup
    \value{tocdepth}=\maintocdepth\relax
    \tableofcontents
  \endgroup
}

\newcommand*\notocshow{\value{tocdepth}=-9\relax}%TOC-Einträge ausblenden
%werden in \subtoc überschrieben:
\newcommand*\tocentrytmp{}
\newcommand*\tocentrytmpb{}
\newcommand\tocentryline{}
\newcommand*\tocentrylevel{-2}

\newif\ifsubtoc\subtocfalse% zur Unterscheidung subtoc/maintoc

\newcommand*\subtocctrl[2]{% wird von \subtoc ins TOC geschrieben
  \ifsubtoc % damit's keinen Einfluss aufs \maintoc nimmt
    \ifnum\value{subtocnumber}=#1\relax
% nur bei Übereinstimmung (passender Eintrag zum aufrufenden \subtoc)
      \value{tocdepth}=#2\relax% TOC-Einträge einblenden
    \fi
  \fi
}%\subtocctrl{subtoc}{depth}

\newcommand*{\subtoc}[2][1]{% nur Ebene #2+1 bis #2+#1
% damit man beim \subtoc-Aufruf die Ebene der davorliegenden
% Gliederung angeben kann (0=chapter, 1=section etc.)
% lässt sich vermutlich so auch leicht an section@level anpassen
  \stepcounter{subtocnumber}% subtoc-Nr inkrementieren
  \setcounter{subtocstartlevel}{#2}%
  \stepcounter{subtocstartlevel}% subtoc-Startebene
  \setcounter{subtocstoplevel}{#2}%
  \addtocounter{subtocstoplevel}{#1}% subtoc-Tiefe
  \ifnum\value{subtocstartlevel}>\maxtocleveldepth\relax
    \typeout{Max. TOC level exceeded! (got \arabic{subtocstartlevel})}%
% \setcounter{subtocstartlevel}{\maxtocleveldepth}%ggf. begrenzen
  \fi
  \setcounter{subtochd}{\value{subtocstartlevel}}%
  \stepcounter{subtochd}%
  \ifnum\value{subtochd}<0
    \setcounter{subtochd}{0}%
  \fi
  \ifnum\value{subtochd}>6
    \setcounter{subtochd}{0}%
  \fi
  \addtocontents{toc}{\protect\subtocctrl{\arabic{subtocnumber}}{\arabic{subtocstoplevel}}}% \subctrl ins TOC
  \ifcase\value{subtochd}\or %\subtoc-Überschrift
    \chapter*{Liste der Auswahlpunkte}%
  \or
    \section*{Sub-Kategorie}%
  \or
    \subsection*{Thema}%
  \or
    \subsubsection*{Inhalt}%
  \or
    \paragraph*{Liste UUUU}~\par
  \or
    \subparagraph*{Liste UUUUU}~\par
  \fi
  \begingroup
    \subtoctrue% \subtocctrl aktivieren
    \let\tocentryline\contentsline% Kopie von \contentsline anlegen
    \renewcommand\contentsline[1]{% ein Parameter ist hier Absicht!
% Da bei fehlender Gliederungsnummerierung der vierte Parameter
% nicht aussagekräftig ist (und ohne hyperref gäbe es eh nur drei),
% wird hier nur der erste Parameter (chapter/section etc) ausgewertet:
      \edef\tocentrytmpb{##1}%
      \edef\tocentrytmp{part}%
      \ifx\tocentrytmp\tocentrytmpb\relax
        \edef\tocentrylevel{-1}%
      \else
        \edef\tocentrytmp{chapter}%
        \ifx\tocentrytmp\tocentrytmpb\relax
          \edef\tocentrylevel{0}%
        \else
          \edef\tocentrytmp{section}%
          \ifx\tocentrytmp\tocentrytmpb\relax
            \edef\tocentrylevel{1}%
          \else
            \edef\tocentrytmp{subsection}%
            \ifx\tocentrytmp\tocentrytmpb\relax
              \edef\tocentrylevel{2}%
            \else
              \edef\tocentrytmp{subsubsection}%
              \ifx\tocentrytmp\tocentrytmpb\relax
                \edef\tocentrylevel{3}%
              \else
                \edef\tocentrytmp{paragraph}%
                \ifx\tocentrytmp\tocentrytmpb\relax
                  \edef\tocentrylevel{4}%
                \else
                  \edef\tocentrytmp{subparagraph}%
                  \ifx\tocentrytmp\tocentrytmpb\relax
                    \edef\tocentrylevel{5}%
                  \else
                    \typeout{Unknown TOC level (\tocentrytmpb) encountered!}%
                    \edef\tocentrylevel{99}%
                  \fi% subparagraph
                \fi% paragraph
              \fi% subsubsection
            \fi% subsection
          \fi% section
        \fi% chapter
      \fi% part
      \ifnum\value{subtocstartlevel}>\tocentrylevel\relax
        % spätestens bei der nächst-höheren Gliederung subtoc beenden:
        \notocshow
      \fi
      % den gesicherten \contentline-Befehl aufrufen.
      % Den bereits verwendeten Parameter wieder einhängen,
      % alle anderen Parameter greift \tocentryline automatisch:
      \tocentryline{##1}%
    }%
    \notocshow% vorm \subtoc stand bestimmt schon was, das nicht ins
    % \subtoc reinsoll
    \showtoc{toc}% TOC ausgeben
  \endgroup
}


%SEITENRAHMEN
\makeatletter
\newlength{\x}\newlength{\y}
\newlength{\width}\newlength{\height}
\setlength{\x}{5mm}%HORIZONTALER ABSTAND
\setlength{\y}{5mm}%VERTIKALER ABSTAND
\setlength{\width}{\paperwidth-\x*2}
\setlength{\height}{\paperheight-\y*2}
\AddToShipoutPicture{\thicklines\put(\strip@pt\x,\strip@pt\y){\framebox(\strip@pt\width,\strip@pt\height){}}}
\makeatother

\begin{document}

\hypertarget{root}{}

\maintoc

%---------------------------------------------------------%
%---------------------------------------------------------%
%---------------------------------------------------------%
%###
\chapter{Kategorie 11}
\subtoc{0}
\newpage
%###

%###
\section{Sub-Kategorie 11-11-11}
\subtoc{1}
%###

\newpage

\input{001.tex}

\newpage

\input{002.tex}

%---------------------------------------------------------%
%---------------------------------------------------------%
%---------------------------------------------------------%

%###
\chapter{Kategorie 22}
\subtoc{0}
\newpage
%###

%###
\section{Sub-Kategorie 22-22-00}
\subtoc{1}
\newpage
%###

%###
\subsection{Thema Beispiel 001}
\subtoc[1]{2}% Test \subtoc subsubsection (2+1) bis paragraph (2+2) %gelbe nummer gibt verzeichnis tiefe an.
\newpage
%###

%###
\subsubsection{Punkt 001}

\blindtext

\subsubsection{Punkt 002}

\blindtext
%###
%---------------------------------------------------------%
%---------------------------------------------------------%
%---------------------------------------------------------%


\end{document}
001.tex:
%###
\subsection{Thema Beispiel 001}
\subtoc{2}
\newpage
%###

%###
\subsubsection{Punkt 001}

\blindtext

\subsubsection{Punkt 002}

\blindtext
%###
002.tex
%###
\subsection{Thema Beispiel 002}
\subtoc{2}
\newpage
%###

%###
\subsubsection{Punkt 001}

\blindtext

\subsubsection{Punkt 002}

\blindtext
%###

Antworten