列表列表(使用 tcblistof)垂直间距,按章节分组

列表列表(使用 tcblistof)垂直间距,按章节分组

我目前正在尝试设置\tcblistof命令内的垂直间距。

导致我出现问题的模板可以在这里找到:https://github.com/ManuelRauber/LaTeX-Template

首先,这里有一些显示我的问题的截图。

目录显示了我想要的所有列表:章节标题被分组在一起,章节之间留出更多空间。这完全没问题。

目录

图表列表和表格列表也是如此(lof 为例)。章节被分组在一起,并且章节内标题之间的间距最小。

图片列表

问题是我的清单。由以下代码创建(有关完整示例,请参阅 GitHub 链接或此处https://tex.stackexchange.com/a/124688/15907):

% by Thomas F. Sturm (https://tex.stackexchange.com/a/124688/15907)
\newtcblisting[auto counter,number within=section,
  list inside=mypyg]{listingsbox}[3][]{%
  listing only,title={Listing \thetcbcounter: #3},
  list entry={\protect\numberline{\thetcbcounter}#3},
  enhanced,breakable,drop fuzzy shadow,myminted/#2,#1}

\begin{document}

\tcblistof[\addchap*]{mypyg}{Codeverzeichnis}

这是输出:

列表列表

我尝试了这里找到的解决方案:tcblistof,书籍类别和垂直间距。但这对我不起作用(并且我将 patchcmd 改为使用 addchap 而不是 chapter)。

我需要做什么才能\tcblistof按章节对条目进行分组(并获得章节内的最小间距)?

答案1

在序言中添加以下几行:

\usepackage{etoolbox}
\pretocmd{\chapter}{\addtocontents{mypyg}{\addvspace{10pt}}}{}{}
\makeatletter
\renewcommand*\l@tcolorbox{\@dottedtocline{1}{1.5em}{3em}}
\makeatother

然后在文档中,列出清单:

\begingroup
\parskip=0pt
\tcblistof[\addchap*]{mypyg}{Codeverzeichnis}
\endgroup

以下是使用所提供链接中的设置的完整示例:

\documentclass[12pt,a4paper,oneside,
final,
titlepage,
headsepline,
BCOR6mm,
toc=listof,
parskip=full,
ngerman,
]{scrreprt} 
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{etoolbox}
\usepackage[many,minted]{tcolorbox}
\tcbuselibrary{listings}

\newcommand{\mynewminted}[3]{%
  \newminted[#1]{#2}{#3}%
  \tcbset{myminted/#1/.style={minted language=#2,minted options={#3}}}}

\mynewminted{mycsharp}{csharp}{tabsize=2,fontsize=\footnotesize}
\mynewminted{myjavascript}{js}{tabsize=2,fontsize=\footnotesize}
\mynewminted{myxml}{xml}{tabsize=2,fontsize=\footnotesize}
\mynewminted{myshell}{shell-session}{tabsize=2,fontsize=\footnotesize}
\mynewminted{myjson}{json}{tabsize=2,fontsize=\footnotesize}
\mynewminted{mycode}{text}{tabsize=2,fontsize=\footnotesize}

\newtcblisting[auto counter,number within=section,
  list inside=mypyg]{listingsbox}[3][]{%
  listing only,title={Listing \thetcbcounter: #3},
  list entry={\protect\numberline{\thetcbcounter}#3},
  enhanced,breakable,drop fuzzy shadow,myminted/#2,#1}

\pretocmd{\chapter}{\addtocontents{mypyg}{\addvspace{10pt}}}{}{}
\makeatletter
\renewcommand*\l@tcolorbox{\@dottedtocline{1}{1.5em}{3em}}
\makeatother

\begin{document}

\tableofcontents

\begingroup
\parskip=0pt
\tcblistof[\addchap*]{mypyg}{Codeverzeichnis}
\endgroup

\chapter{Test chapter}
\section{A test section}
\begin{listingsbox}{mycsharp}{A test listing}
test
\end{listingsbox}

\section{Another test section}
\begin{listingsbox}{mycsharp}{A test listing}
test
\end{listingsbox}

\chapter{Test chapter}
\section{A test section}
\begin{listingsbox}{mycsharp}{A test listing}
test
\end{listingsbox}

\section{Another test section}
\begin{listingsbox}{mycsharp}{A test listing}
test
\end{listingsbox}

\end{document}

生成的文档的图像:

在此处输入图片描述

目录图片:

在此处输入图片描述

列表图片:

在此处输入图片描述

相关内容