我有一些彩色盒子我的文档中:
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[most]{tcolorbox}
\newtcolorbox[list inside=toc]{mybox}[1]{title={#1}}
\begin{document}
\tableofcontents
\clearpage
\section{First section}
\begin{mybox}{My title}
content
\end{mybox}
\begin{mybox}{My title}
content
\end{mybox}
\begin{mybox}{My title}
content
\end{mybox}
\section{Second section}
\subsection{First subsection}
\subsubsection{First subsubsection}
\begin{mybox}{My title}
content
\end{mybox}
\subsection{Second subsection}
\begin{mybox}{My title}
content
\end{mybox}
\end{document}
我希望它们的标题出现在我的 中\tableofcontents
。如您所见,这些 colobox 位于\section
s、subsection
s... 或任何其他级别内。
问题是尽管如此,它们在呈现的表中都具有相同的缩进级别(作为子部分):
我期望有:
我所能看到的只是使用\addcontentsline
,但我宁愿避免在使用框时编写部分级别( {section}
, ...)。{subsection}
答案1
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[most]{tcolorbox}
\newtcolorbox[list inside=toc,list type=\noexpand\currentseclevel]{mybox}[1]{title={#1}}
\makeatletter
\newcommand\currentseclevel{%
\ifnum \c@subsubsection = 0
\ifnum \c@subsection = 0
section%
\else
subsection%
\fi
\else
subsubsection%
\fi}
\makeatletter
\begin{document}
\tableofcontents
\clearpage
\section{First section}
\begin{mybox}{My title}
content
\end{mybox}
\begin{mybox}{My title}
content
\end{mybox}
\begin{mybox}{My title}
content
\end{mybox}
\section{Second section}
\subsection{First subsection}
\subsubsection{First subsubsection}
\begin{mybox}{My title}
content
\end{mybox}
\subsection{Second subsection}
\begin{mybox}{My title}
content
\end{mybox}
\end{document}