我在重新定义部分时遇到了一个奇怪的问题siunitx
。以下是问题的屏幕截图:
如您所见,目录中出现了一个星号,并且 \section* 命令无法正常工作。标题将是一个星号,实际标题将进入文本。似乎 \section* 命令将星号解释为标题,而忽略其余部分。因此目录中的星号更像是一种症状……
这是一个 MWE (更确切地说是 MNWE):
主文本
\documentclass{styles/diplclass1}
\begin{document}
\tableofcontents
\section*{Starheading}
asdf
\section{Normal heading}
\end{document}
样式/diplclass1.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{styles/diplclass1}
\LoadClass[a4paper,11pt,titlepage,oneside]{scrbook}
\usepackage{siunitx}
\renewcommand{\section}{%
\@startsection{section}%
{1}
{0mm}
{2ex plus 1ex minus 1ex}
{0.5ex plus 0.5ex minus 0.5ex}
{\Large\bfseries}
}
请注意:我需要重新定义部分,因为我在那里应用了一些样式。另外,我需要使用siunitx
。在搜索此问题时,我没有找到任何东西,除了一些似乎与参考书目有关的问题,以及重新定义是\section
可以的\section*
,因为\@startsection
可以处理星号版本。
一旦我删除siunitx
导入或部分重新定义,它就会按预期工作。我如何重新定义部分样式并使用siunitx
?有人知道为什么会出现这个问题吗?
答案1
不要\@startsection
在 KOMA 类中使用,KOMA 中的分段命令定义不同。使用类提供的工具:
\documentclass{scrbook}
\usepackage{siunitx}
\RedeclareSectionCommand[
beforeskip=2ex plus 1ex minus 1ex,
afterskip=0.5ex plus 0.5ex minus 0.5ex,
font=\Large\bfseries]{section}
\begin{document}
\tableofcontents
\section*{Starheading}
asdf
\section{Normal heading}
\end{document}
添加:
通常,当您进行此类重新定义时,KOMA 会向您发出警告,并退回到另一次重新定义。但是通过 siunitx,您正在加载重新定义的 amsgen 包\@ifstar
,现在 KOMA 测试失败。