我正在排版一本小说,它被分成“书”,进一步分为“章节”和“插曲”。 “章节”和“插曲”有独立的计数器(第 1 章后面是插曲 A,然后是第 2 章、插曲 B、第 3 章、第 4 章、第 5 章、插曲 C 等),并且被视为处于同一级别;两者都不是另一个的细分。换句话说,目录应该是这样的:
Prologue ................................................ ##
Book I .................................................. ##
1. Chapter 1 ............................................ ##
Interlude A: Lorem ipsum ................................ ##
2. Chapter 2 ............................................ ##
Interlude B: Lorem ipsum ................................ ##
3. Chapter 3 ............................................ ##
4. Chapter 4 ............................................ ##
5. Chapter 5 ............................................ ##
Interlude C: Lorem ipsum ................................ ##
6. Chapter 6 ............................................ ##
⋮
16. Chapter 16 .......................................... ##
Interlude G: Lorem ipsum ................................ ##
Book II ................................................. ##
17. Chapter 17 .......................................... ##
⋮
Interlude H: Lorem ipsum ................................ ##
⋮
每个章节/插曲都应在其页眉页、目录和页眉/页脚中显示适当的类型。(目前没有插曲作为书的开头,但我不想依赖这一点。)
我该如何实现这一点?我试过了titlesec
,但每一步都让我很为难。(尤其是页眉/页脚。)我目前正在使用该类book
。我还希望使用与 XeLaTeX 兼容的解决方案。
答案1
这样的东西能满足你的需要吗?当然你需要按照自己的意愿格式化它,但我认为插曲问题没问题。memoir
类有很多技巧可以帮助您以最佳方式格式化文档。此外,由于您没有指定编译器,因此我使用了启用字体选择的 XeLaTeX。
编辑:使用\refstepcounter
而不是\stepcounter
,以便能够正确地进行引用,正如 Johannes_B 在评论中所建议的那样。
\documentclass{memoir}
\usepackage{fontspec,lipsum}
\setmainfont{Arial}
\renewcommand*{\cftbookleader}{\normalfont\cftdotfill{\cftdotsep}}
\renewcommand*{\cftchapterleader}{\normalfont\cftdotfill{\cftdotsep}}
\newcounter{interludes}
\renewcommand{\theinterludes}{\Alph{interludes}}
\newcommand{\interlude}[1]{\refstepcounter{interludes}
\chapter*{#1}
\addcontentsline{toc}{chapter}{Interlude \theinterludes: #1}
}
\begin{document}
\tableofcontents*
\chapter*[Prologe]{Prologe}
\addcontentsline{toc}{chapter}{Prologe}
\lipsum[1-3]
\book{The first book}
\chapter{The first chapter}
\lipsum[4-9]
\interlude{The interlude A}
\lipsum[4-9]
\end{document}
答案2
一个简单的代码,使用 和 来获得您想要的东西,titlesec
如果您没有附录,它可以运行良好:它包括在我们对“Interlude”进行更改后使用带有选项的环境:tocloft
appendix
appendices
toctitle
\appendixname
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{garamondx}
\usepackage{geometry, lipsum, etoolbox}
\usepackage[english]{babel}
\usepackage[newparttoc,explicit, clearempty]{titlesec}%
\usepackage[titles]{tocloft}
\renewcommand{\cftpartpresnum}{BOOK\enspace}
\renewcommand{\cftchapaftersnum}{.}
\renewcommand\cftchapdotsep{\cftdotsep}
\titleformat{\part}[display]{\bfseries\filcenter \def\partname{Book}}{\Huge\MakeUppercase{\partname}\enspace\thepart}{20pt}{\Huge #1}[\thispagestyle{empty}]%
\titleformat{\chapter}[display]{\filcenter\bfseries}{\LARGE\MakeUppercase{\chaptername}~\thechapter}%
{1\baselineskip}{\huge#1}%
\titleformat{name=\chapter, numberless}[block]{\filcenter\bfseries}{}%
{0pt}{\huge#1\ifstrequal{#1}{\contentsname}{}{\addcontentsline{toc}{chapter}{#1}}}%
\usepackage[titletoc]{appendix} %
\AtBeginEnvironment{appendices}{\def\chaptername\appendixname}
\AtEndEnvironment{appendices}{\def\chaptername\oldchaptername}
\newenvironment{interludes}{%
\def\chaptername{Interlude}\def\appendixname{Interlude}\appendices}%
{\endappendices}
\makeatletter\renewcommand\tableofcontents{%
\chapter*{\contentsname}%
\@starttoc{toc}%
}
\makeatother
\begin{document}
\tableofcontents
\chapter*{Prologue}
\lipsum[1]
\part{}
\chapter{Chapter the First}
\lipsum
\chapter{Chapter the Second}
\lipsum
\chapter{Chapter the Third}
\lipsum
\begin{interludes}
\chapter{A First Interlude}
\lipsum
\chapter{A Second Interlude}
\lipsum
\end{interludes}
\chapter{Chapter the Sixth}
\lipsum
\part{}
\chapter{Chapter the Seventh}
\lipsum
\begin{interludes}
\chapter{A Third Interlude}
\lipsum
\end{interludes}
\end{document}
答案3
这与 Guilherme Santos 的回答类似。我设法将其作为对另一个问题的回答发布!因此,我接受自己不是第一个,但无论如何,还是在这里。
这是我能想到的最简单的初步解决方案。
基本上,它颠覆了memoir
和命令,用和代替它们,并添加了一个命令。我假设对于这三个命令,除了(例如\chapter
)“第 1 章”之外,您还想要其他文本,而且除了默认章节样式之外,我还没有做任何事情。\book
\mychapter
\mybook
\interlude
memoir
% !TEX TS-program = xelatex
\documentclass{memoir}
\newcounter{interlude}
\renewcommand{\theinterlude}{\Alph{interlude}}
\setcounter{interlude}{0}
\newcommand{\interlude}[1]{%
\addtocounter{interlude}{1}
\chapter{Interlude \theinterlude: #1}
\addtocounter{chapter}{-1}
}
\newcommand{\mybook}[1]{%
\book{Book \thebook: #1}
}
\newcommand{\mychapter}[1]{%
\chapter{Chapter \thechapter: #1}
}
\chapterstyle{default}
\renewcommand{\chapterheadstart}{}
\renewcommand{\printchaptername}{}
\renewcommand{\chapternamenum}{}
\renewcommand{\printchapternum}{}
\renewcommand{\afterchapternum}{}
\renewcommand{\chapternumberline}[1]{}
\renewcommand{\booknumberline}[1]{}
\begin{document}
\frontmatter
\tableofcontents*
\mainmatter
\mybook{To Begin at the Beginning}
\mychapter{Starting}
\interlude{First Interlude}
\interlude{Second Interlude}
\mychapter{Continuing}
\interlude{Another Interlude}
\mychapter{Almost in the Middle}
\interlude{Another Interlude}
\interlude{Another Interlude}
\mybook{To End at the End}
\mychapter{Nearly There}
\interlude{Another Interlude}
\interlude{Another Interlude}
\mychapter{Getting Close}
\interlude{Another Interlude}
\mychapter{At Last!}
\interlude{Another Interlude}
\interlude{Another Interlude}
\end{document}
以下是目录的一部分:
显然,您可能希望进一步调整排版;我建议您探索memoir
可用的各种章节样式,如果您需要进一步的帮助,请提出新问题。