SAT-WiSe-25-26/HSRTReport/Config/ToC.tex
2025-10-30 15:53:26 +01:00

114 lines
4.4 KiB
TeX

% !TEX root = ../HSRTReport.cls
% ==============================================================================
% Table of Contents Configuration Module
% ==============================================================================
% Description: Formatting for table of contents, list of figures, and list of tables
% Author: Frederik Beimgraben
% License: Creative Commons CC BY 4.0
% ==============================================================================
% ==============================================================================
% Chapter Grouping and Page Break Control in TOC
% ==============================================================================
% Keep chapters with their sections together on the same page if they fit
% This prevents orphaned chapter titles at the bottom of pages
% Add penalties to keep chapter entries with their sections
\pretocmd{\addchaptertocentry}{%
\needspace{8\baselineskip}% Ensure space for chapter + at least 2 sections
}{}{}
% Add penalty after chapter to keep first sections together
\apptocmd{\addchaptertocentry}{%
\nopagebreak[4]%
}{}{}
% Hook into TOC generation to add spacing and break control
\AtBeginEnvironment{toc}{%
% Set penalties for better page breaking
\clubpenalty=10000
\widowpenalty=10000
\interlinepenalty=500
}
% Add vertical space before chapters in TOC for better visual separation
\RedeclareSectionCommand[
tocbeforeskip=1.5em plus 0.5em,% Space before chapter entries in TOC
]{chapter}
% ==============================================================================
% Page Number Formatting in TOC
% ==============================================================================
% Configure page number font for different section levels
\renewcommand\cftchappagefont{\blenderfont\color{gray}}
\renewcommand\cftsecpagefont{\blenderfont\color{gray}}
\renewcommand\cftsubsecpagefont{\blenderfont\color{gray}}
\renewcommand\cftsubsubsecpagefont{\blenderfont\color{gray}}
% ==============================================================================
% Entry Title Formatting in TOC
% ==============================================================================
% Configure entry title font for different section levels
\renewcommand\cftchapfont{\blenderfont\color{gray}}
\renewcommand\cftsecfont{\blenderfont\color{gray}}
\renewcommand\cftsubsecfont{\blenderfont\color{gray}}
\renewcommand\cftsubsubsecfont{\blenderfont\color{gray}}
% ==============================================================================
% Section Command TOC Formatting
% ==============================================================================
% Configure TOC entry and page number format for sections and subsections
\RedeclareSectionCommands[
tocentryformat=\blenderfont\normalsize,
tocpagenumberformat=\blenderfont\normalsize,
tocindent=1.5em,% Indent for sections
tocnumwidth=2.5em% Width for section numbers
]{section,subsection}
% Add spacing before sections in TOC
\RedeclareSectionCommand[
tocbeforeskip=0.5em,% Small space before section entries
]{section}
% Keep sections with their subsections
\pretocmd{\addsectiontocentry}{%
\penalty-500% Allow break before sections but discourage it
}{}{}
% Keep subsections together
\pretocmd{\addsubsectiontocentry}{%
\nopagebreak[3]%
}{}{}
% ==============================================================================
% Figure and Table TOC Formatting
% ==============================================================================
% Configure font for figure entries in list of figures
\renewcommand\cftfigfont{\blenderfont}
\renewcommand\cftfigpagefont{\blenderfont}
% Configure font for table entries in list of tables
\renewcommand\cfttabfont{\blenderfont}
\renewcommand\cfttabpagefont{\blenderfont}
% Configure font for equation entries in list of equations
% Define robust font commands
% Configure font for listing entries in lstlistings list
\renewcommand*{\l@lstlisting}[2]{
\@dottedtocline{1}{1em}{2.3em}
{\blenderfont#1}
{\blenderfont#2}
}
% ==============================================================================
% Dot Separation Configuration
% ==============================================================================
% Set spacing between dots in TOC
% \renewcommand{\cftdotsep}{1.5}
% ==============================================================================
% End of Table of Contents Configuration Module
% ==============================================================================