Seite 1 von 2

Mehrere Inhaltsverzeichnisse mit hyperref verlinkt

Verfasst: Sa 26. Jan 2013, 00:43
von b166er
Hallo,

ich habe ein Problem bei der Realisierung des folgenden Vorhabens:

Ich möchte einen sehr umfangreichen Katalog erstellen und dafür eine Art Vorauswahl erstellen die wie folgt gegliedert sein sollte:

Hauptinhaltsverzeichnis mit Hauptthemen =>
UnterInhaltsverzeichnis mit Unterthemen eines Hauptthemas =>
UnterUnterInhaltsverzeichnis mit UnterUnterthemen eines Unterthemas=>
Inhaltsverzeichnis mit Inhalten des UnterUnterthemas.

Der Selektionsprozess sieht also wie folgt aus.
Ich starte das PDF Dokument und klicke auf ein Hauptthema das mich interessiert, dann werde ich auf eine Seite geleitet auf der die Unterthemen dieses Hauptthemas aufgelistet sind. Dann klicke ich auf eines dieser Unterthemen das mich interessiert und werde auf eine Seite geleitet auf der die UnterUnterThemen dieses Unterthemas aufgelistet sind.
Dann klicke ich auf eines dieser UnterUnterthemen das mich interessiert und werde letztendlich auf eine Seite geleitet auf der das Inhaltsverzeichnis dieses UnterUnterThemas ist, das führt mich nun zum eigentlichen Text.

Mit Hilfe eines alten Threads konnte ich schon etwas hinbekommen was dem gewünschten schon sehr nahe kommt leider schaffe ich es nicht noch weitere Selektionsstufen einzubauen. Der alte Thread ist:

http://www.golatex.de/mehrere-inhaltsve ... t2153.html

Ausserdem möchte keine Nummerierung sämtlicher Einträge.

Und mein Beispiel was ich daraus konstruierte, (ohne genau zu wissen was der code macht), das aber noch nicht die vollständigen gewünschten Funktionen hat ist folgendes:
\documentclass[12pt, ngerman, a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pslatex}
\usepackage{amsmath, amsfonts, amssymb, amstext}
\usepackage[top=7mm, bottom=20mm, left=16mm, right=16mm]{geometry}
\usepackage{graphicx}
\everymath{\displaystyle}
\usepackage[colorlinks=false]{hyperref}
\renewcommand*\familydefault{\sfdefault}
\setlength\parindent{0pt}
\usepackage{color}
\fboxrule=0.3mm
\usepackage{tocstyle}
\usetocstyle{standard}

\newcounter{normaltocdepth}

\newcommand*{\maintoc}
{\begingroup
\setcounter{normaltocdepth}{\value{tocdepth}}
\renewcommand*{\startzweinull}{\setcounter{tocdepth}{1}}
\renewcommand*{\startfuenfdrei}{\setcounter{tocdepth}{1}}
\renewcommand*{\afterzweinull}{\setcounter{tocdepth}{\value{normaltocdepth}}}
\renewcommand*{\afterfuenfdrei}{\setcounter{tocdepth}{\value{normaltocdepth}}}
\tableofcontents
\endgroup}

\newcommand*{\startzweinull}{\addtocontents{toc}{\protect\startzweinull}}
\newcommand*{\afterzweinull}{\addtocontents{toc}{\protect\afterzweinull}}

\newcommand*{\startfuenfdrei}{\addtocontents{toc}{\protect\startfuenfdrei}}
\newcommand*{\afterfuenfdrei}{\addtocontents{toc}{\protect\afterfuenfdrei}}


\newcommand*{\zweinulltoc}
{\begingroup
\setcounter{normaltocdepth}{\value{tocdepth}}
\setcounter{tocdepth}{-2}
\renewcommand*{\startzweinull}{\setcounter{tocdepth}{\value{normaltocdepth}}}
\renewcommand*{\afterzweinull}{\setcounter{tocdepth}{-2}}
\showtoc{toc}
\setcounter{tocdepth}{\value{normaltocdepth}}
\endgroup}

\newcommand*{\fuenfdreitoc}
{\begingroup
\setcounter{normaltocdepth}{\value{tocdepth}}
\setcounter{tocdepth}{-2}
\renewcommand*{\startfuenfdrei}{\setcounter{tocdepth}{\value{normaltocdepth}}}
\renewcommand*{\afterfuenfdrei}{\setcounter{tocdepth}{-2}}
\showtoc{toc}
\setcounter{tocdepth}{\value{normaltocdepth}}
\endgroup}



\begin{document}



\newpage

\maintoc



\newpage

\section{Hauptthema 20}

\zweinulltoc

\newpage

\startzweinull

\subsection{Unterthema 001}

Hier noch ein Inhaltsverzeichnis von Unterthema 001 mit den Einträgen:

\vspace{5mm}

UnterUnterthema 001 - Wenn ich auf diesen Eintrag klicke möchte ich auf ein ganz normales inhaltsverzeichnis geleitet werden was den letztendlichen inhalt von unterunterthema 001 anzeigt.

\vspace{5mm}

UnterUnterthema 002

\vspace{5mm}

UnterUnterthema 003

\vspace{5mm}

usw.

\afterzweinull



\newpage

\section{Hauptthema 53}

\fuenfdreitoc

\newpage

\startfuenfdrei

\subsection{Unterthema 001}

Hier noch ein Inhaltsverzeichnis von Unterthema 001 mit den Einträgen:

UnterUnterthema 001

UnterUnterthema 002

UnterUnterthema 003

usw.

\afterfuenfdrei



\end{document}

Ich hoffe jemand kann mir helfen, ich glaube ich habe das Problem komplizierter ausgedrückt als es ist, letztendlich brauche ich nur mehrere Stufen der Vorauswahl bis ich zum eigentliche Inhalt komme, das Versuche ich über mit hyperref verlinkte Inhaltsverzeichnisse zu lösen, da es nach meinem Wissen in Latex kein Auswahl Menü gibt. Wenn jemand bessere Ansätze hat bin ich sehr dankbar für Vorschläge bzw. Beispiele.

Verfasst: Sa 26. Jan 2013, 12:55
von Gast
Klingt für mich ein wenig nach einem Anwendungsfall für minitoc, wobei ich nicht weiß, ob das so viele Verschachtelungen erlaubt.

Verfasst: Sa 26. Jan 2013, 15:44
von b166er
Hier hab ich nochmal ein Beispiel das genau die Struktur zeigt wie ich sie haben möchte, blos hab ich hier keine Inhaltsverzeichnisse verschachtelt. Ich hoffe jemand kann mir zeigen wie ich das mit verschachtelten Inhaltsverzeichnissen machen.
\documentclass[12pt,a4paper]{article}
 
\usepackage[latin1]{inputenc}
 
\usepackage{hyperref}
 
\begin{document}







\section{Haupthemen}


\hyperlink{HT001}{\textbf{HauptThema 1}}

\newpage

\section{HauptThema 1}

\hypertarget{HT001}{}

\vspace{5mm}

\hyperlink{UT001}{UnterThema 1}

\vspace{5mm}

\vdots

\vspace{5mm}

\vdots



\newpage

\section{UnterThema 1}

\hypertarget{UT001}{}

\vspace{5mm}

\hyperlink{UUT001}{UnterUnterThema 1}

\vspace{5mm}

\vdots

\vspace{5mm}

\vdots




\newpage

\section{UnterUnterThema 1}

\hypertarget{UUT001}{}

Hier soll ein normales Inhaltsverzeichnis hin mit dem Inhalt von UnterUnterThema 1
\vspace{5mm}

\vdots

\vspace{5mm}

\vdots




\end{document}

Verfasst: Sa 26. Jan 2013, 16:13
von rais
ein möglicher Ansatz:
\documentclass[12pt, ngerman, a4paper]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{tocstyle}
\usetocstyle{standard}

\newcounter{normaltocdepth}
\setcounter{normaltocdepth}{\value{tocdepth}}

\newcommand*{\maintoc}{% nur section-Ebene
  \begingroup
    \value{tocdepth}=1\relax
    \tableofcontents
  \endgroup
}

\newcommand*\notocshow{\value{tocdepth}=-9\relax}
\newcommand*\tocentrytmp{}
\newcommand*\tocentrytmpb{}
\newcommand\tocentryline{}
\newcommand*{\subtoc}{% nur subsection-Ebene
  \subsection*{Inhalt (subtoc)}
  \begingroup
    \let\tocentryline\contentsline
    \renewcommand\contentsline[4]{%
      \edef\tocentrytmp{section}%
      \edef\tocentrytmpb{##1}%
      \ifx\tocentrytmp\tocentrytmpb\relax
        \edef\tocentrytmp{section.\theHsection}%
        \edef\tocentrytmpb{##4}%
        \ifx\tocentrytmp\tocentrytmpb\relax
          \value{tocdepth}=2\relax
        \else
          \notocshow
        \fi
      \else
        \tocentryline{##1}{##2}{##3}{##4}%
      \fi
    }%
    \notocshow
    \showtoc{toc}
  \endgroup
}

\newcommand*{\subsubtoc}{% ab subsubsection-Ebene
  \subsubsection*{Inhalt (subsubtoc)}
  \begingroup
    \let\tocentryline\contentsline
    \renewcommand\contentsline[4]{%
      \edef\tocentrytmpb{##1}%
      \edef\tocentrytmp{section}%
      \ifx\tocentrytmp\tocentrytmpb\relax
        \notocshow
      \else
        \edef\tocentrytmp{subsection}%
        \ifx\tocentrytmp\tocentrytmpb\relax
          \edef\tocentrytmp{subsection.\theHsubsection}%
          \edef\tocentrytmpb{##4}%
          \ifx\tocentrytmp\tocentrytmpb\relax
            \value{tocdepth}=\value{normaltocdepth}\relax
          \else
            \notocshow
          \fi
        \else
          \tocentryline{##1}{##2}{##3}{##4}%
        \fi
      \fi
    }%
    \notocshow
    \showtoc{toc}
  \endgroup
}


\begin{document}
\maintoc
\newpage

\section{Hauptthema}
\subtoc
\newpage

\subsection{Unterthema 001}
\subsubtoc

\subsubsection{UnterUnterthema 001} - Wenn ich auf diesen Eintrag klicke möchte ich auf ein ganz normales inhaltsverzeichnis geleitet werden was den letztendlichen inhalt von unterunterthema 001 anzeigt.

\subsubsection{UnterUnterthema 002}

\subsubsection{UnterUnterthema 003}

\newpage

\section{Hauptthema 2}

\subtoc

\newpage

\subsection{Unterthema 201}
\subsubtoc

\subsubsection{UnterUnterthema 201}

\subsubsection{UnterUnterthema 202}

\subsubsection{UnterUnterthema 203}

\end{document}
Hat allerdings den Haken (wenn nicht mehrere), daß es nur in der hier angegebenen Konstellation (kaptellose Klasse mit hyperref und secnumdepth>=2) funktioniert.

MfG
Rainer

Verfasst: Sa 26. Jan 2013, 17:58
von b166er
rais hat geschrieben:ein möglicher Ansatz:
\documentclass[12pt, ngerman, a4paper]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{tocstyle}
\usetocstyle{standard}

\newcounter{normaltocdepth}
\setcounter{normaltocdepth}{\value{tocdepth}}

\newcommand*{\maintoc}{% nur section-Ebene
  \begingroup
    \value{tocdepth}=1\relax
    \tableofcontents
  \endgroup
}

\newcommand*\notocshow{\value{tocdepth}=-9\relax}
\newcommand*\tocentrytmp{}
\newcommand*\tocentrytmpb{}
\newcommand\tocentryline{}
\newcommand*{\subtoc}{% nur subsection-Ebene
  \subsection*{Inhalt (subtoc)}
  \begingroup
    \let\tocentryline\contentsline
    \renewcommand\contentsline[4]{%
      \edef\tocentrytmp{section}%
      \edef\tocentrytmpb{##1}%
      \ifx\tocentrytmp\tocentrytmpb\relax
        \edef\tocentrytmp{section.\theHsection}%
        \edef\tocentrytmpb{##4}%
        \ifx\tocentrytmp\tocentrytmpb\relax
          \value{tocdepth}=2\relax
        \else
          \notocshow
        \fi
      \else
        \tocentryline{##1}{##2}{##3}{##4}%
      \fi
    }%
    \notocshow
    \showtoc{toc}
  \endgroup
}

\newcommand*{\subsubtoc}{% ab subsubsection-Ebene
  \subsubsection*{Inhalt (subsubtoc)}
  \begingroup
    \let\tocentryline\contentsline
    \renewcommand\contentsline[4]{%
      \edef\tocentrytmpb{##1}%
      \edef\tocentrytmp{section}%
      \ifx\tocentrytmp\tocentrytmpb\relax
        \notocshow
      \else
        \edef\tocentrytmp{subsection}%
        \ifx\tocentrytmp\tocentrytmpb\relax
          \edef\tocentrytmp{subsection.\theHsubsection}%
          \edef\tocentrytmpb{##4}%
          \ifx\tocentrytmp\tocentrytmpb\relax
            \value{tocdepth}=\value{normaltocdepth}\relax
          \else
            \notocshow
          \fi
        \else
          \tocentryline{##1}{##2}{##3}{##4}%
        \fi
      \fi
    }%
    \notocshow
    \showtoc{toc}
  \endgroup
}


\begin{document}
\maintoc
\newpage

\section{Hauptthema}
\subtoc
\newpage

\subsection{Unterthema 001}
\subsubtoc

\subsubsection{UnterUnterthema 001} - Wenn ich auf diesen Eintrag klicke möchte ich auf ein ganz normales inhaltsverzeichnis geleitet werden was den letztendlichen inhalt von unterunterthema 001 anzeigt.

\subsubsection{UnterUnterthema 002}

\subsubsection{UnterUnterthema 003}

\newpage

\section{Hauptthema 2}

\subtoc

\newpage

\subsection{Unterthema 201}
\subsubtoc

\subsubsection{UnterUnterthema 201}

\subsubsection{UnterUnterthema 202}

\subsubsection{UnterUnterthema 203}

\end{document}
Hat allerdings den Haken (wenn nicht mehrere), daß es nur in der hier angegebenen Konstellation (kaptellose Klasse mit hyperref und secnumdepth>=2) funktioniert.

MfG
Rainer
Hallo,

vielen Dank für deine Mühe. Das ist schon fast das was ich brauche. Jedoch gibt es noch eine Sache. Ich habe die Fragen in an die entsprechende Stelle im folgenden Code geschrieben:
Ausserdem möchte ich die Nummerierung der gliederungspunkt deaktivieren.
\documentclass[12pt, ngerman, a4paper]{article}

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

\usepackage[latin1]{inputenc}

\usepackage{hyperref}

\usepackage{tocstyle}

\usepackage{blindtext}

\usetocstyle{standard}

\newcounter{normaltocdepth}

\setcounter{normaltocdepth}{\value{tocdepth}}

\newcommand*{\maintoc}{% nur section-Ebene
  \begingroup
    \value{tocdepth}=1\relax
    \tableofcontents
  \endgroup
}

\newcommand*\notocshow{\value{tocdepth}=-9\relax}
\newcommand*\tocentrytmp{}
\newcommand*\tocentrytmpb{}
\newcommand\tocentryline{}
\newcommand*{\subtoc}{% nur subsection-Ebene
  \subsection*{Liste der Sub-Auswahlpunkte}
  \begingroup
    \let\tocentryline\contentsline
    \renewcommand\contentsline[4]{%
      \edef\tocentrytmp{section}%
      \edef\tocentrytmpb{##1}%
      \ifx\tocentrytmp\tocentrytmpb\relax
        \edef\tocentrytmp{section.\theHsection}%
        \edef\tocentrytmpb{##4}%
        \ifx\tocentrytmp\tocentrytmpb\relax
          \value{tocdepth}=2\relax
        \else
          \notocshow
        \fi
      \else
        \tocentryline{##1}{##2}{##3}{##4}%
      \fi
    }%
    \notocshow
    \showtoc{toc}
  \endgroup
}

\newcommand*{\subsubtoc}{% ab subsubsection-Ebene
  \subsubsection*{Liste der Sub-Sub-Auswahlpunkte}
  \begingroup
    \let\tocentryline\contentsline
    \renewcommand\contentsline[4]{%
      \edef\tocentrytmpb{##1}%
      \edef\tocentrytmp{section}%
      \ifx\tocentrytmp\tocentrytmpb\relax
        \notocshow
      \else
        \edef\tocentrytmp{subsection}%
        \ifx\tocentrytmp\tocentrytmpb\relax
          \edef\tocentrytmp{subsection.\theHsubsection}%
          \edef\tocentrytmpb{##4}%
          \ifx\tocentrytmp\tocentrytmpb\relax
            \value{tocdepth}=\value{normaltocdepth}\relax
          \else
            \notocshow
          \fi
        \else
          \tocentryline{##1}{##2}{##3}{##4}%
        \fi
      \fi
    }%
    \notocshow
    \showtoc{toc}
  \endgroup
}


\begin{document}

\maintoc


\newpage

\section{Auswahlpunkt-01}

\subtoc


\newpage

\subsection{Sub-Auswahlpunkt-01}

\subsubtoc


\newpage

\subsubsection{Sub-Sub-Auswahlpunkt-01} 

hier startet erst der eigentliche inhalt. die schritte davor sollten nur zur navigation dienen.

hier sollte auch ein inhaltsverzeichnis sein, wo der inhalt von sub sub auswahlpunkt 01 aufgeführt ist.

leider bin ich hier auch schon auf sub sub section ebene und habe damit keine gliederungsmöglichkeiten mehr für den eigentlichen inhalt.

\vspace{5mm}

\blindtext



\newpage

\section{Auswahlpunkt-02}

\subtoc


\newpage

\subsection{Sub-Auswahlpunkt-01}

\subsubtoc


\newpage

\subsubsection{Sub-Sub-Auswahlpunkt-01} 

\vspace{5mm}

\blindtext

\end{document}
 

Verfasst: So 27. Jan 2013, 11:01
von Epllus
Du solltest dir noch einige Einsteigertexte durchlesen, dort erfährst du, dass es auch noch \paragraph{} und \subparagraph{} gibt.

Ich habe den Befehl \paragraphtoc hinzugefügt, damit müsste dein Vorhaben realisierbar sein.
Das mit der Nummerierung ist ein Problem (jedenfalls bei mir), hab jetzt leider keine Zeit darauf genauer einzugehen.
\documentclass[12pt, ngerman, a4paper]{article} 

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

\usepackage[latin1]{inputenc} 

\usepackage{hyperref} 

\usepackage{tocstyle} 

\usepackage{blindtext} 

\usetocstyle{standard} 

%\setcounter{secnumdepth}{5} 	% Wenn \subparagraph verwendet wird, aktivieren.
\setcounter{tocdepth}{5}		


\newcounter{normaltocdepth} 
\setcounter{normaltocdepth}{\value{tocdepth}} 

\newcommand*{\maintoc}{% nur section-Ebene 
  \begingroup 
    \value{tocdepth}=1\relax 
    \tableofcontents 
  \endgroup 
} 

\newcommand*\notocshow{\value{tocdepth}=-9\relax} 
\newcommand*\tocentrytmp{} 
\newcommand*\tocentrytmpb{} 
\newcommand\tocentryline{} 

\newcommand*{\subtoc}{% nur subsection-Ebene 
  \subsection*{Liste der Sub-Auswahlpunkte} 
  \begingroup 
    \let\tocentryline\contentsline 
    \renewcommand\contentsline[4]{% 
      \edef\tocentrytmp{section}% 
      \edef\tocentrytmpb{##1}% 
      \ifx\tocentrytmp\tocentrytmpb\relax 
        \edef\tocentrytmp{section.\theHsection}% 
        \edef\tocentrytmpb{##4}% 
        \ifx\tocentrytmp\tocentrytmpb\relax 
          \value{tocdepth}=2\relax 
        \else 
          \notocshow 
        \fi 
      \else 
        \tocentryline{##1}{##2}{##3}{##4}% 
      \fi 
    }% 
    \notocshow 
    \showtoc{toc} 
  \endgroup 
} 

\newcommand*{\subsubtoc}{% nur subsubsection-Ebene 
  \subsubsection*{Liste der Sub-Sub-Auswahlpunkte} 
  \begingroup 
    \let\tocentryline\contentsline 
    \renewcommand\contentsline[4]{% 
      \edef\tocentrytmpb{##1}% 
      \edef\tocentrytmp{section}% 
      \ifx\tocentrytmp\tocentrytmpb\relax 
        \notocshow 
      \else 
        \edef\tocentrytmp{subsection}% 
        \ifx\tocentrytmp\tocentrytmpb\relax 
          \edef\tocentrytmp{subsection.\theHsubsection}% 
          \edef\tocentrytmpb{##4}% 
          \ifx\tocentrytmp\tocentrytmpb\relax 
            \value{tocdepth}=3\relax 
          \else 
            \notocshow 
          \fi 
        \else 
          \tocentryline{##1}{##2}{##3}{##4}% 
        \fi 
      \fi 
    }% 
    \notocshow 
    \showtoc{toc} 
  \endgroup 
} 

\newcommand*{\paragraphtoc}{% nur paragraph-Ebene 
  \subsubsection*{Liste der Paragraph-Auswahlpunkte} 
  \begingroup 
    \let\tocentryline\contentsline 
    \renewcommand\contentsline[4]{% 
      \edef\tocentrytmpb{##1}% 
      \edef\tocentrytmp{section}% 
      \ifx\tocentrytmp\tocentrytmpb\relax 
        \notocshow 
      \else 
        \edef\tocentrytmp{subsubsection}% 
        \ifx\tocentrytmp\tocentrytmpb\relax 
          \edef\tocentrytmp{subsubsection.\theHsubsubsection}% 
          \edef\tocentrytmpb{##4}% 
          \ifx\tocentrytmp\tocentrytmpb\relax 
            \value{tocdepth}=4\relax 
          \else 
            \notocshow 
          \fi 
        \else 
          \tocentryline{##1}{##2}{##3}{##4}% 
        \fi 
      \fi 
    }% 
    \notocshow 
    \showtoc{toc} 
  \endgroup 
} 

\newcommand*{\subparagraphtoc}{% nur subparagraph-Ebene % \setcounter{secnumdepht}{5} muss aktiviert werden (siehe oben)
  \subsubsection*{Liste der Sub-Paragraph-Auswahlpunkte} 
  \begingroup 
    \let\tocentryline\contentsline 
    \renewcommand\contentsline[4]{% 
      \edef\tocentrytmpb{##1}% 
      \edef\tocentrytmp{section}% 
      \ifx\tocentrytmp\tocentrytmpb\relax 
        \notocshow 
      \else 
        \edef\tocentrytmp{paragraph}% 
        \ifx\tocentrytmp\tocentrytmpb\relax 
          \edef\tocentrytmp{paragraph.\theHparagraph}% 
          \edef\tocentrytmpb{##4}% 
          \ifx\tocentrytmp\tocentrytmpb\relax 
            \value{tocdepth}=5\relax 
          \else 
            \notocshow 
          \fi 
        \else 
          \tocentryline{##1}{##2}{##3}{##4}% 
        \fi 
      \fi 
    }% 
    \notocshow 
    \showtoc{toc} 
  \endgroup 
} 




\begin{document} 

\maintoc 


\newpage 

\section{Auswahlpunkt-01} 

\subtoc 


\newpage 

\subsection{Sub-Auswahlpunkt-01} 

\subsubtoc 


\newpage 

\subsubsection{Sub-Sub-Auswahlpunkt-01} 

hier startet erst der eigentliche inhalt. die schritte davor sollten nur zur navigation dienen. 

hier sollte auch ein inhaltsverzeichnis sein, wo der inhalt von sub sub auswahlpunkt 01 aufgeführt ist. 

leider bin ich hier auch schon auf sub sub section ebene und habe damit keine gliederungsmöglichkeiten mehr für den eigentlichen inhalt. 
\paragraphtoc

\newpage
\paragraph{Paragraph-01}

\blindtext 



\newpage 

\section{Auswahlpunkt-02} 

\subtoc 


\newpage 

\subsection{Sub-Auswahlpunkt-01} 

\subsubtoc 


\newpage 

\subsubsection{Sub-Sub-Auswahlpunkt-01} 

\paragraphtoc
\newpage
\paragraph{Paragraph-01}
\blindtext 

\end{document} 
Hoffe es hilft,
Epllus

Verfasst: So 27. Jan 2013, 17:41
von b166er
hallo,

danke die struktur stimmt jetzt auf jedenfall schonmal.

ich habe versucht die nummerierung mit dem kommando:

\setcounter{secnumdepth}{-1}

jedoch zeigter er dann keine einträge mehr in den inhaltsverzeichnissen an.

wie entferne ich die nummerierung ?

und kann man das ganze nicht in der book klasse auf part ebene starten ?

also

ein inhaltsverzeichnis mit parts
ein inhaltsverzeichnis mit chapters
ein inhaltsverzeichnis mit sections
ein inhaltsverzeichnis mit subsections

Verfasst: So 27. Jan 2013, 23:22
von rais
Hallo,
b166er hat geschrieben: ich habe versucht die nummerierung mit dem kommando:

\setcounter{secnumdepth}{-1}

jedoch zeigter er dann keine einträge mehr in den inhaltsverzeichnissen an.

wie entferne ich die nummerierung ?
Das war gar nicht soo einfach: Der vierte Parameter des \contentsline-Befehls, den ich für die Auswertung `Start (sub)TOC-Anzeige' hergenommen hab, sieht bei abgeschalteter Nummerierung anders aus (section*.Nummer) -- aber es geht ja auch anders (s.u.)
b166er hat geschrieben: und kann man das ganze nicht in der book klasse auf part ebene starten ?
\part nimmt normalerweise eine Seite für sich ein; theoretisch wäre das mit dem unten stehenden Code aber auch machbar (hier mit \chapter abwärts).
Aber schau erstmal, ob es so noch andere Ungereimtheiten gibt:
\documentclass[12pt, ngerman, a4paper]{book}
\usepackage[top=10mm, bottom=10mm, left=10mm, right=10mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{tocstyle}
\usetocstyle{standard}
\usepackage{hyperref}

\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*{Liste der Sub-Auswahlpunkte}%
  \or
    \subsection*{Liste der Sub-Sub-Auswahlpunkte}%
  \or
    \subsubsection*{Liste der Sub-Sub-Sub-Auswahlpunkte}%
  \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}
\maintoc

\chapter{Auswahlpunkt-01}
\subtoc{0}

\section{Sub-Auswahlpunkt-01}
\subtoc{1}

\subsection{Sub-Sub-Auswahlpunkt-01}
\subtoc{2}
\subsubsection{foo}
\paragraph{foo-a}
\paragraph{foo-b}
\subsubsection{bar}
\paragraph{bar-a}
\paragraph{bar-b}
\chapter{Auswahlpunkt-02}
\subtoc{0}

\section{Sub-Auswahlpunkt-02}
\subtoc{1}
\subsection{Sub-Sub-Auswahlpunkt-02}
\subtoc[2]{2}% Test \subtoc subsubsection (2+1) bis paragraph (2+2)
\subsubsection{foo-02}
\paragraph{foo-02-a}
\paragraph{foo-02-b}
\subsubsection{bar-02}
\paragraph{bar-02-a}
\paragraph{bar-02-b}
\subparagraph{bla}
\subparagraph{blubb}
\end{document}
MfG
Rainer

Verfasst: Mo 28. Jan 2013, 23:26
von b166er
Hallo,

meinen Dank und mein Respekt für die Mühe die du dir gemacht hast.
Von der Funktionalität her, ist es genau das was ich brauche.
Ich habe jedoch noch einige Fragen.

Wie kann ich das Design der einzelnen Inhaltsverzeichnisstufen anpassen.

Zum Beispiel Schriftgröße des maintocs und der anderen usw.

Und für die Inhaltsverzeichnisse die nach maintoc folgen, würde ich gerne immer das gleiche Design haben und auch noch die Schriftgröße anpassen und andere Sachen. Besonders stört mich das immer weiter eingerückt wird, für die Inhaltsverzeichnisse nach dem maintoc würde ich gerne das design des ersten Verzeichnisses nach maintoc haben.

Und noch eine Frage es wird ja für jedes Verzeichnis eine Toc datei erstellt muss ich mir da keine Sorgen machen, dass es zuviele werden ?

Und wie kann ich mir die Option offen halten das er im inhaltsverzeichnis wenn ich das PDF mit Adobe Reader öffne auch noch auf Punkt 001 Punkt 002 anzeigt. Im moment hört er bei der Stufe Thema auf.

Hier ist das Beispiel von dir das ich an meine Bedürfnisse soweit angepasst habe:
\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
%###

%###
\subsection{Thema Beispiel 001}
\subtoc{2}
\newpage
%###

%###
\subsubsection{Punkt 001}

\blindtext

\subsubsection{Punkt 002}

\blindtext
%###
%---------------------------------------------------------%
%---------------------------------------------------------%
%---------------------------------------------------------%
%###
\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} 

Verfasst: Di 29. Jan 2013, 15:23
von rais
Hallo,
b166er hat geschrieben: Wie kann ich das Design der einzelnen Inhaltsverzeichnisstufen anpassen.

Zum Beispiel Schriftgröße des maintocs und der anderen usw.
mir ist nicht ganz klar, welche Schriftgröße(n) Du woran anpassen willst.
Die der subtoc-Überschriften könntest Du direkt im \ifcase anpassen, z.B. statt \chapter*, \section* etc. überall \minisec verwenden.
Evtl. lohnt auch ein Blick in `texdoc tocstyle'.
b166er hat geschrieben: Besonders stört mich das immer weiter eingerückt wird, für die Inhaltsverzeichnisse nach dem maintoc würde ich gerne das design des ersten Verzeichnisses nach maintoc haben.
Wie wär's ganz ohne Einrückung?
\usepackage[tocflat]{tocstyle}
b166er hat geschrieben: Und noch eine Frage es wird ja für jedes Verzeichnis eine Toc datei erstellt muss ich mir da keine Sorgen machen, dass es zuviele werden ?
Nö, es wird dafür nur ein Schreibregister verwendet, AFAICS.
b166er hat geschrieben: Und wie kann ich mir die Option offen halten das er im inhaltsverzeichnis wenn ich das PDF mit Adobe Reader öffne auch noch auf Punkt 001 Punkt 002 anzeigt. Im moment hört er bei der Stufe Thema auf.
Dafür hatte ich \maintocdepth vorgesehen, wenn Du da was anderes als 0 reinschreibst, wird das TOC bis zur entsprechenden Ebene auch ausgegeben. Wobei
\newcommand*\maintocdepth{2}% Tiefe für \maintoc
entspräche bei kapitelführenden Klassen dem voreingestellten tocdepth-Wert, dann könntest Du statt \maintoc auch gleich \tableofcontents im Text verwenden.

MfG
Rainer