正确处理负数章节编号

正确处理负数章节编号

我有一本书,从第 -1 章开始。我几乎可以通过添加以下内容来实现这一点。

\setcounter{chapter}{-2}

在序言中,除了在第 -1 章中,减号显示为连字符而不是减号,因为它不在数学模式下。如果我添加命令

\let\chapnum\thechapter
\renewcommand{\thechapter}{$\chapnum$}

那么这会引入新的问题,因为在许多情况下章节编号没有以粗体显示(例如,在定理编号中)。

我想强制将减号改为\textminus或类似的符号,这样它就处于文本模式。我该怎么做?

谢谢你!

答案1

也许是这样的:

\documentclass{book}

\ExplSyntaxOn
\renewcommand{\thechapter}
  {
    \int_compare:nNnT{\value{chapter}}<{0}{\textminus}
    \int_abs:n{\value{chapter}}
  }
\ExplSyntaxOff
\setcounter{chapter}{-2}
\begin{document}
 \chapter{chapter}\label{chap}
 \section{section}
 \ref{chap}
\end{document}

在此处输入图片描述

答案2

Ulrike 的回答是正确的做法,因为它可以避免过多的开销。但作为演示,我们也可以siunitx不使用条件来做到这一点:

\documentclass{book}
\usepackage{siunitx}
\renewcommand\thechapter{\num[mode = text,
  reset-text-family = false, reset-text-series  = false,
  reset-text-shape = false, evaluate-expression]{\value{chapter}}}
\setcounter{chapter}{-2}
\begin{document}
 \chapter{chapter}\label{chap}
 \section{section}
 \ref{chap}
\end{document}

相关内容