更改目录的背景颜色 - tocloft、titlesec 和 tcolorbox 冲突

更改目录的背景颜色 - tocloft、titlesec 和 tcolorbox 冲突

使用所有三个 tocloft、titlesec 和 tcolorbox 包会导致目录格式混乱。

这是 MWE

% !TEX program = xelatex
\documentclass{article}
\usepackage{tcolorbox}
\usepackage[titles]{tocloft}
\usepackage{titlesec}
\begin{document}
\begin{tcolorbox}[colback=gray!4,arc=5pt,opacityframe=0]
\tableofcontents
\end{tcolorbox}
\section{FIRST SEC}
\subsection{First subsection}
\subsection{Second subsection}
\section{SECOND SEC}
\subsection{Third subsection}
\end{document}

这会导致目录中的小节和节条目之间的垂直空间丢失,如下所示

背景颜色没问题,但间距不合适

现在注释掉 \usepackage{titlesec} 或删除 tcolorbox 环境即可修复格式问题:

间距现在很好了……

我想继续使用 titlesec 包,所以我不能将其注释掉。当然,我也想保留目录中的彩色背景。

我不知道这些包如何以及为何发生冲突,如果有人能提供解决方案或解决方法我将不胜感激。

提前致谢。

答案1

我真的不知道 tcolorbox 对垂直间距做了什么。看来你必须\tableofcontents像这样“保护”你的:

% !TEX program = xelatex
\documentclass{article}
\usepackage{tcolorbox}
\usepackage[titles]{tocloft}
\usepackage{titlesec}

\begin{document}
\begin{tcolorbox}[colback=gray!4,arc=5pt,opacityframe=0]
\makeatletter
{\cfttoctitlefont \contentsname}{\cftaftertoctitle}\par\@starttoc{toc}
\makeatother
\end{tcolorbox}
\section{FIRST SEC}
\subsection{First subsection}
\subsection{Second subsection}
\section{SECOND SEC}
\subsection{Third subsection}
\end{document}

目录

相关内容