Mehrere verschachtelte Inhaltsverzeichnisse

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Mehrere verschachtelte Inhaltsverzeichnisse

von MoonKid » Sa 5. Aug 2017, 12:59

Super! Vielen Dank für die Erklärung. Jetzt hab ich es auch verstanden - denk ich. ;)

Das mit der Protkoll-Überschrift hatte ich nicht zu Ende gedacht. Habs jetzt so gemacht.
...
% Protokol im Anhang
\addpart{Protokoll}
\useprotocoltocs
\listofptocs
\blinddocument % #3
\subsection{Letzte Section im Protokoll}
% wieder Anhang
\useappendixtocs
...

von esdd » Fr 4. Aug 2017, 20:31

Die Überschriften nehmen jeweils einen Eintrag in die Datei mit der Endung \ext@toc vor. Wenn \ext@toc den Wert toc hat, erfolgt der Eintrag also in die .toc Datei und die Überschrift taucht dann (natürlich abhängig vom Wert von tocdepth) im Hauptinhaltsverzeichnis auf.

Ist der Wert dagegen atoc, dann kommt der Eintrag dagegen in die Datei mit der Endung .atoc. Analoges gilt für ptoc.

Den Wechsel der Werte von \ext@toc nimmst Du mit den \use...tocs Befehl vor, da diese \ext@toc jeweils passend umdefinieren.

Du musst \useappendixtocs also vor der ersten Überschrift positionieren, die im Anhangsverzeichnis stehen soll. \useprotocoltocs vor der ersten Überschrift, die statt dessen im Protokollverzeichnis stehen soll. Und dann wieder \useappendixtocs vor der ersten Überschrift, die dann wieder im Anhangsverzeichnis auftauchen soll.

Das wäre dann vermutlich etwas wie
\documentclass[listof=totoc]{scrartcl} 
\usepackage{xltxtra} 
\defaultfontfeatures{Mapping=tex-text} 
\usepackage{polyglossia} 
\setdefaultlanguage[spelling=new]{german} 
\usepackage{mwe}% minimal working example 
\usepackage{hyperref}
\usepackage{bookmark}

\DeclareNewTOC[% 
    owner=\jobname, 
    listname={Inhalt des Anhangs},% Titel des Verzeichnisses 
]{atoc}% Dateierweiterung (a=appendix, toc=table of contents) 
\DeclareNewTOC[% 
    owner=\jobname,
    listname={Inhalt des Protokolls}, 
]{ptoc}% Dateierweiterung (p=protocol, top=table of contents) 

\makeatletter 
\newcommand*{\useappendixtocs}{% 
  \renewcommand*{\ext@toc}{atoc}% 
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert 
    \hypersetup{bookmarkstype=atoc}% 
  }% 
} 
\newcommand*{\useprotocoltocs}{% 
  \renewcommand*{\ext@toc}{ptoc}% 
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert 
    \hypersetup{bookmarkstype=ptoc}% 
  }% 
}
\newcommand*{\usestandardtocs}{% 
  \renewcommand*{\ext@toc}{toc}% 
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert 
    \hypersetup{bookmarkstype=toc}% 
  }% 
} 
\ifundefinedorrelax{ext@toc}{% damit es auch mit  älteren KOMA-Script Versionen funktioniert
  \newcommand*{\ext@toc}{toc} 
  \renewcommand{\addtocentrydefault}[3]{% 
    \expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}% 
  } 
}{} 
\makeatother 

\begin{document} 
% Hauptdokument 
\tableofcontents 
\blinddocument % #1 
% Anhang 
\appendix
\addpart{\appendixname} 
  \useappendixtocs% ab hier Eintrag ins Anhangsverzeichnis 
  \listofatocs 
  \blinddocument % #2 
  % Protokoll
  \section{Protokoll}
    \useprotocoltocs% ab hier Eintrag ins Protokollverzeichnis
    \listofptocs
    \blinddocument % #3 
    \section{Letzte Section im Protokoll}
  % wieder Anhang
  \useappendixtocs% ab hier wieder Eintrag ins Anhangsverzeichnis
  \section{Section im Anhang (zweiter Teil)} 
  \blinddocument % #4 
\end{document}
Wobei ich den Abschnitt Protokoll dann eher in Unterabschnitte unterteilen würde:
\documentclass[listof=totoc]{scrartcl} 
\usepackage{xltxtra} 
\defaultfontfeatures{Mapping=tex-text} 
\usepackage{polyglossia} 
\setdefaultlanguage[spelling=new]{german} 
\usepackage{mwe}% minimal working example 
\usepackage{hyperref}
\usepackage{bookmark}

\DeclareNewTOC[% 
    owner=\jobname, 
    listname={Inhalt des Anhangs},% Titel des Verzeichnisses 
]{atoc}% Dateierweiterung (a=appendix, toc=table of contents) 
\DeclareNewTOC[% 
    owner=\jobname,
    listname={Inhalt des Protokolls}, 
]{ptoc}% Dateierweiterung (p=protocol, top=table of contents) 
\setuptoc{ptoc}{leveldown}% Überschrift als Unterabschnitt statt als Abschnitt

\makeatletter 
\newcommand*{\useappendixtocs}{% 
  \renewcommand*{\ext@toc}{atoc}% 
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert 
    \hypersetup{bookmarkstype=atoc}% 
  }% 
} 
\newcommand*{\useprotocoltocs}{% 
  \renewcommand*{\ext@toc}{ptoc}% 
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert 
    \hypersetup{bookmarkstype=ptoc}% 
  }% 
}
\newcommand*{\usestandardtocs}{% 
  \renewcommand*{\ext@toc}{toc}% 
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert 
    \hypersetup{bookmarkstype=toc}% 
  }% 
} 
\ifundefinedorrelax{ext@toc}{% damit es auch mit  älteren KOMA-Script Versionen funktioniert
  \newcommand*{\ext@toc}{toc} 
  \renewcommand{\addtocentrydefault}[3]{% 
    \expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}% 
  } 
}{} 
\makeatother 

\begin{document} 
% Hauptdokument 
\tableofcontents 
\blinddocument % #1 
% Anhang 
\appendix
\addpart{\appendixname} 
  \useappendixtocs% ab hier Eintrag ins Anhangsverzeichnis
  \listofatocs 
  \blinddocument % #2 
  % Protokoll
  \section{Protokoll}
    \useprotocoltocs% ab hier Eintrag ins Protokollverzeichnis
    \listofptocs
    \subsection{Erster Unterabschnitt im Protokoll}
    \Blindtext[10] % #3 
    \subsection{Letzter Unterabschnitt im Protokoll}
  % wieder Anhang
  \useappendixtocs% ab hier wieder Eintrag ins Anhangsverzeichnis
  \section{Section im Anhang (zweiter Teil)} 
  \blinddocument % #4 
\end{document}
Was jetzt noch nicht realisiert ist, weil ich mir auch nicht sicher bin, ob Du das tatsächlich willst, ist, dass die Überschrift "Protokoll" sowohl im Anhangsverzeichnis als auch im Protokollverzeichnis selbst eingetragen wird.

von MoonKid » Fr 4. Aug 2017, 17:07

Anonymous hat geschrieben:Kannst Du bitte genau angeben, welche Überschrift in welchem Verzeichnis landen soll? Ich werde bisher aus Deinen Erklärungen nicht so ganz schlau.
Sorry. Ähm...

Hauptinhaltsverzeichnis (standardtoc)
  • alles vom ersten \blinddocument
  • "Anhang"
Anhangsverzeichnis (appendixtoc)
  • alles vom zweiten \blinddocument
  • "Protocol"
  • \section{Section im Anhang (zweiter Teil)}
  • alles vom vierten \blinddocument
Protokollinhaltsverzeichnis (protocoltoc)
  • alles vom dritten \blinddocument
  • \section{Letzte Section im Protokol}

von Gast » Fr 4. Aug 2017, 15:12

Kannst Du bitte genau angeben, welche Überschrift in welchem Verzeichnis landen soll? Ich werde bisher aus Deinen Erklärungen nicht so ganz schlau.

Off-Topic: Account-Reactivierung auf komascript.de

von Gast » Fr 4. Aug 2017, 15:08

Du hast offensichtlich versucht ein neues Passwort anzufordern und dabei einen Benutzernamen bzw. eine E-Mail-Adresse angegeben, die nicht registriert sind. Das kann natürlich dann nicht funktionieren. Wenn Du dagegen einen existierenden Benutzer angibst oder – was in dem Fall ggf. sinnvoll gewesen wäre – einen neuen anlegst, dann wird es auch funktionieren. Ggf. ist dann natürlich die angegebene Wartezeit zu beachten.

Das hat hier aber alles nichts verloren. Wenn Du Anmeldeprobleme hast, dann wende Dich entsprechend Markus provozierter Stellungnahme an die zuständigen Stellen.

von MoonKid » Fr 4. Aug 2017, 13:54

Also die Reaktivierung des Passworts, sowie auch die Registrierung funktionieren bei mir nicht mit Firefox und Opera. Bei beidem kommt diese Meldung.
Bild

Daher muss ich meine Frage hier stellen. Hab jetzt das offizielle Beispiel versucht meinen Bedürfnissen anzupassen.
Es lässt sich bauen, aber Mangels Verständnis sieht es nicht so aus, wie erwartet. Auf die Kleinigkeiten will ich jetzt noch gar nicht eingehen. Gröbstes Problem ist die "Verschachtelung": Das "Protokol" ist Teil des Anhangs und taucht dort mitten drin auf. Das heißt die Textteile vor und nach dem Protokoll sind "Anhang" und sollten auch im Anhangsverzeichnis auftauchen. Der Teil nach dem Protokoll taucht derzeit aber im Protokoll-Verzeichnis auf.
%% ------------------------------------------------------------------
%% | Beispiel für ein multiple verschachtelte Verzeichnisse         |
%% | Inhalt, Appendix-Inhalt, Protokoll-Inhalt                      |
%% | basiert auf <https://komascript.de/comment/5578#comment-5578>  |
%% ------------------------------------------------------------------

%%% -- Preamble --
\documentclass[listof=totoc]{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\usepackage{mwe}% minimal working example

\usepackage{hyperref}%
\usepackage{bookmark}% verbessert „angeblich“ hyperref

\DeclareNewTOC[%
    owner=\jobname,
    listname={Inhalt des Anhangs},% Titel des Verzeichnisses
]{atoc}% Dateierweiterung (a=appendix, toc=table of contents)
\DeclareNewTOC[%
    listname={Inhalt des Protokols},
]{ptoc}% Dateierweiterung (p=protocol, top=table of contents)

\makeatletter
\newcommand*{\useappendixtocs}{%
  \renewcommand*{\ext@toc}{atoc}%
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
    \hypersetup{bookmarkstype=atoc}%
  }%
  %\renewcommand*{\ext@figure}{alof}%
  %\renewcommand*{\ext@table}{alot}%
}
\newcommand*{\useprotocoltocs}{%
  \renewcommand*{\ext@toc}{ptoc}%
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
    \hypersetup{bookmarkstype=ptoc}%
  }%
  %\renewcommand*{\ext@figure}{alof}%
  %\renewcommand*{\ext@table}{alot}%
}
\newcommand*{\usestandardtocs}{%
  \renewcommand*{\ext@toc}{toc}%
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
    \hypersetup{bookmarkstype=toc}%
  }%
  %\renewcommand*{\ext@figure}{lof}%
  %\renewcommand*{\ext@table}{lot}%
}
\ifundefinedorrelax{ext@toc}{%
  \newcommand*{\ext@toc}{toc}
  \renewcommand{\addtocentrydefault}[3]{%
    \expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}%
  }
}{}
\makeatother

\usepackage{xpatch}
\xapptocmd\appendix{%
  \addpart{\appendixname}
  \useappendixtocs
}{}{}

\begin{document}
% Hauptdokument
\tableofcontents
\blinddocument % #1
% Anhang
\appendix
\listofatocs
\blinddocument % #2
% Protokol im Anhang
% vorübergehend Abschalten??? \useappendixtocs
\useprotocoltocs
\section{Protocol}
\listofptocs
\blinddocument % #3
\section{Letzte Section im Protokol}
% mehr Anhang
% Abschalten??? \useprotocoltocs
% wieder Einschalten??? \useappendixtocs
\section{Section im Anhang (zweiter Teil)}
\blinddocument % #4

\usestandardtocs
\bookmarksetup{startatroot}% siehe bookmark-docu
\end{document}
Mein Wunsch wäre es, dass das Protokoll als einzelner Eintrag im Anhangsverzeichnis mit aufgeführt wird. so wie der Anhang selbst ja auch im Hauptinhaltsverzeichnis mit einem einzigen Eintrag aufgeführt wird.

von Gast » Mo 31. Jul 2017, 08:41

Anonymous hat geschrieben:Habe ich gerade ausprobiert. Geht. Da das jetzt ein zweiter Account von mir ist, muss ich allerdings die Administratoren bitten, den wieder zu löschen.
Und dafür habe ich jetzt gleich eine milde Form eines Rüffels kassiert: Ich solle nächstes Mal einfach fragen, ob es stimme, dass keine Anmeldungen möglich seien. Vor ein paar Monaten gab es wohl auch tatsächlich einmal ein Problem, das aber lange beseitigt sei – wie ich selbst gesehen habe.
Stefan Kottwitz hat geschrieben:Sind die Lizenz-Bedenken jetzt behoben, nachdem ganz oben ein Link auf Originalquellen eingefügt ist?
Ich habe einen Link auf die Seite mal an Markus geschickt.

von Gast » Mo 31. Jul 2017, 08:33

Das KOMA-Script-Forum akzeptiert Registrierungen. Man muss natürlich die Registrierungsbedingungen erfüllen. Wenn man eine Wartemeldung bekommt, muss man die schlicht befolgen. Habe ich gerade ausprobiert. Geht. Da das jetzt ein zweiter Account von mir ist, muss ich allerdings die Administratoren bitten, den wieder zu löschen. Kontaktaufnahme zu Administratoren ist einfach, schließlich gibt es ein Impressum. Kontaktaufnahme zu Markus ist ebenfalls einfach, schließlich steht seine E-Mail-Adresse in der KOMA-Script-Anleitung und ist auch via Google nicht schwer zu finden.

von MoonKid » So 30. Jul 2017, 14:27

Stefan Kottwitz hat geschrieben:Sind die Lizenz-Bedenken jetzt behoben
Die Frage wollte ich an Markus Kohm direkt stellen. Verständlicherweise ist es aber schwierig ihn direkt zu kontaktieren. Ihr habt da vielleicht interne Kanäle. ;)

Bei Lizenzen bin ich auch pingelig, aber im TeX-Umfeld bin ich mit den Details nicht so vertraut, wie im sonstigen FOSS-Feld.

von Stefan Kottwitz » So 30. Jul 2017, 13:31

Sind die Lizenz-Bedenken jetzt behoben, nachdem ganz oben ein Link auf Originalquellen eingefügt ist? Dort kann man ja die Lizenztexte lesen.

Stefan

Nach oben