我对未编号部分 ( \part*{}
) 有以下奇怪的问题。
所有章节均未编号(它们有自己的名称,因此编号有点没用;而且,我不知道如何避免Chapter ...
章节名称中的前缀)并且额外添加到 TOC 运行良好。
\chapter*{Nové místo}
\addcontentsline{toc}{chapter}{Nové místo}
TOC 调用章节开头的正确页码。
章节按部分排列。包含故事的三个部分均已编号。
\part{Vetřelci}
\part{Domowina I}
\part{Stvoření světa}
但目前第四部分没有编号——因为它包含故事中的重要人物列表和关于他们的简要信息以及其他一些类似的信息。
\part*{Dodatky}
\addcontentsline{toc}{part}{Dodatky}
问题是,TOC 调用了错误的部分开头页码。它调用的是该部分中第一章的页码,而不是部分名称实际所在的页码。
因此,目录中的一页被调用了两次 - 即使部分名称在页面上单独出现。章节从下一页开始。就像这样:
最小工作示例
\documentclass[b5paper,10pt,twoside,openany]{book}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\begin{document}
\pagenumbering{roman}
\pagestyle{plain}
\author{Václav Macůrek}
\title{Vzpomínky na Kouzelný svět}
\date{nikdy}
\maketitle
\mainmatter
\pagenumbering{arabic}
\part{Vetřelci}
\chapter{AAAAA}
\part{Domowina I}
\chapter{BBBBB}
\part{Stvoření světa}
\chapter{CCCCC}
\backmatter
% bibliography, glossary and index would go here.
\part*{Dodatky}
\addcontentsline{toc}{part}{Dodatky}
\chapter*{Nové místo}
\addcontentsline{toc}{chapter}{Nové místo}
\tableofcontents
\end{document}
如果我将book
class 替换为scrbook
class(以允许使用 \addpart 来表示未编号的部分,称为 Dodatky),许多文本(据我所见,大部分是粗体)使用的字体与我设置的字体不同(非常丑陋)。而且,页码位于页面的左侧或右侧,而不是中间(这是我的选择)。
答案1
您可以设置secnumdepth
为-2
,因此各部分也未编号。*
中没有必要\backmatter
。
(该类book
实际上并不期望\part
在中使用\backmatter
。)
\documentclass[b5paper,10pt,twoside,openany]{book}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\begin{document}
\pagenumbering{roman}
\pagestyle{plain}
\author{Václav Macůrek}
\title{Vzpomínky na Kouzelný svět}
\date{nikdy}
\maketitle
\mainmatter
%\pagenumbering{arabic} % unnecessary
\part{Vetřelci}
\chapter{AAAAA}
\part{Domowina I}
\chapter{BBBBB}
\part{Stvoření světa}
\chapter{CCCCC}
\backmatter
\setcounter{secnumdepth}{-2}
% bibliography, glossary and index would go here.
\part{Dodatky}
\chapter{Nové místo}
\tableofcontents
\end{document}
请注意,确实如此\mainmatter
,\pagenumbering{arabic}
因此无需重复该指令。