如何从目录 (toc) 中删除条目“列表”

如何从目录 (toc) 中删除条目“列表”

我如何使用\lstlistoflistings来创建列表列表,但不将此列表作为目录中的条目?

通常情况下,星号有助于隐藏此类内容,我使用回忆录作为支持并帮助隐藏列表(如\tableofcontents*,,, ...)的文档类\listoffigures*\listoftables*但添加这样的星号:\lstlistoflistings*没有帮助。

如果没有必要的话,我不想修补任何类文件或其他包。(我使用特克斯如果我想在目录中列出列表,然后又不记得我做了什么更改,我很少会感到烦恼。

目前我用的是latexmk排版我的文件。所以我现在有一个.latexmkrc文件带有一个钩子,在将该条目添加到目录之前将其从内容中删除,如下所示:

add_cus_dep("toc", "toc", 0, "removelistingfromtoc");
sub removelistingfromtoc {
  $origin = "$_[0].toc";
  $dest = "$_[0].toc.unpatched";
  system("mv '$origin' '$dest' && grep -v '\\contentsline.*{List of Listings}' ".
         "'$dest' > '$origin'");
  return 0;
}

例如,这将从 toc 文件中删除以下行:

\contentsline {chapter}{List of Listings}{}{section*.3}

(我将名称“Listing”改为“List of Listings”。顺便说一句:任何以英语为母语的作者都可以帮助我批评这个“List of Listings”是否是一个合适且常用的术语)

答案1

memoir类中,列表似乎是根据 定义的\newlistof,并且由于包通过改造来listings实现,所以应该可以按以下方式重新定义它:\lstlistoflistings\tableofcontentsmemoir

\newlistof{lstlistoflistings}{lol}{\lstlistlistingname}

然后只需添加*按照您说的添加即可。笔记我自己还没尝试过。

相关内容