如何让 minted 的 \listoflistings 使用小节的副标题并出现在目录中?

如何让 minted 的 \listoflistings 使用小节的副标题并出现在目录中?

我希望\listoflistingsminted 的显示为子部分标题。(我的\documentclassscrartcl。)

比如\printbibliography有一个“标题”选项,你可以用它来定义应该使用哪种标题类型。\printacronyms(包acro)也有同样的功能。\KOMAoption{listof}{totocnumbered,leveldown}我也可以\listoffigures从一个section标题移动到下一个subsection标题,但\listoflistings这些都不起作用。

这个 Stackexchange 答案没有起作用,而且也“只是”将它添加到目录中,而不是 - 这是我主要关心的 - 将它向下移动一个“标题级别”。

我只想要一个副标题(subsection类似),而不是标题(section)。如果它可以出现在目录中,那就太好了。


基本上我的目录应该是这样的:

  1. 列表
    8.1. 图片列表
    8.2. 列表列表
    ...

顺便说一句,还问过在 GitHub 仓库中

答案1

KOMA-Script 类喜欢scrartcl

\addtotoclist[float]{lol}
\renewcommand*\listoflistings{\listoftoc[{\listoflistingscaption}]{lol}}

可用于获取由 包控制的列表列表 (LOL) tocbasic。此包由 KOMA-Script 类加载,并自动用于 TOC、LOF、LOT 等。 的可选参数设置\addtotoclistowner=floatlol因此,KOMA-Script 选项的设置listof={...}也会影响 LOL。

要格式化 LOL 中的列表条目,您可以使用

\DeclareTOCStyleEntry[
    level=1,
    indent=1.5em,
    numwidth=2.3em
]{tocline}{listing}

或者

\makeatletter
\newcommand\l@listing{\l@figure}
\makeatother

例子:

\documentclass{scrartcl}
\KOMAoption{listof}{totocnumbered,leveldown}

\usepackage{minted}
\addtotoclist[float]{lol}
\renewcommand*\listoflistings{\listoftoc[{\listoflistingscaption}]{lol}}
\DeclareTOCStyleEntry[
    level=1,
    indent=1.5em,
    numwidth=2.3em
]{default}{listing}

\begin{document}
\tableofcontents

\section{Example Section}
\begin{listing}[hb]
\begin{minted}{java}
System.out.println("Test");
\end{minted}
\caption{Test}
\end{listing}

\section{Lists}
\listoffigures
\listoflistings
\end{document}

结果:

在此处输入图片描述


标准类likearticle没有定义\KOMAoptions,也不会加载tocbasic。但你可以tocbasic手动加载包并使用:

\documentclass{article}
\usepackage{minted}

\usepackage{tocbasic}
\addtotoclist[float]{lof}
\renewcommand*\listoffigures{\listoftoc[{\listfigurename}]{lof}}
\addtotoclist[float]{lol}
\renewcommand*\listoflistings{\listoftoc[{\listoflistingscaption}]{lol}}
\DeclareTOCStyleEntry[
    level=1,
    indent=1.5em,
    numwidth=2.3em
]{default}{listing}

\doforeachtocfile[float]{%
  \setuptoc{#1}{numbered,leveldown}%
}


\begin{document}
\tableofcontents

\section{Example Section}
\begin{listing}[hb]
\begin{minted}{java}
System.out.println("Test");
\end{minted}
\caption{Test}
\end{listing}

\section{Lists}
\listoffigures
\listoflistings

\end{document}

结果:

在此处输入图片描述

答案2

一个非常基本的解决方案:

  • 使用 DIY 标题\listoftoc*(基本上是\@starttoc
  • LoL 格式类似 LoF

列表

代码:

% arara: pdflatex: { shell: 1 }
\documentclass{scrartcl}
\KOMAoption{listof}{totocnumbered,leveldown}
\usepackage{minted}

\makeatletter
\newcommand\l@listing{\l@figure}
\makeatother

\begin{document}

\begin{listing}
\begin{minted}{java}
System.out.println("Test");
\end{minted}
\caption{Test}
\end{listing}

\section*{Lists}
\subsection*{List of listings}
\listoftoc*{lol}

\end{document}

相关内容