
Tengo algunos títulos de secciones muy largos y no quiero que sus entradas en el TOC tengan guiones.
\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}
Al buscar en Google, tuve la impresión de que \renewcommand{\cftsecfont}{\raggedright}
debería ayudar, pero no es así. Tampoco \begingroup \raggedright \tableofcontents \endgroup
desdela única respuesta (no aceptada) a una pregunta relacionada. (Cuando descomento \usepackage{ngerman]{babel}
, la separación de palabras de "consideraciones" cambia a "consideraciones", curiosamente).
El problema también ocurre cuando no uso tocloft
o cuando cambio la clase del documento a book
, por ejemplo (con separación de palabras en diferentes sílabas).
¿Puedo hacer que la separación de palabras en el TOC desaparezca por completo, sin tener que redefinirla para cada palabra ofensiva? Puntos de bonificación si la solución no hace que las palabras largas se pasen de la línea como el "blabla..." final, incluso más puntos de bonificación si se pueden incluir combinaciones de palabras que contienen un guión al principio ("XYZ-blabla") misma línea.
Respuesta1
Dado que está utilizando una clase KOMA, el camino a seguir es utilizar eltocstyle
paquete:
El código:
\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}
Consulte la documentación del paquete para realizar más ajustes.
Respuesta2
Creo que me inclinaría a usar la respuesta de Gonzalo Medina dado que estás usando scrreprt
(y omitiendo la carga tocloft
), pero la tocloft
solución no es demasiado complicada (y también útil para memoir
los usuarios):
\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}
En general, debe asegurarse de que el valor revisado para \@tocrmarg
(TOC Right MARGin) sea mayor que el de \@pnumwidth
(Page NUMber WIDTH).
Respuesta3
tocloft
No se recomienda el uso del paquete junto con una clase KOMA-Script. Aquí hay una sugerencia sin este paquete y sin la redefinición de un comando interno:
\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}
Resultado:
También puedes usar la opción de clase toc=flat
en lugar de configurar tocindent=0mm
y 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}
Tenga en cuenta que se necesita un tramo adicional para la alineación.
Resultado:
Respuesta4
Una solución con el titletoc
paquete:
\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}