
Ich habe einige sehr lange Abschnittstitel und möchte nicht, dass ihre Einträge im Inhaltsverzeichnis mit Bindestrichen versehen werden.
\documentclass{scrreprt}
%\usepackage[ngerman]{babel}
\usepackage{tocloft}
\cftsetindents{section}{0mm}{12mm}
\cftsetindents{chapter}{0mm}{12mm}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{This kind of problem, that kind of problem, other ones and further considerations}
\section{More problems, even more problems, much worse than these, headline hyphenation, and blablablablablablablablabla and XYZ-blablablablablablablablabla}
\end{document}
Durch einiges Googeln hatte ich den Eindruck, dass das helfen \renewcommand{\cftsecfont}{\raggedright}
sollte, aber es tut es nicht.\begingroup \raggedright \tableofcontents \endgroup
die einzige (nicht akzeptierte) Antwort auf eine verwandte Frage. (Wenn ich das Kommentarzeichen entferne \usepackage{ngerman]{babel}
, ändert sich interessanterweise die Silbentrennung von „conside-erations“ in „consi-derations“.)
Das Problem tritt auch auf, wenn ich nicht verwende tocloft
oder die Dokumentklasse book
beispielsweise in ändere (bei Silbentrennung).
Kann ich die Silbentrennung im Inhaltsverzeichnis vollständig entfernen, ohne sie für jedes einzelne Wort neu definieren zu müssen?! Bonuspunkte gibt es, wenn die Lösung nicht dazu führt, dass lange Wörter über die Zeile hinausgehen, wie das abschließende „blabla…“, und noch mehr Bonuspunkte, wenn Wortkombinationen, die von Anfang an einen Bindestrich enthalten („XYZ-blabla“), in dieselbe Zeile gebracht werden können.
Antwort1
Da Sie eine KOMA-Klasse verwenden, verwenden Sie am besten dietocstyle
Paket:
Der Code:
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[tocflat]{tocstyle}
\newtocstyle{raggedstyle}{%
\settocstylefeature[0]{entryhook}{\bfseries}
\settocstylefeature[0]{leaders}{\hfill}
\settocfeature{raggedhook}{\raggedright}
\settocfeature{spaceafternumber}{17pt}
}
\usetocstyle{raggedstyle}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{This kind of problem, that kind of problem, other ones and further considerations}
\section{More problems, even more problems, much worse than these, headline with no hyphenation and somo more text goes here for the example}
\end{document}
Weitere Anpassungen finden Sie in der Paketdokumentation.
Antwort2
Ich denke, ich würde dazu neigen, die Antwort von Gonzalo Medina zu verwenden, da Sie verwenden scrreprt
(und das Laden überspringen tocloft
), aber eine tocloft
Lösung ist nicht zu schwierig (und auch für memoir
Benutzer nützlich):
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{tocloft}
\cftsetindents{section}{0mm}{12mm}
\cftsetindents{chapter}{0mm}{12mm}
\makeatletter
% \renewcommand{\@tocrmarg}{2.55em plus1fil}
\renewcommand{\@tocrmarg}{\@pnumwidth plus1fil} % <-- Revised
\makeatother
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{This kind of problem, that kind of problem, other ones and further considerations}
\section{More problems, even more problems, much worse than these, headline hyphenation, and blablablablablablablablabla and XYZ-blablablablablablablablabla}
\end{document}
Sie sollten im Allgemeinen sicherstellen, dass der überarbeitete Wert für \@tocrmarg
(Inhaltsverzeichnis rechter Rand) größer ist als der für \@pnumwidth
(Seitenzahlbreite).
Antwort3
Die Verwendung des Pakets tocloft
zusammen mit einer KOMA-Script-Klasse ist nicht zu empfehlen. Hier ein Vorschlag ohne dieses Paket und ohne Neudefinition eines internen Befehls:
\documentclass{scrreprt}
\RedeclareSectionCommands[
tocindent=0mm,
tocnumwidth=12mm,
tocraggedentrytext
]{chapter,section}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{This kind of problem, that kind of problem, other ones and further considerations}
\section{More problems, even more problems, much worse than these, headline hyphenation, and blablablablablablablablabla and XYZ-blablablablablablablablabla}
\end{document}
Ergebnis:
toc=flat
Sie können anstelle der Einstellung auch die Klassenoption verwenden tocindent=0mm
und tocnumwidth=12mm
:
\documentclass[toc=flat]{scrreprt}
\RedeclareSectionCommands[
tocraggedentrytext
]{chapter,section}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{This kind of problem, that kind of problem, other ones and further considerations}
\section{More problems, even more problems, much worse than these, headline hyphenation, and blablablablablablablablabla and XYZ-blablablablablablablablabla}
\end{document}
Beachten Sie, dass für die Ausrichtung ein zusätzlicher Lauf erforderlich ist.
Ergebnis:
Antwort4
Eine Lösung mit dem titletoc
Paket:
\documentclass{scrreprt}
\usepackage[showframe]{geometry}
%\usepackage[ngerman]{babel}
\usepackage{ragged2e}
\usepackage{fmtcount}
\usepackage{titletoc}
\titlecontents{chapter}[12mm]
{\contentsmargin{10mm}\bigskip\sffamily\bfseries\Large}
{\contentslabel[\MakeUppercase{\romannumeral\thecontentslabel}]{12mm}}
{}
{\hfill\contentspage}[\medskip]
\titlecontents{section}[12mm]
{ \rightskip=10mm plus 1fil\hyphenpenalty=10000\contentsmargin{2mm}}%
{\contentslabel[\thecontentslabel.]{12mm}}
{}
{\hskip2pt\titlerule*[6pt]{.}\contentspage}
\begin{document}
\tableofcontents
\setcounter{page}{100}
\chapter{Introduction}
\section{This kind of problem, that kind of problem, other ones and further considerations}
\section{More problems, even more problems, much worse than these, headline hyphenation, and blablablablablablablablabla and XYZblablablablablablablablabla}
\end{document}