Seite 1 von 1
Inhaltsverzeichnis, Kapitelnamen mit/ohne Nr. auf einer Höhe
Verfasst: Mi 20. Nov 2013, 00:44
von Karawane
Guten Abend,
ich habe ein Problem mit der Formatierung des Inhaltsverzeichnisses und finde im Forum und im Komascript-FAQ lauter ähnliche Fragen und Antworten, aber nicht genau das, was ich brauche:
In meiner Arbeit gibt es ein Vorwort, das im Inhaltsverzeichnis im Stil einer Kapitelüberschrift aufgenommen werden soll, allerdings ohne Nummer. Die folgenden Kapitel tragen eine Nummer.
Nun steht im Inhaltsverzeichnis "Vorwort" und dann die Nummern der folgenden Kapitel auf einer Höhe; schöner wäre allerdings, wenn "Vorwort" auf der Höhe vom ersten Kapitelnamen stünde, also passend nach rechts eingerückt wäre.
\documentclass{scrbook}
\begin{document}
\tableofcontents
\chapter*{Vorwort}
\addcontentsline{toc}{chapter}{Vorwort}
\chapter{Erster Kapitel}
\chapter{Zweites Kapitel}
\end{document}
Eine unsaubere Lösung wäre natürlich, sich mittels \hspace was zu bauen, also
....
\addcontentsline{toc}{chapter}{\hspace{....} Vorwort}
....
aber kennt jemand eine saubere Lösung?
Gruß K.
Verfasst: Mi 20. Nov 2013, 00:49
von Sepp99
Eventuell
in der Doku von KOMA-Script nachgelesen?
Sepp
Verfasst: Mi 20. Nov 2013, 03:35
von skater
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\typearea{calc}
\begin{document}
\tableofcontents
\section*{Vorwort}
\addcontentsline{toc}{section}{\protect\numberline{}Vorwort}
Deine \emph{unsaubere} Lösung ist schon die richtige Richtung.
Die \emph{saubere} Version findet sich im \emph{›LaTeX-Begleiter‹} auf Seite~50.
\section{Erstes Kapitel}
\end{document}
Verfasst: Mi 20. Nov 2013, 08:34
von Noch so einer
Es gibt auch eine wirklich saubere Lösung, die alle \addsec-Einträge behandelt:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\typearea{calc}
\renewcommand*{\addsectiontocentry}[2]{%
\ifstr{#1}{}{% Eintrag ohne Nummer:
% mit "Null-Nummer" versehen.
\addtocentrydefault{section}{\protect\null}{#2}%
}{%
% Eintrag mit Nummer
\addtocentrydefault{section}{#1}{#2}%
}%
}
\begin{document}
\tableofcontents
\addsec{Vorwort}
Es gibt auch eine wirklich saubere Lösung dieses Problems.
\section{Erstes Kapitel}
\end{document}
Wenn ich den FAQ-Eintrag »
Wie kann man im Inhaltsverzeichnis die Seitenzahlen für Kapiteleinträge unterdrücken?« von gestern (der mich überhaupt erst auf die Idee gebracht hat) richtig deute, dann wird diese Lösung ab KOMA-Script 3.12 auch für die Inhaltsverzeichniseinträge gelten, die von Option listof=totoc gesetzt werden. Derzeit ist das leider noch nicht der Fall.
Dem Vernehmen nach müssen wir auch nicht mehr allzu lange auf KOMA-Script 3.12 warten.
Verfasst: Mi 20. Nov 2013, 08:36
von Besserwisser
Findet außer mir niemand, dass das so gar nicht mehr schön aussieht bzw. erst, wenn man auch noch Option toc=flat angibt?
Verfasst: Do 21. Nov 2013, 19:38
von Karawane
Vielen Dank für die Antworten! Das klappt so. Allerdings taucht in meinem Dokument ein weiteres Problem auf, da ich die Nummerierung der Kapitelüberschriften über
\renewcommand{\thechapter}{\Roman{chapter}}
also römische Ziffern anzeigen lasse. Damit kriege ich im Inhaltsverzeichnis vor dem Vorwort einen Punkt (der sonst nach der römischen Ziffer steht).
Mit dem Vorschlag von Noch so einer sieht das dann so aus:
\documentclass{scrbook}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand*{\addchaptertocentry}[2]{%
\ifstr{#1}{}{\addtocentrydefault{chapter}{\protect\null}{#2}}{\addtocentrydefault{chapter}{#1}{#2}}}
\begin{document}
\tableofcontents
\addchap{Vorwort}
\chapter{Erster Kapitel}
\chapter{Zweites Kapitel}
\end{document}
Woher kommt der Punkt (der hinter den römischen Ziffern durchaus sein soll) und wie kriege ich ihn weg?
Danke, Gruß K.
Verfasst: Fr 22. Nov 2013, 07:52
von Noch so einer
Der Punkt kommt vom \autodot, das KOMA-Script beim ersten Argument von \numberline einfügt, um den Punkt bei nicht rein arabischer Nummerierung einzufügen. Mit einer kleinen Änderung, lässt sich dieser beseitigen:
\documentclass{scrbook}
\renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand*{\addchaptertocentry}[2]{%
\ifstr{#1}{}{%
\addtocentrydefault{chapter}{% \autodot für diesen Eintrag deaktivieren
\protect\let\protect\autodot\protect\relax
}{#2}%
}{%
\addtocentrydefault{chapter}{#1}{#2}%
}%
}
\begin{document}
\tableofcontents
\addchap{Vorwort}
\chapter{Erster Kapitel}
\chapter{Zweites Kapitel}
\end{document}
Ich würde Dir außerdem empfehlen, die Formatierung des Quellcodes übersichtlich zu halten und auch die Kommentare aus meinem ursprünglichen Beitrag zu erhalten, damit man wenigstens eine leise Ahnung davon hat, was da gemacht wird. Wenn Du das hingegen zu Spaghetti-Code umwandelst blickt da niemand mehr durch.
Verfasst: Fr 22. Nov 2013, 08:52
von Besserwisser
Die
nächste KOMA-Script-Version scheint dafür übrigens einen Option toc=nonumberline zu bieten.
Verfasst: Fr 22. Nov 2013, 09:15
von Noch so einer
Wohl eher umgekehrt:
- toc=nonumberline entspricht der Voreinstellung, bei der nicht nummerierte Einträge linksbündig mit den Nummern sind
- toc=numberline entspricht dem hier Gewünschten, bei dem die nicht nummerierten Einträge linksbündig mit dem Text der nummerierten Einträge sind.
Verfasst: Fr 22. Nov 2013, 09:17
von Karawane
Herzlichen Dank, Noch so einer!
Und Du hast sicherlich recht mit der Kommentierung, ja.
Gruß K.