我正在尝试获取非整数的章节编号。我当前的代码如下所示:
\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
它能做以下几件事:
章节编号逐渐减少(因此,当
\chapter
调用时,主编号与前一个相同)\thechapter
被重新定义以包含所需的附加部分;\chapter
已发行,但以原始形式发行。
为什么我们需要\standardchapter
?因为我们必须添加到\chapter
代码中以恢复 的标准含义\thechapter
。
最后,添加了“文本”分数的代码。
生产说明。我使用openany
和geometry
只是为了使结果的图像更小。
\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}