Hallo Welt;
ich stecke gerade in meiner Diplomarbeit und lerne mit wachsender Begeisterung die Features von Komascript zu schätzen; nichtsdestotrotz gibt es eine Funktionalität, deren Realisierbarkeit mir noch nicht so recht klar ist:
Unsere Form-Vorgaben erfordern, daß die Anhänge im "Inhaltsverzeichnis" nur als "Anhang" referenziert werden und der Teil "Anhang" mit einem separaten Verzeichnis aller existenten Anhänge beginnt.
Kann man sowas realisieren, ohne dafür allzu große Verrenkungen machen zu müssen? Hat jemand derartiges schon einmal versucht / gebraucht?
Danke schon im Voraus und bis dann,
Kristian
Danke Markus!
Danke Markus! Ganz naheliegend war es für mich als Einsteiger nicht, aber mit deinem Hinweis ist der Groschen gefallen. :)
So funktioniert's:
\settocconditional{appendix}{true}\tableofcontentsViele Grüße,
Michael
Anhänge zusätzlich im TOC aufführen?
Hallo Markus,
gibt es eine simple Möglichkeit, die Anhänge sowohl im Anhangs- als auch im regulären Inhaltsverzeichnis aufzuführen?
Viele Grüße,
Michael
Ich verstehe die Frage
Ich verstehe die Frage vermutlich nicht. Was hindert Dich daran mit
\settocconditionalvor\tableofcontentszusätzlich zum Abschnittmainauch noch den Abschnittappendixzu aktivieren? Die (inzwischen mehrfach erweiterten) Kommentar zu meinem Beispielcode sollten diesbezüglich eigentlich genügend Erklärung bieten.Funktioniert super. Danke!
Funktioniert super.
Vielen, vielen Dank und beste Grüße!
Michael
Anhangsverzeichnis verallgemeinert mit tocstyle
Da es immer wieder Nachfragen zu dem Anhangsverzeichnis gab, habe ich mich heute hingesetzt und eine Version gebastelt, die flexibler ist. Diese Version basiert auf tocstyle. Theoretisch könnte man die Verzeichnisverdopplung auch mit dem
\@fileswfalse-Trick aus dem ursprünglichen Code erreichen. Das eigentlich neue an der neuen Version ist, dass man nach dem Anhang auch wieder Kapitel wie das Literaturverzeichnis oder den Index dem Hauptverzeichnis zuordnen kann, statt sie dem Anhangsverzeichnis zuzuordnen. Und hier kommt das Minimalbeispiel mit dem Code:\typeout-Anweisungen dienen derzeit noch dem Debugging. Man kann die natürlich auch weglassen. Wenn etwas nicht funktioniert, können sie aber nützliche Anhaltspunkte liefern.TOC: Punkte auf chapter-Ebene
Hallo Markus,
dein Codeschnipsel für das Anhangverzeichnis funktioniert einfach wunderbar, danke dafür!
Nun taucht bei mir jedoch ein kleines Problem mit der Formatierung des Inhaltsverzeichnisses auf.
Ich verwende
scrrprtund möchte im Inhaltsverzeichnis die horizontale Punkte-Linie auch auf chapter-Ebene aktivieren.Das habe ich bislang so gemacht:
Das Ergebnis war einwandfrei.
Nach dem Einfügen deines Codeschnipsels in die Präambel funktioniert es jedoch nicht mehr. Ungeachtet dessen, ob ich im Dokument den Befehl
\appendixnutze oder nicht.Dabei macht es auch keinen Unterschied, ob ich deinen Code vor oder nach den o.g. Zeilen einfüge.
Dein Code scheint die o.g. Aufrufe irgendwie zu blockieren oder selbst neu zu definieren.
Brauchst du ein Minimalbeispiel oder kannst du ad hoc sagen, ob da codemäßig etwas kollidiert?
Hast du eine Lösung parat?
Viele Grüße,
Michael
Aus Deinem Code-Schnippsel
Aus Deinem Code-Schnippsel schließe ich, dass Du irgend ein Paket zur Konfiguration von Verzeichnissen verwendest. Da tocstyle selbst auch so ein Paket ist, gibt es dann also mehrere Pakete, die zumindest teilweise an den gleichen Stellen Änderungen vornehmen. Das kann nicht funktionieren.
Das sollte für Dich aber kein Problem sein, denn in der Anleitung zu tocstyle ist dokumentiert, wie man Pünktchen auf Kapitelebene bekommt.
Darüber hinaus ist mein Code im Gegensatz zu Deinem kein Schnippsel, sondern ein vollständiges Minimalbeispiel.
Style-Anpassung und Abb./Tab.-Präfix?
Hallo Markus,
ich habe bislang tocloft verwendet, die Kollisionen kann ich natürlich nachvollziehen. Daher habe ich beschlossen, auf dein
tocstyle-Paket umzusteigen, jetzt habe ich allerdings noch 2 Fragen.Ich würde gern den
KOMAlike-Styleverwenden, jedoch mit Punkten auf chapter-Ebene. Alternativ denallwithdot-Style, jedoch mit fettgedruckten Seitenzahlen. Letztendlich also eine Mischung aus diesen beiden.Eine zweite Anpassung die ich gern machen würde bezieht sich auf
listoffiguresundlistoftables.Ich würde in den Verzeichnissen gern das entsprechende Präfix vor die Nummerierung setzen, also "Abb. 1.1: xyz" bzw. "Tab. 1.1: abc".
Es ist mir als LaTeX-Neuling leider auch nach längerem Studium der Doku nicht gelungen, die korrekten Befehle zu finden, kannst du helfen?
Beste Grüße,
Michael
Folgendes nach dem Laden von
Folgendes nach dem Laden von tocstyle in meinem Beispiel einfügen:
Dafür dann natürlich die andere
\usetocstyle-Anweisung aus meinem Beispiel entfernen.Vielen Dank!! Jetzt noch Einzug anpassen?
Hallo Markus,
VIELEN DANK, so funktioniert es super und das Paket
tocloftwird vollkommen überflüssig. :)Für ein optimales Ergebnis noch eine letzte Frage:
Ich möchte Abbildungs-, Tabellen- und Anhangsverzeichnis linksbündig ausrichten, ohne den standardmäßigen Einzug, der sich wahrscheinlich aus der Definition der section-Ebene im TOC ergibt?!
Das Kommando
\noindentvor dem Setzen der Präfixe von Abbildungs- und Tabellenverzeichnis hat leider keinen Effekt an dieser Stelle.Ein funktionierender Workaround wäre die Nutzung von
\hspace{-0.72cm}. Das erscheint mir aber etwas zu sehr geschustert. Geht es vielleicht auch eleganter?Beim Anhangverzeichnis bin ich vollkommen ratlos, an welcher Stelle ich ansetzen muss.
Hier mein angepasstes Minimalbeispiel:
Einzug oder nicht per Option
Füg mal
\tableofcontentsein. Die Anweisung ist bisher nur im Implementierungsteil der tocstyle-Anleitung zu finden. Die Optionen, die man hier als Argument angeben kann, sind jedoch dieselben, die auch beim Laden angegeben werden können und die in Anhang A vorgeführt sind.\appendix nicht definiert
Das Beispiel kann ich problemlos übersetzen. Im Kontext meines eigenen Projekts gibt es allerdings eine Fehlermeldung, laut der
\appendixnicht definiert ist. Womit könnte das zusammenhängen?Rate, rate, was ist das
Du verwendest vermutlich eine Klasse, bei der
\appendixnicht definiert ist, also insbesondere keine KOMA-Script-Klasse und keine Standard-Klasse. Bei denen ist\appendixnämlich definiert.Danke! (Fast) perfekt!
Hallo Markus,
das Beispiel ist super, vielen Dank für diese Lösung!
Ist es noch möglich, die Position des Anhangsverzeichnisses zu ändern? Ich bräuchte es bereits vor dem eigentlichen Text - der Anhang an sich muss allerdings weiterhin nach dem Text kommen!
Viele Grüße
Vincent
Klar
Du musst dazu nur
\addchap{Anhangsvereichnis}und\appendixtableofcontentsaus der Erweiterung von\appendixentfernen und die beiden Anweisungen an der Stelle einbauen, an der das Verzeichnis stehen soll. Statt\addchapkannst Du natürlich auch\chapter*ggf. gefolgt von\markboth{Anhangsverzeichnis}{Anhangsverzeichnis}o. ä. verwenden.Natürlich kann man die jeweils gewählte Erzeugung der Überschrift für das Verzeichnis auch noch in die Definition von
\appendixtableofcontentsmit einbauen. Dann kann man gewünschte Änderungen wieder einfach in der Definition in der Präambel vornehmen.Achso: Vielleicht wäre der Makroname
\tableofappendixcontentssinnvoller. Ich muss zugeben, dass ich mir bei der raschen Implementierung über die Namen von Makros oft wenig Gedanken mache …Perfekt!
Wenn man weiß, wo man ansetzen muss ist das eine Sache von 10 Sekunden....aber wehe, wenn nicht... :-)
Vielen Dank!!!!
Gewusst wie
Tja, »Gewusst wie« ist inzwischen das Hauptkapital, über das wir verfügen können. Vielleicht ist es ja dumm, wenn ich versuche, anderen dieses Kapital ebenfalls zu bilden. Trotzdem ist mein Hauptzweck hier Fortgeschrittenen- und Expertenwissen bei anderen zu bilden, nicht es bei mir eifersüchtig zu bewahren.
neues (altes) Problem...
Hallo Expertengemeinde!
Ich bin zurück mit einem neuen (alten) Problem:
Heute ist mir aufgefallen, dass von Anfang an die Seitenzahlen im Anhangsverzeichnis falsch waren. Bei jeder Abbildung im Anhang steht die Seitenzahl der ersten Anhangsseite.
Beispiel: Der Text endet auf Seite 80. Auf Seite 81 steht: "A. ANHANG"
Auf S. 82 ist die erste Anhangsabbildung usw...
Im Anhangsverzeichnis steht allerdings:
Anhang A.1......81
Anhang A.2......81
Anhang A.3......81
Ich hoffe, das Problem wird dadurch klar.
Leider habe ich es bisher trotz 3-stündigen Herumprobierens nicht geschafft, ein MB zu schreiben, in dem der gleiche Fehler auftritt.
Deshalb versuche ich es weiterhin, wollte aber schon einmal fragen, ob jmd ein ähnliches Problem und dessen Lösung kennt oder eine Idee hat?
Viele Grüße
Vincent
MB
So, ich hoffe, ich habe es jetzt geschafft, ein Beispiel zu erzeugen, das den Sachverhalt klar macht...
Gleitumgebungen gleiten!
Und da eine
\addcontentsline-Anweisung keinen Platz benötigt, passen alle drei noch auf die erste Seite. Wenn Du keine Gleitumgebung willst, solltest Du keine verwenden. Wenn Du wirklich Gleitumgebungen willst, dann müssen alle Anweisungen, die sich auf das Innere der Gleitumgebung beziehen auch innerhalb der Gleitumgebung stehen.Man braucht dafür zwei Dinge
Zum einen muss man irgendwie das Inhaltsverzeichnis zweimal einlesen. Das funktioniert mit
\tableofcontentsnormalerweise nicht, da innerhalb von\tableofcontentsnach dem Lesen der toc-Datei diese neu zum Schreiben angelegt wird. LaTeX verfügt aber über den internen Schalter\if@filesw, der angibt, ob Hilfsdateien neu angelegt werden dürfen oder nicht. Man kann also eine neue Anweisung definieren, die diesen Schalter innerhalb einer Gruppe zuerst so einstellt, dass Hilfsdateien nicht neu angelegt werden und dann\tableofcontentsausgeführt wird.Mit dem zweimaligen Einlesen ist es aber nicht getan. Es muss auch dafür gesorgt werden, dass beim ersten Einlesen nur die Einträge bis zum Anhang ausgegeben werden und beim zweiten Einlesen die Einträge ab dem Anhang. Bei LaTeX regelt der Zähler
tocdepthbis zu welcher Gliederungsebene Einträge im Verzeichnis ausgegeben werden. Man müsste also im Hauptverzeichnis ab dem Anhangtocdepthauf einen so kleinen Wert setzen, dass gar nichts mehr ausgegeben wird. Beim Anhangsverzeichnis müsste man umgekehrt ersttocdepthauf den kleinen Wert setzen und dann aber dem Anhang wieder auf den normalen Wert. Das erreicht man am besten, indem man in die toc-Datei eine Anweisung schreibt, die man je nach Verzeichnis umdefinieren kann.Insgesamt könnte das dann wie folgt aussehen:
\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 \begin{document} \maintoc \blinddocument \blinddocument \appendix \appendixtoc \blinddocument \blinddocument \end{document}Es ist zu beachten, dass
\maintocnur funktioniert, wenn\appendixtocebenfalls vorhanden ist. Anderenfalls wird das Inhaltsverzeichnis nie aktualisiert. Sobald also\appendixtocentfernt wird, sollte man statt\maintocauch wieder\tableofcontentsdirekt verwenden.Modifizierung wegen hyperref
Das Anhangsverzeichnis klappt in der Tat super, auch von mir Danke.
Allerdings ist bei Benutzung des hyperef-Paketes der Link im Inhaltsverzeichnis auf das Anhangsverzeichnis fehlerhaft (zeigt auf das Kapitel vor dem Anhang).
Als Lösung habe ich gefunden, den Befehl
\phantomsection
unmittelbar vor der Zeile
\addcontentsline{toc}{chapter}{\appendixname}% Eintrag ins Hauptverzeichnis
einzufügen.
Meine Frage nun: Ist es damit getan oder muss ich mit Problemen / weiteren Inkompabilitäten rechnen?
Danke für eine kurze Antwort.
(...)
Hmm... das funktioniert ja beeindruckend. Ich danke herzlich für die ausführliche Hilfe! :)
Kristian