我正在用 ConTeXt 创作一部小说作品。
每一章和我的四部分页面都以相应的奇数页开始。我对包含文本的每个最后一章页面都没有问题:无论是奇数页还是偶数页,它们在页脚中都没有相关的编号,空白的奇数页也有空的页眉。
到目前为止,这一表现几乎我需要什么,以及我得到什么,这都要感谢 Aditya 和 Wolfgang 的帮助。我知道这个要求可能看起来是一个非常特殊的选择,但它是大多数西班牙语小说作品的常见做法,对我来说也是必须的。
我为何写作几乎? 因为同样的错误:不幸的是,我的最后一章总是出现例外,每次都是这样。
正如我所说的,由于这里的人的努力,我一直在摆弄我的设置。
\setuppagenumbering
[alternative=doublesided,
location=]
\setupheadertexts
[][{\switchtobodyfont[head]\tfz\em\getmarking[part]}][{\switchtobodyfont[head]\tfz\em\getmarking[chapter]}][]
\setupfootertexts[][pagenumber]
\definepagebreak [ebohoyod] [footer,yes,header,footer,right]
%\unprotect
%\installpagebreakmethod {ebohoyod}
% {\page_otr_command_flush_all_floats
% \doifoddpageelse
% {\page_otr_command_next_page_and_inserts
% \setupheader[state=empty]%
% \setupfooter[state=empty]%
% \page_reset_marks_and_insert_dummy}
% {\setupfooter[state=empty]%
% \page_otr_command_next_page_and_inserts}}
%\protect
\setuphead[chapter][page=ebohoyod,number=no,alternative=middle,
header=empty,style=tfb,
before={\blank[force,34pt]},
after={\blank[114pt]}]
\setuphead[part][page=ebohoyod,placehead=yes,number=no,
alternative=middle,header=empty,footer=empty, style=tfd,
before={\blank[force,154pt]}\hskip 4pt]
由于我无知,我尝试了几种组合。例如,如果我注释掉代码\unprotect
,在偶数页上性能很好,但在所有奇数页上都失败了。
说到我缺乏资源,我不知道我的短正文设置是否有帮助。我将我的前言文件和章节记录为 \input,但我已直接设置了部分页面。我在这里可以看到对我的序言设置的任何干扰,但以防万一。
\starttext
\startfrontmatter
\input /frontmatter/cover-verso.tex
\input /frontmatter/tit-auth-edit.tex
\input /frontmatter/epigraph.tex
\stopfrontmatter
\startbodymatter
\startpart
[title={C\switchtobodyfont[indpart]uentos grises}]
\setlayer
[yinyang]
[x=106pt,y=200pt]
{\externalfigure[GloucesterCathedral][width]}
\input /bodymatter/relato1.tex
\input /bodymatter/relato2.tex
\stoppart
\startpart
[title={C\switchtobodyfont[indpart]uentos verdes}]
\setlayer
[yinyang]
[x=106pt,y=200pt]
{\externalfigure[GloucesterCathedral][width]}
\input /bodymatter/relato3.tex
\input /bodymatter/relato4.tex
\stoppart
\startpart
[title={C\switchtobodyfont[indpart]uentos azules}]
\setlayer
[yinyang]
[x=106pt,y=200pt]
{\externalfigure[GloucesterCathedral][width]}
\input /bodymatter/relato5.tex
\input /bodymatter/relato6.tex
\stoppart
\startpart
[title={C\switchtobodyfont[indpart]uentos rojos}]
\setlayer
[yinyang]
[x=106pt,y=200pt]
{\externalfigure[GloucesterCathedral][width]}
\input /bodymatter/relato7.tex
\input /bodymatter/relato8.tex
\stoppart
\stopbodymatter
\startbackmatter
\startstandardmakeup[doublesided=yes]
\setupinterlinespace[line=18pt]
\completecontent[criterium=all]
\blank[280pt]
\stopstandardmakeup
\stopbackmatter
\stoptext
答案1
分页符的设置
使用命令的关键字的顺序page
(或作为\definepagebreak
命令的参数)\setuphead
。
\setuppagenumbering
[alternative=doublesided,
location={footer,right}]
% \setuphead
% [chapter]
% [page={footer,yes,header,footer,right}]
\definepagebreak [chapter] [footer,yes,header,footer,right]
\setuphead
[chapter]
[page=chapter]
\setupheadertexts [] [chapter]
\starttext
\chapter{Knuth}
\dorecurse{10}{\samplefile{knuth}}
\chapter{Zapf}
\dorecurse{10}{\samplefile{zapf}}
\chapter{Ward}
\dorecurse{5}{\samplefile{ward}}
\stoptext
整个文档的扩展示例
\part
以下示例还包括添加页眉和sectionblocks
添加额外分页符时必须应用的设置才能获得正确结果。
这些设置尤其sectionblock
必要,因为在下一章之前完成上一章\part
可以使用正确的分页符设置。
\setuppagenumbering
[alternative=doublesided,
location=none]
\setupheader
[style={\switchtobodyfont[10pt]\it}]
\setupheadertexts
[] [part]
[chapter] []
\setupfootertexts
[] [pagenumber]
\definepagebreak [ebohoyod] [footer,yes,header,footer,right]
\setuphead
[part]
[page=ebohoyod,
placehead=yes,
number=no,
alternative=middle,
header=empty,
footer=empty]
\setuphead
[title,chapter]
[page=ebohoyod,
number=no,
alternative=middle,
header=empty]
\setupsectionblock
[page=ebohoyod]
\setuppapersize [A5] [A5]
\starttext
\startfrontmatter
\startstandardmakeup [align=middle,pagestate=start]
{\tfd Sample document}
\stopstandardmakeup
\stopfrontmatter
\startbodymatter
\startpart [title={First part}]
\startchapter [title={Chapter One}]
\dorecurse{4}{\samplefile{douglas}}
\stopchapter
\startchapter [title={Chapter Two}]
\dorecurse{4}{\samplefile{waltham}}
\stopchapter
\stoppart
\startpart [title={Second part}]
\startchapter [title={Chapter Three}]
\dorecurse{4}{\samplefile{dawkins}}
\stopchapter
\startchapter [title={Chapter Four}]
\dorecurse{4}{\samplefile{carey}}
\stopchapter
\stoppart
\stopbodymatter
\startappendices
\completecontent
\stopappendices
\stoptext
答案2
此外,我在所有 whatever.tex 章节末尾的 \page[empty] 命令都放在 \stopchapter 之前。为什么?因为当这些页面没有文本时,我希望最后一个偶数页没有页眉和页脚。
当然,当最后一页偶数页确实有文字时,我会在相关章节中注释掉 \page[empty] 命令。
正确的方法是定义一个删除页眉和页脚的分页符:
\definepagebreak[chapterbreak]
[yes,header,footer,right]
\setuphead[chapter][page=chapterbreak]
但是,这并没有解决您的第二个问题。为此,我定义了一个新的分页符,用于检查页面是位于奇数页还是偶数页,并相应地禁用页眉和页脚。
\unprotect
\installpagebreakmethod {ebohoyod}
{\page_otr_command_flush_all_floats
\doifoddpageelse
{\page_otr_command_next_page_and_inserts
\setupheader[state=empty]%
\setupfooter[state=empty]%
\page_reset_marks_and_insert_dummy}
{\setupfooter[state=empty]%
\page_otr_command_next_page_and_inserts}}
\protect
\setuphead[chapter][page=ebohoyod]
这是一个完整的示例。请注意,我习惯\setupfootertexts
在页脚而不是中添加页码\setuppagenumbering
。
\setuppagenumbering
[alternative=doublesided, location=]
\setupheadertexts[][part][chapter][]
\setupfootertexts[][pagenumber]
\unprotect
\installpagebreakmethod {ebohoyod}
{\page_otr_command_flush_all_floats
\doifoddpageelse
{\page_otr_command_next_page_and_inserts
\setupheader[state=empty]%
\setupfooter[state=empty]%
\page_reset_marks_and_insert_dummy}
{\setupfooter[state=empty]%
\page_otr_command_next_page_and_inserts}}
\protect
\setuphead[part][placehead=yes, number=no]
\setuphead[chapter][page=ebohoyod]
\starttext
\startpart[title=Part one]
\startchapter
[title=Test chapter]
Page 1
\stopchapter
\startchapter
[title=Test chapter]
Page 1 \page
Page 2
\stopchapter
\startchapter
[title=Test chapter]
Page 1 \page
Page 2 \page
Page 3
\stopchapter
\startchapter
[title=Test chapter]
Page 1 \page
Page 2 \page
Page 3 \page
Page 4
\stopchapter
\stoppart
\stoptext
以下是上一章在奇数页结束的章节:
这一章的上一章结束在偶数页