1

这个问题中,我问,如何在部分下生成规则。使用 sectsty 提供的答案可以满足我的要求,但会引发一个问题:如果我使用包 sectsty,则 \part-command 会产生错误:

! Undefined control sequence.
\NR@part ...elax \refstepcounter {part}\@maybeasf 
                                                  \addcontentsline {toc}{par...
l.8 \part{partname}

如果我使用 book-documentclass 而不是 scrbook,它可以正常工作。但是我使用了 Komascript 的很多功能,所以我不想切换。知道任何人的解决方案,我如何同时使用两者?

编辑:以下简单示例重现了问题:

\documentclass{scrbook}
   \usepackage{sectsty}
\begin{document}
   \part{test} % crash and burn here
\end{document}
4

2 回答 2

2

问题是 sectsty 是为使用旧版本的 scrbook 而编写的。如果您查看第 553 行的 sectsty.sty 文件,您会发现它使用了 1998 年 scrbook.cls v2.5e 中的一些代码。这就是问题所在。如果将最新版本的 scrbook.cls (v3.04a, 2009/07/24) 的相关部分拼接到 sectsty.sty 中,似乎一切正常。我已经这样做了,并将文件放在这里。请注意,除了确保它在您的示例代码上运行正常之外,我没有对此进行测试。

于 2009-09-11T11:59:44.857 回答
1

那么......你使用什么类?komascript 中的标准书类或 srcbook?

如果您使用的是标准书本类,则 sectsty 对 \part 命令有特定的命令:

\partnumberfont{hcommandsi} 只改变part' heading numbers only; this does not aect the title of the part heading. \parttitlefont{hcommandsi} Changes the style of部分标题的样式;这不会影响部分标题的编号。\partfont{hcommandsi} 仅通过在打印每个标题之前执行 {hcommandsi} 来更改“部分”标题的样式;这会影响部件的标题和部件号。

如果您使用的是 KOMA-script 类,则 sectsty 文档指出:

如果您只想更改用于所有章节标题的字体,则不应将 sectsty 与任何 KOMA 脚本类一起使用。相反,您应该重新定义 KOMA 脚本提供的 \sectfont 命令您不能使用 KOMA-script \sectfont 命令,那么 sectsty 可能与 KOMA-script 类一起使用。您应该注意 sectsty 命令应用的修改在 \sectfont 命令执行后立即发生。这个包的文档是用标准的 LATEX 类编写的,因此可能与 KOMA 脚本类不完全相关。尽管如此,尽管出现问题时的行为有所不同,

来自:Sectsty 文档第四章

编辑:如果你想要的只是你的部分和章节下的一行,但仍然想使用 \part 命令,为什么不放弃 sectsty,并使用 \hrule 在 koma-script 中重新定义切片命令?

于 2009-09-08T18:29:30.983 回答