使用 siunitx 时,目录和部分*中的奇怪星号不起作用

使用 siunitx 时,目录和部分*中的奇怪星号不起作用

我在重新定义部分时遇到了一个奇怪的问题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 测试失败。

相关内容