使用“minted”包与“tocloft”包中的 cftbeforesecskip 命令不兼容。我该怎么做才能修复它?

使用“minted”包与“tocloft”包中的 cftbeforesecskip 命令不兼容。我该怎么做才能修复它?

我有一个相对较大的文档,其中通过该包对目录进行了大量自定义修改tocloft。我想通过该minted包包含语法高亮的源代码。

然而,即使只是添加\usepackage{minted}也会引入与目录相关的错误。

我把整个文档拆开,发现它与这个命令有关:

\renewcommand\cftbeforesecskip{\setlength{4pt}{}}

我不知道这个命令的作用是什么,也许我可以删除它,但我宁愿不这样做。我该如何解决这个问题?

下面是一个最小工作示例,即使没有 它也能够编译\usepackage{minted},但是有 则会出现错误:

\documentclass[12pt]{article}

\usepackage{minted}
\usepackage{tocloft}

\renewcommand\cftbeforesecskip{\setlength{4pt}{}}

\begin{document}
    
\begin{center}
    \tableofcontents
\end{center}

\section{Intro}
\end{document}

答案1

这与 无关minted,而只是改变 值的方式错误\cftbeforesecskip

软件包tocloft文档第 2.2 节“更改标题”内容如下

[边注]
\cftbeforeZtitleskip
\cftafterZtitleskip

[正文]
这些长度控制标题前后的垂直间距。您可以使用 更改它们的默认值\setlength

因此你可以使用

\setlength\cftbeforesecskip{4pt}

我的评论中的一个(\renewcommand\cftbeforesecskip{4pt})不被推荐,并且可能会导致问题。

答案2

我不知道你在哪里找到的

\renewcommand\cftbeforesecskip{\setlength{4pt}{}}

这是完全错误的。正如手册所tocloft指出的,控制序列的形式

\cftbeforeXskip

其中X代表chapsecsubsec等,是长度。

在此处输入图片描述

因此你应该说

\setlength{\cftbeforeXskip}{<length>}

并专门针对您的情况,

\setlength{\cftbeforesecskip}{4pt}

相关内容