铸造清单和 TOC 冲突

铸造清单和 TOC 冲突

我用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 之后会失败,因此正确的重新定义应该显式调用\cleardoublepagefirst 本身:

\renewcommand{\listoflistings}{%
  \cleardoublepage
  \addcontentsline{toc}{chapter}{\listoflistingscaption}%
  \listof{listing}{\listoflistingscaption}%
}

相关内容