我正在使用 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
。