In Anlehnung an die Frage hier möchte ich nun einen Schritt weiter gehen und zwei Inhaltsverzeichnisse erstellen. In dem ersten Inhaltsverzeichnis, was auf dem Deckblatt erscheint, sollen nur die Kapitel aufgelistet werden, uns zwar derart, dass jeder Kapiteleintrag grau unterstrichen ist. Quasi das normale Inhaltsverzeichnis Bitte nicht nach dem Sinn Fragen, da ich nur abhängig beschäftigter bin und erkannt habe, dass der Chef immer Recht hat. :-) Das andere Inhaltsverzeichnis soll das komplette "normale" Inhaltsverzeichnis sein. Habe einmal ein Minimalbeispiel mit etwas Pseudocode erstellt. Öffne in Overleaf
\documentclass{scrreprt} \usepackage[utf8]{inputenc} \usepackage{blindtext} \begin{document} % Inhaltsübersicht, in dem nur die Kapitel angezeigt werden sollen. % Jeder Kapiteleintrag soll grau unterstrichen sein. % \tableofcontents(Overview) <<-- Pseudo-Code % Komplettes Inhaltsverzeichnis \tableofcontents % Dokument \Blinddocument \Blinddocument \Blinddocument \end{document} gefragt 22 Jan '18, 07:24 dzaic |
Bei KOMA-Script kann man neue Verzeichnisse einfach über die Anweisung Öffne in Overleaf
\documentclass[parskip]{scrreprt} \usepackage[utf8]{inputenc} \usepackage{blindtext} \usepackage{xcolor} \makeatletter \newcommand*{\pagenumberboxandgrayline}[1]{% \makebox[\@pnumwidth]{\hfill #1}\par\nobreak \vspace*{-\ht\strutbox}\hfill \llap{\textcolor{gray}{\rule{\textwidth}{.4pt}}}% } \let\originaladdchaptertocentry\addchaptertocentry \renewcommand*{\addchaptertocentry}[2]{% \addxcontentsline{ovw}{chapter}[{#1}]{#2}% \originaladdchaptertocentry{#1}{#2}% } \DeclareNewTOC[% types=overview, listname=Overview, owner=\jobname.tex, ]{ovw} \BeforeStartingTOC[ovw]{% \value{tocdepth}=\chaptertocdepth \DeclareTOCStyleEntry[ pagenumberbox=\pagenumberboxandgrayline ]{chapter}{chapter}% } \makeatother \begin{document} \listofoverview \tableofcontents \Blinddocument \Blinddocument \Blinddocument \end{document} Dabei wird mit Die verwendeten Befehle beantwortet 22 Jan '18, 09:04 saputello @saputello Herzlichen Dank. Nebenbei: Als ich deinen Code in mein Dokument integriert habe klappt auch alles wunderbar, bis auf eine Aussnahme: Bei mir erscheint "Overview" in beiden Inhaltsverzeichnissen. Hast Du auf die schnelle eine Idee, woran das liegen könnte?
(22 Jan '18, 09:32)
dzaic
@dzaic Als Überschrift des normalen Inhaltsverzeichnisses? Ich bin versucht zu behaupten, dass das gar nicht passieren kann. Aber wenn dem so wäre, würdest Du es ja nicht behaupten. Ich kann mir aber kaum einen Grund vorstellen. Verwendest Du eventuell
(22 Jan '18, 12:11)
saputello
1
@saputello Habe mich ungünstig ausgedrückt: "Overview" erscheint als Kapiteleintrag in beiden Verzeichnissen. Die Überschriften der Verzeichnisse sind beide korrekt, so wie in deinen Bilder dargestellt. Eventuell liegt es daran, dass ich
(22 Jan '18, 12:37)
dzaic
@dzaic Deine Vermutung ist richtig. Wird im optionalen Argument von
(22 Jan '18, 13:20)
esdd
|
So gut wie jedes Inhaltsverzeichnis, dazu gehören auch das Abbildungs- und das Tabellenverzeichnis, verwendet eine externe Hilfsdatei. Das Einlesen dieser Hilfsdatei geschieht über die LaTeX-Kernanweisung Ein Ansatz, ein Verzeichnis mehrfach auszugeben, könnte nun darin bestehen, die Datei bei allem Ausgaben außer der letzten eben nicht zum Schreiben zu öffnen. LaTeX bietet dazu auch bereits einen Ansatzpunkt. In Öffne in Overleaf
\LetLtxMacro{\@startoverview}{\@starttoc} \xpatchcmd{\@startoverview}{\if@filesw}{\iffalse}{}{}
Als nächstes muss man dafür sorgen, dass diese neue Anweisung auch verwendet wird. Definieren wir dazu einfach einen neuen Befehl: Öffne in Overleaf
\newcommand*{\contentsoverview}{% \begingroup % Alle Änderungen lokal zur Anweisung halten. \LetLtxMacro{\@starttoc}{\@startoverview} % Verwende \@startoverview statt \@starttoc. % Hier können weitere Änderungen vorgenommen werden. \tableofcontents% Inhaltverzeichnis ausgeben \endgroup } Nun kann Bis hier funktioniert das übrigens auch mit allen anderen Klassen, die Natürlich soll das Verzeichnis auch eine andere Überschrift bekommen. Das geht, indem lokal Darüber hinaus willst du ja die Änderungen aus der Lösung zur vorherigen Frage. Auch diese kann man an der markierten Stelle einfach einbauen. Eine KOMA-Script spezifische Lösung könnte dann so aussehen: Öffne in Overleaf
\documentclass{scrreprt} \usepackage[utf8]{inputenc} \usepackage{blindtext} \usepackage{xcolor}% Keine Farbe ohne Farbpaket. \usepackage{xpatch}% Zum sauberen Patchen der duplizierten Anweisung. \usepackage{letltxmacro}% Für eine saubere \let-Alternative \makeatletter % Zuerst machen wir uns aus \@starttoc eine Variante % \@startoverview, bei der die Datei nicht zum Schreiben % geöffnet wird. \LetLtxMacro{\@startoverview}{\@starttoc} \xpatchcmd{\@startoverview}{\if@filesw}{\iffalse}{}{} % Dann machen wir uns eine Variante von \tableofcontents, % bei der statt \@starttoc das neue \@startoverview genutzt % und noch ein paar Einstellungen geändert werden. \newcommand*{\contentsoverview}{% \begingroup % Alle Änderungen lokal zur Anweisung halten. \LetLtxMacro{\@starttoc}{\@startoverview} % Verwende \@startoverview statt \@starttoc. \let\contentsname\overviewname% Verwende \overviewname statt \contentsname als Überschrift. \value{tocdepth}=\chaptertocdepth % Nur \part und \chapter anzeigen. \DeclareTOCStyleEntry[% Siehe http://texwelt.de/wissen/fragen/21272/wie-kann-ich-das-aussehen-des-inhaltsverzeichnisses-andern/21296 pagenumberbox=\pagenumberboxandgrayline ]{chapter}{chapter}% \tableofcontents% Inhaltverzeichnis ausgeben \endgroup } \newcommand*{\pagenumberboxandgrayline}[1]{% Siehe http://texwelt.de/wissen/fragen/21272/wie-kann-ich-das-aussehen-des-inhaltsverzeichnisses-andern/21296 \makebox[\@pnumwidth]{\hfill #1}\par\nobreak \vspace*{-\ht\strutbox}\hfill \llap{\textcolor{gray}{\rule{\textwidth}{.4pt}}}% } \makeatother \newcommand*{\overviewname}{Chapter Overview} \providecaptionname{english,american,USenglish,UKenglish}{\overviewname}{Chapter Overview} \providecaptionname{german,ngerman,austrian,naustrian,swissgerman,nswissgerman}{\overviewname}{Kapitel\"ubersicht} \begin{document} \contentsoverview \tableofcontents % Dokument \Blinddocument \Blinddocument \Blinddocument \end{document} Das Ergebnis könnte dann so aussehen: beantwortet 22 Jan '18, 08:58 gast3 @Ijon Tichy Deine Antwort ist klasse. Leider kann ich hier nicht beide Antworten als Lösung auswählen, sodass ich die Antwort von saputello als Lösung ausgewählt, da sich diese vorwiegend den Bordmitteln von KOMA-Script bedient. Bei Gelegenheit sei Dir eine Kiste Bier als Entschädigung für meine Wahl von mir gegönnt.
(22 Jan '18, 09:30)
dzaic
|