我有一份很长的文档,必须将其分成几卷。为了能够一次性编译,源文件组织如下:
\starttext
\startfrontmatter
% this contains the title page and table of contents
\stopfrontmatter
\startbodymatter
% this contains the text for volume 1
\stopbodymatter
\startfrontmatter
% this contains the title page and table of contents
\stopfrontmatter
\startbodymatter
% this contains the text for volume 2
\stopbodymatter
\startfrontmatter
% this contains the title page and table of contents
\stopfrontmatter
\startbodymatter
% this contains the text for volume 3
\stopbodymatter
\stoptext
ConTeXt 已经有了部分、章节和节的定义,但我找不到有关卷的任何详细信息。我发现关于添加新章节标题的文档,但我不知道这是否是正确的用法。
首先,与其他章节标题不同,我需要卷标题出现在每卷的标题页上,但不出现在正文中,例如:
__________________
| |
|THIS IS THE TITLE |
| |
| by Author |
| |
| |
| |
| Volume I |
|__________________|
其次,它仍应像常规部分一样出现在目录中,例如:
Table of Contents
Volume I
Part 1 - Animals 3
Part 2 - Plants 6
Volume II
Part 3 - Rocks 9
这关于创建自定义部分标题的文档似乎没有涵盖这些要点。卷似乎与其他部分有很大不同,我不确定用它\setuphead
来定义它们是否正确。将卷添加到文档的最佳方法是什么?
答案1
Part 是 ConTeXt 中的顶级分段命令,在我看来,它几乎不可能改变,因此如果您想要\volume
分段命令,则必须使用 重新定义所有结构\definehead
。其实并不难,但相当复杂。
\startfrontmatter
但是像和这样的命令\startbodymatter
并不意味着要重复(各种东西都会被重置,例如零件号),而且看起来你并不希望在新的卷开始时重置你的零件和页码。
因此,我的建议是使用专用宏为卷创建特殊页面,然后手动编写主目录或定义新的全局组合列表。它看起来应该像这样:
\definelist[volume]
\definecombinedlist
[allcontent]
[volume,part]
[criterium=all,level=section]
\def\Volume#1%
{\page[right]
\writetolist[volume]{}{Volume #1}%
% build up the title page here
}
\starttext
\startfrontmatter
\placecombinedlist[allcontent]
\stopfrontmatter
\startbodymatter
\Volume{I}
\part{Animals}
\chapter{One}
\chapter{Two}
\part{Plants}
\Volume{II}
\part{Rocks}
\stopbodymatter
\stoptext