指定 tocloft 包长度 - XeLaTeX

指定 tocloft 包长度 - XeLaTeX

我正在使用 XeLaTeX 编译器创建我的 pdf 文档。最近我不得不调整一些长度托克洛夫特目录,例如我尝试\cftbeforechapskip使用\setlength命令进行更改——但我一直收到两个错误:未定义控制序列缺少 \begin{document}

请注意,我的文档中必须有 Times 字体(因此我在代码示例中包含了设置它的方式)。

\setlength与其他长度(非 tocloft)一起使用有时会发出警告,但仍然有效。

这是我的代码示例:

%------------------ basic document settings -------------------------------
\documentclass[14pt]{article} % шрифт и формат документа

\usepackage{polyglossia}
\setmainlanguage{russian}
\setmainfont[]{Times New Roman}
%------------------ ToC setup -------------------------------------------------------
\usepackage{tocloft}
\setlength{\cftbeforechapskip}{0cm} %this line gives errors

\author{Мамонтов Иван, Т12О-402Б-20}
%----------------------------------------------------------------------------------------
\begin{document}

\tableofcontents

\section{Part one}
\subsection{Subpart one}

\section{Part two}

\end{document}

此代码示例生成包含以下错误的日志文件:

LaTeX 错误:缺少 \begin{document}。l.9 \setlength{\cftbeforechapskip}{0cm}

未定义控制序列。\cftbeforechapskip l.9 \setlength{\cftbeforechapskip}{0cm}

LaTeX 警告:未使用的全局选项:[14pt]。

答案1

仅当文档类提供时,包才定义与所有其他命令或tocloft参数\cftbeforechapskip一起。\cftchap[...]\chapter

\if@cfthaschapter
  \newlength{\cftbeforechapskip}
    \setlength{\cftbeforechapskip}{1.0em \@plus\p@}
  \newlength{\cftchapindent}
    \setlength{\cftchapindent}{0em}
[...]
\fi

设置\cftbeforechapskip没有章节的课程是无用的,因为它永远不会被使用。

就您而言,您可能想要设置\cftbeforesecskip

%------------------ basic document settings -------------------------------
\documentclass[12pt]{article} % шрифт и формат документа

\usepackage{polyglossia}
\usepackage{tocloft}

%%%% settings

% languages and fonts
\setmainlanguage{russian}
\setmainfont{Times New Roman}

% toc
\setlength{\cftbeforesecskip}{0cm}

\begin{document}

\author{Мамонтов Иван, Т12О-402Б-20}

\tableofcontents

\section{Part one}
\subsection{Subpart one}

\section{Part two}

\end{document}

我已将14pt选项(不存在)修复为12pt

在此处输入图片描述

相关内容