![.cls 文件中的 \setlength 被忽略](https://linux22.com/image/452888/.cls%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%20%5Csetlength%20%E8%A2%AB%E5%BF%BD%E7%95%A5.png)
我正在为我的论文创建一个自定义 .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
?),以及如何调整新长度的建议。提前致谢。