ConTeXt:\部分无空白页

ConTeXt:\部分无空白页

根据ConTeXt 维基

默认情况下\part不生成标题,因为大多数情况下这些需要特别注意和特定设计。然而在后台,零件编号处于活动状态并执行几个初始化。其他部分命令设置为排版标题。

如果我想使用该\part{}命令但又不想让它生成空白页该怎么办?相反,我希望它根本不生成任何页面。

那可能吗?

答案1

我必须承认这有点令人困惑。部分困惑在于默认情况下part不显示标题,因此必须猜测发生了什么。如果您输入placehead=yesHenri Menke 的代码,您将看到发生了什么。该页面不是由后续页面生成的\part,而是由后续页面生成的\chapter

在 ConTeXt 中,您可以使用 键控制节标题与其后续标题之间的分页符(即部分与章节之间的分页符或章节与节之间的分页符)continue。为了便于解释,我将限制较高级别的标题为part,将较低级别的标题限制为chapter,但对于任何两个连续级别也适用相同的方法。

如果我们有

\setuphead[chapter][continue=yes, page=yes]

(这是默认设置),则部分标题和章节标题之间会有分页符即使部分标题后没有文字。另一方面,如果我们设定

\setuphead[chapter][continue=no, page=yes]

那么如果章节开头的分页符紧跟在部分标题之后,则会被抑制。

因此,您需要在代码中做的就是设置

\setuphead[chapter][continue=no]

这是一个完整最小的例子:

\setuphead
  [chapter]
  [
    continue=yes,
  ]

\starttext

\startpart[title=Part One]
  \startchapter[title=Chapter One]
  \stopchapter
  \startchapter[title=Chapter Two]
  \stopchapter
\stoppart

\startpart[title=Part Two]
  \startchapter[title=Chapter One]    
  \stopchapter
  \startchapter[title=Chapter Two]
  \stopchapter
\stoppart

\stoptext

答案2

您可以page=no在设置中设置part。由于我不明白的原因,这在文档的第一页上不起作用,但我认为这是个小问题,因为第一页通常是标题页。无论如何,我在邮件列表中询问了(https://mailman.ntg.nl/pipermail/ntg-context/2017/090445.html)。

汉斯回答了我的问题并列出了可能的解决方案,我在此引用:

这与页面上必须有某个节点来注册部件信息有关,并且当章节刷新页面时,最终会出现在某个页面上

% solution 1:

\setuphead
   [part]
   [page=no,
    placehead=hidden]

\setuptexttexts
   [\synchronizehead{part}]

% solution 2:

\setuphead
   [part]
   [page=no,
    placehead=hidden]

\appendtoks
    \synchronizehead{part}%
\to \everybeforepagebody

% solution 3 (new in beta):

\setuphead
   [part]
   [placehead=section]

这将延迟刷新,直到下一个节头到位。它仍然不是 100% 可预测的,但在大多数情况下可能会正常工作。

相关内容