1

Updates

Added not-working-workarounds plus an additional MWE.

Problem

I use a tcolorbox as a Chapter's summary, and thanks to this answer I am able to include it in the TOC as well.

MWE

\documentclass[
    ]{scrbook}

\usepackage[most]{tcolorbox}
\usepackage{hyperref}
\usepackage{lipsum}
\hypersetup{
    colorlinks
}
% ---------------------------
\begin{document}
\tableofcontents

\chapter{First}
\section{one}
\lipsum
\section{two}
\lipsum

\begin{tcolorbox}[
    title={\protect\section*{Summary}\addcontentsline{toc}{section}{Summary}},
    fonttitle=\ttfamily\bfseries\large,
    width=\textwidth+10mm,
    left skip=10mm,
    before skip=10mm,
    toptitle=4mm,
    boxsep=2mm,
    coltitle=white,
    colback=orange!5!white, 
    colframe=orange,
]

Lorem Ipsum

\end{tcolorbox}

\end{document}

The result is as follows:

enter image description here

My goal

All is fine, except that I would like to change the font family, size and color of the Summary title, but I can't: it always reverts to the default Section's. Unless I use a standard title, e.g. title=Summary of the Chapter, but then I lose the TOC entry that I need.

Workarounds that don't really work

If I use titlesec then I can successfully change the section/tcolorbox title style, but then the link in the TOC points to the wrong section:

\documentclass[
    ]{scrbook}

\usepackage[most]{tcolorbox}
\usepackage{hyperref}
\usepackage{lipsum}
\hypersetup{
    colorlinks
}
\usepackage{titlesec}
\usepackage{fix-cm}

\makeatletter
\newcommand\ChapterSize{\@setfontsize\Huge{25}{27}}
\makeatother

\makeatletter
\newcommand\SectionSize{\@setfontsize\Huge{22}{24}}
\makeatother

\titleformat{\chapter}[block]
{\ChapterSize\bfseries\sffamily}%
{\thechapter{}}
{5mm}
{}

\titleformat{\section}[block]
{\Large\bfseries\sffamily}%
{\thesection}
{5mm}
{}


% ---------------------------
\begin{document}
\tableofcontents

\chapter{First}
\section{one}
\lipsum
\section{two}
\lipsum


\begin{tcolorbox}[
    title={\protect\section*{Summary}\addcontentsline{toc}{section}{Summary}},
    fonttitle=\color{white},
    width=\textwidth+10mm,
    left skip=10mm,
    before skip=10mm,
    toptitle=4mm,
    boxsep=2mm,
    coltitle=white,
    colback=orange!5!white, 
    colframe=orange,
]

Lorem Ipsum

\end{tcolorbox}

\end{document}

The same result (offset link in the TOC entry) happens if I change the title of the tcolorbox removing the \protect, like:

title={Summary\addcontentsline{toc}{section}{Summary}}

How do I change the font title (family-size-color) keeping the same functionality I've already implemented? Thank you.

2
  • Did you already try something like title={Summary\addcontentsline{toc}{section}{Summary}}?
    – leandriis
    Apr 5 at 15:39
  • It fixes the formatting but it messes up the links in the TOC (via hyperref), the Summary entry in the TOC points to the section before it. I guess the \protect is useful there for that reason.
    – unDavide
    Apr 5 at 16:55
2

According to this comment you have to add \phantomsection before \addcontentsline in order to set the anchor for the link properly—in case the TOC points to a wrong section. This, in conjunction with the use of the titlesec package, let me change the font style while having a not-numbered entry in the TOC which link points to the right place. 🍾

Working example

\documentclass[
    ]{scrbook}

\usepackage[most]{tcolorbox}
\usepackage{hyperref}
\usepackage{lipsum}
\hypersetup{
    colorlinks
}
\usepackage{titlesec}
\usepackage{fix-cm}

\makeatletter
\newcommand\ChapterSize{\@setfontsize\Huge{25}{27}}
\makeatother

\makeatletter
\newcommand\SectionSize{\@setfontsize\Huge{22}{24}}
\makeatother

\titleformat{\chapter}[block]
{\ChapterSize\bfseries\sffamily}%
{\thechapter{}}
{5mm}
{}

\titleformat{\section}[block]
{\Large\bfseries\sffamily}%
{\thesection}
{5mm}
{}


% ---------------------------
\begin{document}
\tableofcontents

\chapter{First}
\section{one}
\lipsum
\section{two}
\lipsum


\begin{tcolorbox}[
    title={\protect\section*{Summary}\phantomsection\addcontentsline{toc}{section}{Summary}},
    fonttitle=\color{white},
    width=\textwidth+10mm,
    left skip=10mm,
    before skip=10mm,
    toptitle=4mm,
    boxsep=2mm,
    coltitle=white,
    colback=orange!5!white, 
    colframe=orange,
]

Lorem Ipsum

\end{tcolorbox}

\end{document}

1
  • This seems good.
    – Gomesz785
    Sep 5 at 4:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.