我用minted
它来突出显示源代码。我想要一个清单列表,并且我希望清单列表本身在主目录中有一个条目。我以为我可以用tocbibind
包来做到这一点,并尝试按照续订说明进行操作\lstlistoflistings
(在 p5 中给出tocbibind
文档),调整该代码(或者我是这样认为的)以适用于minted
代替listings
包。当我这样做时(请参阅下面的 MWE 序言),我得到了目录行,但列表格式变得奇怪(所有条目都在同一行重叠,没有一行点,等等。显然我遗漏了一些东西,\renewcommand
但我不确定是什么。
梅威瑟:
\documentclass{report}
\usepackage[nottoc,chapter]{tocbibind}
\usepackage[chapter]{minted}
\usemintedstyle{default}
% If I comment out the next 3 lines, the list of listings looks
% normal, but there is no "list of listings" line in the TOC
\renewcommand{\listoflistings}{\begingroup
\tocfile{\listoflistingscaption}{lol}
\endgroup}
\begin{document}
\tableofcontents
\listoflistings
\chapter{the first chapter}
\section{section one point one}
\begin{listing}
\begin{minted}[fontsize=\small, tabsize=2]{r}
x <- runif(10)
y <- rnorm(10)
plot(x, y, axes=FALSE, ann=FALSE, pch=16)
\end{minted}
\caption[short caption for lst1]{Longer caption to be used when listing one appears\label{lst:myLstOne}}
\end{listing}
\chapter{the second chapter}
\section{section two point one}
\begin{listing}
\begin{minted}[fontsize=\small, tabsize=2]{r}
a <- runif(5)
b <- rnorm(5)
plot(b, a)
\end{minted}
\caption[short caption for lst2]{Longer caption to be used when listing two appears\label{lst:myLstTwo}}
\end{listing}
\end{document}
编辑: 如果我将序言的相关部分更改为以下内容,我可以获得格式正确的 LOL 和目录中的 LOL 条目:
\renewcommand{\listoflistings}{\begingroup
\listof{listing}{\listoflistingscaption}
\tocfile{\listoflistingscaption}{lol}
\endgroup}
\listoflistings
我是在源代码中寻找的定义时得到了这个想法的minted
。然而,我最终得到了一个第二(空)第一个(正确)之后大笑。
答案1
向目录中添加未编号的节或章节标题的常用方法是:
\addcontentsline{toc}{<secunit>}{<heading>}
这就需要重新定义:
\renewcommand{\listoflistings}{%
\addcontentsline{toc}{chapter}{\listoflistingscaption}%
\listof{listing}{\listoflistingscaption}%
}
但是,由于\listof
将发布章节标题,因此会隐式调用 also,\cleardoublepage
这意味着您最终会在目录中得到错误的页码,就像\addcontentsline
之前展开的那样。如果列表长度超过一页,则将其放在\listof...
also 之后会失败,因此正确的重新定义应该显式调用\cleardoublepage
first 本身:
\renewcommand{\listoflistings}{%
\cleardoublepage
\addcontentsline{toc}{chapter}{\listoflistingscaption}%
\listof{listing}{\listoflistingscaption}%
}