使用 tcolorbox 和 listings on 可在目录中显示条目

使用 tcolorbox 和 listings on 可在目录中显示条目

我正在使用tcolorbox它来制作文档。这是我的代码吗?

\documentclass{scrartcl}
%%
\usepackage{tcolorbox}
\tcbuselibrary{listingsutf8,documentation}

\newcommand{\lcmd}[1]{\texttt{\textbackslash{#1}}} 

\begin{document}

\tableofcontents
%%
\section{The Problem}
\subsection{Example 1: listing on}
%%
\begin{tcblisting}{title= Example 1}
    \section{Main Section} 
    An Example you to usethe section commands.
    \subsection{Sub Section} 
    \subsubsection{SubSub Section} 
\end{tcblisting}
%
\end{document}

编译将代码片段的部分添加到目录中。

输出

我该如何预防?

答案1

更新后续跟进:添加其他包。

更改tocdepth之前的tcblisting--以抑制 ToC 中的条目--然后在之后恢复它。

使用\addtocontents{toc}{\protect\setcounter{tocdepth}{-1}}\addtocontents{toc}{\protect\setcounter{tocdepth}{3}}

其中的部分tcblisting将以#1 开始。

C

\documentclass{scrartcl}

\usepackage{mathtools}% added to check compatiblity
\usepackage{todonotes}% idem

\usepackage{tcolorbox}
\tcbuselibrary{listings,documentation}
\newcommand{\lcmd}[1]{\texttt{\textbackslash{#1}}} 

\newcounter{oldsection}% added <<<<<<<<<<<<

\begin{document}
    \tableofcontents

    \section{Introduction}
    \section{The Problem}
    \subsection{Example 1: listing on}

    \addtocontents{toc}{\protect\setcounter{tocdepth}{-1}} % suppress all entries to ToC<<<
    \setcounter{oldsection}{\thesection} % save section number
    \addtocounter{section}{-\thesection} % start numbering with 1

    \begin{tcblisting}{title= Example 1}
        \section{Main Section} 
        An Example you to use the section commands.
        \subsection{Sub Section} 
        \subsubsection{SubSub Section} 
        \section{Conclusions}
        \subsection{Another Sub Section} 
    \end{tcblisting}

    \addtocontents{toc}{\protect\setcounter{tocdepth}{3}} % restore <<<<
    \setcounter{section}{\theoldsection} % % restore <<<<...    

    \section{Another Section}  
    \subsection{Last subsection}    
    
\end{document}

相关内容