我该如何修复 Sniplets 部分中 Memoir 的标题“内容”?

我该如何修复 Sniplets 部分中 Memoir 的标题“内容”?

回忆录我真的很喜欢引用自定义实体的方式,例如其手动的。它允许您定义一组项目,就像图形和表格一样。我正在将此代码重复用于其他目的,但我注意到回忆录手册本身也存在一个小故障。Sniplets 部分中的所有页面都有一个标题“目录”,如下所示。

在此处输入图片描述

我怀疑是\sniplettoc宏中的某些东西导致了这种情况。memsty.sty文件:

%%%% SNIPLETS %%%%
\newcounter{sniplet}
\counterwithin{sniplet}{chapter}
\newcommand*\snipletname{Sniplet}
\newcommand*\snipletref[1]{\snipletname~\ref{#1} on~\pref{#1}}
\newenvironment{sniplet}[1][]{
  \refstepcounter{sniplet}
  \edef\mem@e{\@ifnotmtarg{#1}{~(#1)}}
  \section*{\snipletname~\thesniplet\mem@e}
  \phantomsection
  \addcontentsline{toc}{section}{\snipletname\ \thesniplet\mem@e}
  \renewenvironment{lcode}{%\@zeroseps
    \renewcommand{\verbatim@startline}{\verbatim@line{\hskip\gparindent}}
    \small\setlength{\baselineskip}{\onelineskip}\verbatim}%
  {\endverbatim
    \vspace{-0.75\baselineskip}%
    \noindent}
}{}

\let\normalchangetocdepth\changetocdepth
\newcommand\sniplettoc{%
  \setcounter{@memmarkcntra}{\value{tocdepth}}%
  \begingroup%
  \let\changetocdepth\@gobble%
  \normalchangetocdepth{-10}%
  \cftinsertcode{start-sniplets}{\normalchangetocdepth{3}}%
  \cftinsertcode{end-sniplets}{\normalchangetocdepth{-10}}%
  \let\tocheadstart\relax%\@gobble
  % \printtoctitle\@gobble
  \renewcommand\printtoctitle[1]{\section*{Sniplet overview}}%
  \let\aftertoctitle\relax%
  \let\printtocnonum\relax%
  \let\precistoctext\@gobble%
  \setlength\cftsectionindent{0pt}%
  \tableofcontents*
  \endgroup
  \setcounter{tocdepth}{\value{@memmarkcntra}}
}

我该如何解决?

答案1

非常感谢乔恩提供线索他的评论,因此我以 CW 的身份发布此内容。

正如我猜测的那样,Sniplet 的小目录在这里造成了麻烦。乔恩给我指明了正确的方向,通过重写“Sniplets 概述”\tableofcontents*中的部分memsty.sty,我得到了我预期的结果。我已经替换了

\tableofcontents*

在该文件的第 1088 行

\printtoctitle{}
\@starttoc{toc}%

以防止覆盖\tableofcontents*标题中的任何内容。

我会通知 Lars Madsen(我相信是当前的维护者)在回忆录包中对这个问题进行整理。

相关内容