In my document I want to use two colours in table of contents to differentiate the work between two authors. For instance,
In some chapters, sections and subsections are written by both of the authors. For example in chapter A(Blue),
Finally, these colours must be only changed in table of contents but not in the content of the document.
How can I customize like that? Would anybody be able to help with something like that?
Thanks in advance.
With tocloft
you have control over the formatting of every entry type within the ToC. For chapters there's \cftchapfont
, for sections there's \cftsecfont
and subsections have \cftsubsecfont
.
Below provide \authoredby{<name>}
which inserts an entry into the ToC for changing the colour. Additionally, author colours can be defined using \defineauthorcolor{<name>}{<colour>}
.
\documentclass{book}
\usepackage{tocloft,xcolor}
\newcommand{\defineauthorcolor}[2]{%
\colorlet{author#1}{#2}% Create an author colour
\expandafter\def\csname authoredby#1\endcsname{% Create author colour settings
\renewcommand{\cftchapfont}{\bfseries\color{author#1}}% Chapter colour
\renewcommand{\cftsecfont}{\color{author#1}}% Section colour
\renewcommand{\cftsubsecfont}{\color{author#1}}}% Subsection colour
}
\makeatletter
\newcommand{\authoredby}[1]{\addtocontents{toc}{\protect\@nameuse{authoredby#1}}}%
\makeatother
\defineauthorcolor{A}{red}% Author A will be coloured red
\defineauthorcolor{B}{blue}% Author B will be coloured blue
\begin{document}
\tableofcontents
\authoredby{A}
\chapter{A chapter}
\authoredby{B}
\section{A section}
\subsection{A subsection}
\authoredby{A}
\section{Another section}
\subsection{Another subsection}
\authoredby{B}
\subsection{Yet another subsection}
\chapter{Another chapter}
\section{First section}
\section{Second section}
\section{Last section}
\authoredby{A}
\chapter{Last chapter}
\end{document}
The .toc
for the above minimal example looks like this:
\@nameuse {authoredbyA}
\contentsline {chapter}{\numberline {1}A chapter}{3}
\@nameuse {authoredbyB}
\contentsline {section}{\numberline {1.1}A section}{3}
\contentsline {subsection}{\numberline {1.1.1}A subsection}{3}
\@nameuse {authoredbyA}
\contentsline {section}{\numberline {1.2}Another section}{3}
\contentsline {subsection}{\numberline {1.2.1}Another subsection}{3}
\@nameuse {authoredbyB}
\contentsline {subsection}{\numberline {1.2.2}Yet another subsection}{3}
\contentsline {chapter}{\numberline {2}Another chapter}{5}
\contentsline {section}{\numberline {2.1}First section}{5}
\contentsline {section}{\numberline {2.2}Second section}{5}
\contentsline {section}{\numberline {2.3}Last section}{5}
\@nameuse {authoredbyA}
\contentsline {chapter}{\numberline {3}Last chapter}{7}
Each use of \authoredby{<name>}
inserts the \@nameuse{authoredby<name>}
into the ToC to switch the colour accordingly. Note that this solution works for any number of authors (not just limited to two).
This solution should work with the book
, report
and article
document classes.