.cls 文件中的 \setlength 被忽略

.cls 文件中的 \setlength 被忽略

我正在为我的论文创建一个自定义 .cls 文件。完整文件对于一个最小工作示例来说太多了,也许没有必要回答我的问题。话虽如此,我愿意根据需要编辑问题以添加更多信息。

调整目录,我试图调整“第 n 章”和“第 n 章标题”之间的水平间距

在此处输入图片描述

正如评论中指出的那样,em它会随字体大小缩放,但不随我尝试调整的水平空间缩放。em当字体大小设置为 10pt 时,以下是设置为 0.7 的空间: 在此处输入图片描述

但是,em当字体大小为 11pt 时,这个静态的 0.7 看起来不太好看: 在此处输入图片描述 这可以在 .cls 文件定义章节的部分完成:

\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                     \refstepcounter{chapter}%
                     \typeout{\@chapapp\space\thechapter.}%
                     \addcontentsline{toc}{chapter}%
                               {\@chapapp~\thechapter\hspace{<length goes here>}{#1}}

我可以手动将其设置为不同的值,但我想做的是定义一个新的长度,\chapsep它根据字体大小而变化。我尝试了以下代码的变体,但没有效果:

\newlength{\chapsep}
\if@compatibility
  \renewcommand\@ptsize{0}
\else
  \DeclareOption{10pt}{\renewcommand\@ptsize{0}\setlength\chapsep{0.7em}}
\fi
\DeclareOption{11pt}{\renewcommand\@ptsize{1}\setlength\chapsep{1.2em}}
\DeclareOption{12pt}{\renewcommand\@ptsize{2}\setlength\chapsep{0.1em}}

无论我做什么,长度似乎都没有改变,当我打印它(使用包printlen)时,我可以看到它保持在 0.0pt。如果我在与字体大小相关的选项声明或条件语句之外设置长度,则命令将按预期工作。

欢迎大家解释为什么\setlength忽略了(也许我没有使用正确的语法DeclareOption?),以及如何调整新长度的建议。提前致谢。

相关内容