非整数章节

非整数章节

我正在尝试获取非整数的章节编号。我当前的代码如下所示:

\chapter*{Example\vspace{-75pt}\\\huge Chapter 0.5}\vspace{50pt}
\addcontentsline{toc}{chapter}{0.5 Example}

但是,代码非常混乱,每个部分都需要进行类似的更改才能保持一致(幸好本章中没有任何部分但这是一个问题)。

我正在寻找一种能够解决上述第一个(或两个)问题的解决方案。

编辑:为了澄清起见,0.5这只是一个例子。更多例子:

\chapter*{Example\vspace{-75pt}\\\huge Chapter Q}\vspace{50pt}
\addcontentsline{toc}{chapter}{Q Example}

\chapter*{Example\vspace{-75pt}\\\huge Chapter Zero point five}\vspace{50pt}
\addcontentsline{toc}{chapter}{Zero point five Example}

\chapter*{Example\vspace{-75pt}\\\huge Chapter Chapter}\vspace{50pt}
\addcontentsline{toc}{chapter}{Chapter Example}

\chapter*{Example\vspace{-75pt}\\\huge Chapter $\frac12$}\vspace{50pt}
\addcontentsline{toc}{chapter}{$\mathbf{\frac12}$ Example}

答案1

不会解释太多,但我们的想法是定义\additionalchapter它能做以下几件事:

  1. 章节编号逐渐减少(因此,当\chapter调用时,主编号与前一个相同)

  2. \thechapter被重新定义以包含所需的附加部分;

  3. \chapter已发行,但以原始形式发行。

为什么我们需要\standardchapter?因为我们必须添加到\chapter代码中以恢复 的标准含义\thechapter

最后,添加了“文本”分数的代码。

生产说明。我使用openanygeometry只是为了使结果的图像更小。

\documentclass[openany]{book}
\usepackage{amsmath} % for \text

\usepackage[a6paper]{geometry} % just to make smaller pictures

\NewDocumentCommand{\additionalchapter}{mO{#3}m}{%
  % #1 = suffix to add
  % #2 = optional argument for toc and header, as usual
  % #3 = title
  \addtocounter{chapter}{-1}%
  \renewcommand{\thechapter}{\standardthechapter#1}%
  \nonstandardchapter[#2]{#3}%
}

\AtBeginDocument{%
  \NewCommandCopy{\standardthechapter}{\thechapter}%
  \NewCommandCopy{\nonstandardchapter}{\chapter}%
  \AddToHook{cmd/chapter/before}{%
    \RenewCommandCopy{\thechapter}{\standardthechapter}%
  }%
}

\NewDocumentCommand{\chapfrac}{mm}{$\frac{\text{#1}}{\text{#2}}$}

\begin{document}

\chapter{First}\label{ch:one}

\ref{ch:one}, \ref{ch:oneandhalf}, \ref{ch:oneplus}, \ref{ch:two}

\additionalchapter{\chapfrac{1}{2}}{First and a half}\label{ch:oneandhalf}

\additionalchapter{\chapfrac{2}{3}}{First and more}\label{ch:oneplus}

\chapter{Second}\label{ch:two}

\end{document}

在此处输入图片描述

答案2

这将创建一个用于的章节“编号”数组\thechapter

\documentclass{report}

\renewcommand{\thechapter}{\csname chapt\arabic{chapter}\endcsname}

\makeatletter
\@namedef{chapt1}{1}
\@namedef{chapt2}{1.5}
\@namedef{chapt3}{II}
\@namedef{chapt4}{C}
\@namedef{chapt5}{$\pi$}
\makeatother

\begin{document}
\chapter{First}
\chapter{Second}
\chapter{Third}
\chapter{Fourth}
\chapter{Fifth}
\end{document}

答案3

在意识到@egreg 的答案在我的 TeX 编辑器上不起作用后,我对其进行了修改,使其如下:

\documentclass[openany]{book}
\usepackage{amsmath} % for \text

\usepackage[a6paper]{geometry}

\newcommand{\customchapter}[2]{
    \addtocounter{chapter}{-1}
    \renewcommand{\thechapter}{#2}
    \chapter{#1}
}

\newcommand{\achapter}[1]{ % used after chapter
    \renewcommand{\thechapter}{\sthechapter}
    \chapter{#1}
}

\AtBeginDocument{
    \let\sthechapter\thechapter
    %\let\schapter\chapter
    %\newcommand{\chapter}[1]{
        %\renewcommand{\thechapter}{\sthechapter}
        %\schapter{#1}
    %} % achapter is not needed
}

\begin{document}
    \chapter{First}
    \customchapter{Between}{$\mathbf{\frac32}$}
    \section{Section Title}
    \chapter{chapter} % chapter 3/2
    \achapter{Second}
\end{document}

相关内容