Archiv verlassen und diese Seite im Standarddesign anzeigen : Inhaltsübersicht, Inhaltsverzeichnis und Anhangsverzeichnis
Liebe Latex-Community,
ich benutze zur Generierung des Inhalts- bzw. Anhangsverzeichnis den Vorschlag von Markus Kohm (http://www.komascript.de/node/458), den ich mit dem Vorschlag zur Inhaltsübersicht von edico (http://www.mrunix.de/forums/showpost.php?p=222463&postcount=5) kombiniere, um eine Inhaltsübersicht zu erhalten.
Mein Problem ist nun, dass in der Inhaltsübersicht der Anhang doppelt dargestellt wird, wobei der zweite ungewünschte Eintrag bis zur zweiten Gliederungsebene geht. Dagegen steht im Inhalts- und Abbildungsverzeichnis lediglich der gewünschte erste Eintrag, der lediglich "Anhang" mit korrespondierender Seitenzahl umfasst.
Weiss jemand Rat, wie man die Inhaltsübersicht modifizieren muss, damit man ebenfalls nur das "Anhang" ohne die tieferen Gliederungsebenen als Eintrag hat?
\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\makeatletter% --> De-TeX-FAQ
\newcommand*{\maintoc}{% Hauptinhaltsverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\tableofcontents% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixtoc}{% Anhangsinhaltsverzeichnis
\begingroup
\edef\@alltocdepth{\the\value{tocdepth}}% tocdepth merken
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\contentsname}{% Verzeichnisname ändern
Verzeichnis der Anh\"ange}%
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\setcounter{tocdepth}{\@alltocdepth}% tocdepth wiederherstellen
}%
\tableofcontents% Verzeichnis ausgeben
\setcounter{tocdepth}{\@alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
}
\g@addto@macro\appendix{% \appendix erweitern
\if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
\addcontentsline{toc}{chapter}{\appendixname}% Eintrag ins Hauptverzeichnis
\addtocontents{toc}{\protect\appendixattoc}% Trennanweisung in die toc-Datei
}
\makeatother
\newcommand*\uebersicht{%
\addchap*{Inhalts\"ubersicht}
\markboth{Inhalts\"ubersicht}{}
\begingroup
\value{tocdepth}\shorttocdepth\relax % uebler Hack!
\makeatletter
\input{\jobname.toc}%
\makeatother
\endgroup
}
\newcommand*{\shorttocdepth}{1}
\begin{document}
\uebersicht
\maintoc
\blinddocument
\blinddocument
\appendix
\appendixtoc
\blinddocument
\blinddocument
\end{document}
Moin moin,
Mein Problem ist nun, dass in der Inhaltsübersicht der Anhang doppelt dargestellt wird, wobei der zweite ungewünschte Eintrag bis zur zweiten Gliederungsebene geht. Dagegen steht im Inhalts- und Abbildungsverzeichnis lediglich der gewünschte erste Eintrag, der lediglich "Anhang" mit korrespondierender Seitenzahl umfasst.
Weiss jemand Rat, wie man die Inhaltsübersicht modifizieren muss, damit man ebenfalls nur das "Anhang" ohne die tieferen Gliederungsebenen als Eintrag hat?
brauchst Du dazu nicht nur aus \maintoc
\renewcommand*{\appendixattoc}{%<--
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
in Deine \uebersicht-Definition übernehmen?
BTW: wenn Du den \makeatletter vor \newcommand\uebersicht{% an dessen Ende stellst und statt \input \@input darin verwendest, gibt es nicht mal mehr
! LaTeX Error: File `foo.toc' not found.
im ersten LaTeX-Lauf.;-)
BTW2: nutze bitte die hiesige CODE-Umgebung zur Darstellung desselben -- dafür ist sie da.
MfG
Hey Rainer,
vielen Dank für den Tipp, klappt perfekt ;-)
MfG
Wolly
P.S.:
Hab mein oberes Posting angepasst, so dass der Code nun in der Code-Umgebung steht
Aendere bitte den Code ggf. noch, wenn Du 'hyperref' einarbeitest, damit die Sprungziele 'stimmen' und
nimm gerne den Vorschlag von Rainer auf:
[1]
\g@addto@macro\appendix{% \appendix erweitern
\if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
\phantomsection%<<<<<<<<<< damit Sprungmarken mit hyperref 'laufen'
....
[2]
...
\makeatletter
\newcommand*\uebersicht{%
\addchap*{Inhalts\"ubersicht}
\markboth{Inhalts\"ubersicht}{}
\begingroup
\value{tocdepth}\shorttocdepth\relax % uebler Hack!
\@input{\jobname.toc}%<<<<<<<<<<<<<<
\endgroup
}
\newcommand*{\shorttocdepth}{1}
\makeatother
...
\usepackage{xcolor}
\usepackage[colorlinks,linkcolor=black]{hyperref}
...
edico
Danke, klappt alles soweit perfekt, mit einer einzigen Ausnahme:
Das Literaturverzeichnis, das nach dem Anhang platziert ist, erscheint nun - da nach der Trennanweisung - im Anhangsverzeichnis statt im Inhaltsverzeichnis.
Gibts ne Möglichkeit, dass dies trotzdem im Inhaltsverzeichnis aufgeführt wird?
Das Literaturverzeichnis, das nach dem Anhang platziert ist, erscheint nun - da nach der Trennanweisung - im Anhangsverzeichnis statt im Inhaltsverzeichnis.
Gibts ne Möglichkeit, dass dies trotzdem im Inhaltsverzeichnis aufgeführt wird?
warum ziehst Du das Literaturverzeichnis nicht einfach vor den Anhang? Gehört es nicht sowieso davor?
MfG
warum ziehst Du das Literaturverzeichnis nicht einfach vor den Anhang? Gehört es nicht sowieso davor?
MfG
Hallo Rais,
ich würde das ja gerne so machen, nur leider ist es bei Dissertationen üblich, dass das Literaturverzeichnis erst nach dem Anhang angeführt wird.
Moin moin,
ich würde das ja gerne so machen, nur leider ist es bei Dissertationen üblich, dass das Literaturverzeichnis erst nach dem Anhang angeführt wird.
nun ja, ganz sooo üblich scheint es mir damit nicht zu sein -- nicht zuletzt, weil die Frage hier sonst wohl öfter zu lesen wäre;-) -- oder der Ausdruck ``Anhang'' ist imho falsch gewählt, passender wäre dann ``Zwischenhang'' ... nicht zu vergessen: \appendix ist auch nicht völlig grundlos als Schalter entworfen worden...
Nun gut, wenn das Literaturverzeichnis erst nach dem Anhang gesetzt werden und doch zum Haupttext gehören soll, dann soll ein entsprechender Eintrag vermutlich nicht nur im Haupttoc, sondern auch in der Inhaltsübersicht erscheinen? Versuch es mit einem zweiten Schalter, in etwa
\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\newcommand*\alltocdepth{2}
\setcounter{tocdepth}{\alltocdepth}
\newcounter{kapmerker}
\makeatletter% --> De-TeX-FAQ
\newcommand*{\maintoc}{% Hauptinhaltsverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\tableofcontents% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixtoc}{% Anhangsinhaltsverzeichnis
\begingroup
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\contentsname}{% Verzeichnisname ändern
Verzeichnis der Anh\"ange}%
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}=-10000 % ab hier nix mehr...
}%
\tableofcontents% Verzeichnis ausgeben
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
}
\newcommand*\afterappendixattoc{% noch ne Trennanweisung im TOC...
\setcounter{tocdepth}{\alltocdepth}%
}
\let\orgappendix\appendix
\renewcommand*\appendix{% \appendix erweitern
\setcounter{kapmerker}{\value{chapter}}%<--Kapitelstand merken
\orgappendix
\if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
\addcontentsline{toc}{chapter}{\appendixname}% Eintrag ins Hauptverzeichnis
\addtocontents{toc}{\protect\appendixattoc}% Trennanweisung in die toc-Datei
}
\newcommand*\uebersicht{%
\addchap*{Inhalts\"ubersicht}
\markboth{Inhalts\"ubersicht}{}
\begingroup
\value{tocdepth}\shorttocdepth\relax % uebler Hack!
\renewcommand*{\appendixattoc}{%<--
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}\shorttocdepth\relax % uebler Hack!
}%
\makeatletter
\@input{\jobname.toc}%
\makeatother
\endgroup
}
\newcommand*\appendixendshere{%
\addtocontents{toc}{\protect\afterappendixattoc}%
\renewcommand*\thechapter{\arabic{chapter}}%<--ab hier Nummerierung mit Ziffern
\setcounter{chapter}{\value{kapmerker}}%<--fortsetzen
\gdef \@chapapp {\chaptername}%<--wieder `Kapitel'
}
\makeatother
\newcommand*{\shorttocdepth}{1}
\begin{document}
\uebersicht
\maintoc
\blinddocument
\blinddocument
\appendix
\appendixtoc
\blinddocument
\blinddocument
\appendixendshere
\addchap{\bibname\ (simuliert)}
\end{document}
Solltest Du mit bibtotocnumbered arbeiten, dann wundere Dich aber nicht, daß Dein Literaturverzeichnis so eine fortlaufende Nummer passend zum Haupttext bekommt -- es soll ja gerade nicht zum Anhang gehören ... ;)
MfG
Hallo, genau eine solche Trennung bräuchte ich auch für meine Diplomarbeit.
Ich muss leider auch einen Ahnang zwischen Textteil und Quellenverzeichnis machen.
Leider bekomme ich mehrere Fehler, wenn ich das Makro auf einen article anwenden will.
Auch der Versuch \addchap durch \addsec zu ersetzen usw. klappte nicht...
Kann mir jemand helfen oder gibt es eine andere Möglichkeit, nach dem Appendix wieder ins Haupt-TOC zu schreiben?
Vielen Dank!
Hi, ich nochmal.
Habe ein wenig rumprobiert und angepasst. Leider gibt es noch drei Errors, die ich nicht wegbekomme. Das Verzeichnis sieht aber bereits schon brauchbar aus.
Die Errors sind:
! Undefined control sequence.
\appendix ...{section}}\orgappendix \if@openright
\cleardoublepage \else \cl...
l.61 \appendix
und
! Extra \else.
\appendix ...\if@openright \cleardoublepage \else
\clearpage \fi \par \addto...
l.61 \appendix
und
! Extra \fi.
\appendix ...cleardoublepage \else \clearpage \fi
\par \addtocontents {toc}{...
l.61 \appendix
Hier das angepasste Makro. Hat jemand eine Idee, wie ich die Errors wegbekomme?
Danke!
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\newcommand*\alltocdepth{2}
\setcounter{tocdepth}{\alltocdepth}
\newcounter{secmerker}
\makeatletter% --> De-TeX-FAQ
\newcommand*{\maintoc}{% Hauptinhaltsverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\tableofcontents% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixtoc}{% Anhangsinhaltsverzeichnis
\begingroup
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\contentsname}{% Verzeichnisname ändern
Verzeichnis der Anh\"ange}%
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}=-10000 % ab hier nix mehr...
}%
\tableofcontents% Verzeichnis ausgeben
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
}
\newcommand*\afterappendixattoc{% noch ne Trennanweisung im TOC...
\setcounter{tocdepth}{\alltocdepth}%
}
\let\orgappendix\appendix
\renewcommand*\appendix{% \appendix erweitern
\setcounter{secmerker}{\value{section}}%<--Kapitelstand merken
\orgappendix
\if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
\addtocontents{toc}{\protect\appendixattoc}% Trennanweisung in die toc-Datei
}
\newcommand*\appendixendshere{%
\addtocontents{toc}{\protect\afterappendixattoc}%
\renewcommand*\thesection{\arabic{section}}%<--ab hier Nummerierung mit Ziffern
\setcounter{section}{\value{secmerker}}%<--fortsetzen
\gdef \@chapapp {\chaptername}%<--wieder `Kapitel'
}
\makeatother
\newcommand*{\shorttocdepth}{1}
\begin{document}
\maintoc
\blinddocument
\blinddocument
\addcontentsline{toc}{section}{\appendixname}
\appendix
\appendixtoc
\blinddocument
\blinddocument
\appendixendshere
%\addcontentsline{toc}{section}{\bibname\ (simuliert)}
\end{document}
So, habe es hinbekommen... sry für die vielen Postings... :p
Hier die Lösung:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\newcommand*\alltocdepth{2}
\setcounter{tocdepth}{\alltocdepth}
\newcounter{secmerker}
\makeatletter% --> De-TeX-FAQ
\newcommand*{\maintoc}{% Hauptinhaltsverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\tableofcontents% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixtoc}{% Anhangsinhaltsverzeichnis
\begingroup
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\contentsname}{% Verzeichnisname ändern
Verzeichnis der Anh\"ange}%
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}=-10000 % ab hier nix mehr...
}%
\tableofcontents% Verzeichnis ausgeben
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
}
\newcommand*\afterappendixattoc{% noch ne Trennanweisung im TOC...
\setcounter{tocdepth}{\alltocdepth}%
}
\let\orgappendix\appendix
\renewcommand*\appendix{% \appendix erweitern
\setcounter{secmerker}{\value{section}}%<--Kapitelstand merken
\orgappendix
%\if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
\addtocontents{toc}{\protect\appendixattoc}% Trennanweisung in die toc-Datei
}
\newcommand*\appendixendshere{%
\addtocontents{toc}{\protect\afterappendixattoc}%
\renewcommand*\thesection{\arabic{section}}%<--ab hier Nummerierung mit Ziffern
\setcounter{section}{\value{secmerker}}%<--fortsetzen
\gdef \@chapapp {\chaptername}%<--wieder `Kapitel'
}
\makeatother
\newcommand*{\shorttocdepth}{1}
\begin{document}
\maintoc
\blinddocument
\blinddocument
\addcontentsline{toc}{section}{\appendixname}
\begin{appendix}
\appendixtoc
\blinddocument
\blinddocument
\end{appendix}
\appendixendshere
%\addcontentsline{toc}{section}{\bibname\ (simuliert)}
\end{document}
Koelschbaron
24-10-2008, 23:07
Hey Jazzle!
Das klappt ja in der Tat sehr gut deine Erweiterung!
Mein Kompliment, genauso etwas habe ich nämlich auch gesucht gehabt.
Allerdings habe ich jetzt ein Problem festgestellt:
Wenn ich im Appendix-Teil \subsection verwende, dann funktioniert das ganze nicht mehr und das Literaturverzeichnis wird wieder im Anhang aufgelistet.
Also: \chapter und \section zwischen \begin{appendix] ... \end{appendix} läuft super,
aber bei Verwendung von \subsection "zersägt" es irgendwie etwas.
Habe mir zwar schon das Makro angeschaut, aber gefunden habe ich den Fehler noch nicht...
Hast du eine Idee?
Koelschbaron
27-10-2008, 23:40
Ich habe festgestellt warum das Literaturverzeichnis wieder im Anhangverzeichnis erscheint:
\newpage sollte nicht manuell als letzter Befehl vor \appendixendshere verwendet werden.
D.h. auch dass kein pdfpages vor \appendixhere erscheinen darf.
Momentan behelfe ich mir mit "~", das erzeugt zwar eine neue Seite, aber das Literaturverzeichnis erscheint im Anhangverzeichnis.
Falls jemand eine bessere Idee haben sollte...?
Hallo und -- wenn vllt auch etwas spät -- Herzlich Willkommen :)
Ich habe festgestellt warum das Literaturverzeichnis wieder im Anhangverzeichnis erscheint:
\newpage sollte nicht manuell als letzter Befehl vor \appendixendshere verwendet werden.
D.h. auch dass kein pdfpages vor \appendixhere erscheinen darf.
Momentan behelfe ich mir mit "~", das erzeugt zwar eine neue Seite, aber das Literaturverzeichnis erscheint im Anhangverzeichnis.
das klingt alles recht wirr -- mach doch bitte ein Minimalbeispiel.
BTW: jazzle hat sich das Teil an die article-Klasse angepasst...
Keine Ahnung, welche Klasse Du nutzt, aber
Also: \chapter und \section zwischen (...)
article scheint's nicht zu sein.
MfG
futuremax
18-06-2010, 20:59
Hi, ich weiß der Post ist schon ein wenig betagt. Aber @rais, hier muss ich mal ein dickes LOOOB ausprechen.. ein wenig Arbeit in der Anpassung und meine Vorlage läuft damit
DAUMEN Hoch
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.