我有一本小说要排版,我使用 scrbook 类,因为我认为它非常灵活。对于每个章节的开头,我都使用 \chapter{} 命令,并将 {} 内的字段留空,因此该命令只给我文本“第 1 章”。等等。
但是,如果章节没有名称,则不会出现在目录中。 是否可以使它们出现?
我希望这可以解释我想要实现的目标。
编辑1:我正在强烈考虑使用回忆录课程,所以如果有人知道如何在回忆录课程中做到这一点,请告诉我。
编辑2:我刚刚注意到,回忆录课程会自动发生,但我仍然对 scrbook 课程黑客感兴趣。
答案1
通过scrbook
以下操作你可以得到你想要的东西:
\documentclass{scrbook}
\renewcommand{\numberline}[1]{\chaptername~#1}
\begin{document}
\tableofcontents
\chapter{\null}
abc
\chapter{\null}
def
\end{document}
我假设您不使用部分;在这种情况下,技巧一定有所不同。
对于使用部件,可以采用不同的方法:
\documentclass{scrbook}
\usepackage{etoolbox}
\makeatletter
\def\part@numberline#1{\partname~#1}
\def\chapter@numberline#1{\chaptername~#1}
\patchcmd{\l@part}{\begingroup}{\begingroup\let\numberline\part@numberline}{}{}
\patchcmd{\l@chapter}{\begingroup}{\begingroup\let\numberline\chapter@numberline}{}{}
\makeatother
\begin{document}
\tableofcontents
\part{\null}
\chapter{\null}
abc
\chapter{\null}
def
\end{document}
答案2
您可以使用每章前的两行代码来执行此操作:
\chapter[]{}
\addcontentsline{toc}{chapter}{\chaptername{} \thechapter}
最小示例:
\documentclass{scrbook}
\begin{document}
\tableofcontents
\chapter[]{}
\addcontentsline{toc}{chapter}{\chaptername{} \thechapter}
\end{document}
但是在每一章之前你不会看到章节这个词,只有章节编号。
答案3
这是book
文档类的解决方案。它依赖于使用tocloft
包。
\documentclass{book}
\usepackage{tocloft}
\renewcommand\cftchappresnum{Chapter }
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{}
\chapter{}
\end{document}
答案4
如果只应对章节进行此操作,则可以修补\addchaptertocentry
。
\documentclass[toc=flat]{scrbook}
\usepackage{xpatch}
\xpatchcmd{\addchaptertocentry}
{\addtocentrydefault{chapter}{#1}{#2}}
{\addtocentrydefault{chapter}{\chaptername~#1}{#2}}
{}{\PatchFailed}
\begin{document}
\tableofcontents
\chapter{\null}
abc
\chapter{\null}
def
\end{document}
当然,您也可以对其他分段级别执行相同的操作。
\documentclass[toc=flat]{scrbook}
\usepackage{xpatch}
\xpatchcmd{\addparttocentry}
{\addtocentrydefault{part}{#1}{#2}}
{\addtocentrydefault{part}{\partname~#1}{#2}}
{}{\PatchFailed}
\xpatchcmd{\addchaptertocentry}
{\addtocentrydefault{chapter}{#1}{#2}}
{\addtocentrydefault{chapter}{\chaptername~#1}{#2}}
{}{\PatchFailed}
\begin{document}
\tableofcontents
\part{\null}
\chapter{\null}
abc
\chapter{\null}
def
\end{document}
结果