我仍在尝试在 ConTeXt 中实现复杂的书籍布局……并且我开始怀疑,为什么在很多情况下手册或网站上的描述似乎与实际实现不符。
简而言之,这就是我想要实现的目标:
- 设置自定义章节标题总是开始于右页。
- 设置自定义浮点数(图)完全填满左页位于节标题旁边。
以下是我能实现的目标:
这是MWE:
\mainlanguage[de]
\language[de]
\definecolor[lightbrown] [r=0.83, g=0.76, b=0.71]
\setuppapersize[A4][A4]
\setuplayout
[
backspace=11.67mm, width=131.25mm,
topspace=21.21mm, height=254.57mm,
headerdistance=13pt, header=13pt,
footerdistance=13pt, footer=13pt,
rightmargindistance=13pt, rightmargin=39.5mm,
]
\setuppagenumbering[alternative=doublesided, location=]
\definehead[PageSection][section]
\setuphead[PageSection][
page=right,
style=\ssb\bf,
]
\definefloat[pagefloat][pagefloats][figure]
\setupfloat[pagefloat][
location=inner,
]
\starttext
\chapter{Testing Full Page Figures}
\input{knuth}
\input{knuth}
\input{knuth}
\placepagefloat[rightpage]{Test}{\framed[width=\paperwidth, height=\paperheight, background=color, backgroundcolor=lightbrown]{Here's a figure}}
\PageSection{Here's a Section on a New Page}
\input{knuth}
\input{knuth}
\input{knuth}
\stoptext
可以看出,应该填满页面的图形位置不正确。我无论如何也找不到办法来纠正它。这location=inner
是我目前找到的最接近的。
另外,我想知道,为什么leftpage
和rightpage
(在 中\placepagefloat
)会产生完全相反的效果?(请注意,我以前rightpage
让浮动出现在左侧页面上。)顺便说一句,opposite
似乎根本不起作用;相反,浮动从文档中消失了。我错过了什么?
还请注意,我尝试使用page=right
来\definehead
使我的自定义部分出现在正确的页面上,但该设置被完全忽略。只有当我用 替换\definehead[PageSection][section]
时,它才有效\definehead[PageSection][subsection]
。
我很困惑。任何帮助我都会非常感激。
答案1
关于分页符的问题
这是一 ”旧功能“。
如果 head 参数continue
设置为yes
(默认值),则如果当前节头位于更高级别的节头之后,则不会出现分页符(即, 的值page
被忽略)。要避免这种情况,请设置continue=no
。
\setuppagenumbering[alternative=doublesided, location=]
\definehead[PageSection][section]
\setuphead[PageSection]
[
page=right,
continue=no,
style=\ssb\bf,
]
\starttext
\chapter{Testing Full Page Figures}
\dorecurse{3}{\input{knuth}}
\PageSection{Here's a Section on a New Page}
\dorecurse{3}{\input{knuth}}
\stoptext
我不太明白为什么continue=yes
存在。我的猜测是它允许您创建一个环境,用于书籍(其中章节是顶级标题)和报告(其中部分是顶级标题)。例如,如果我创建一个环境文件:
\startenvironment *
\setuphead[chapter][page=right]
\setuphead[section][page=yes,continue=yes]
\stopenvironment
并在两本书中使用相同的环境:
\environment env
\starttext
\chapter{Chap One}
\section{Sec One}
\input knuth
\chapter{Chap Two}
\section{Sec Two}
\input knuth
\stoptext
和一份报告
\environment env
\starttext
\section{Sec One}
\subsection{Subsec One}
\input knuth
\section{Sec Two}
\subsection{Subsec Two}
\input knuth
\stoptext
请注意,书中的章节前没有分页符,但报告中的章节前有分页符。
关于leftpage和rightpage的问题
使用context 2016.10.07
,我使用键leftpage
和获得了浮点的正确位置rightpage
。您使用的是哪个版本的 ConTeXt(请参阅 的输出context --version
)?
关于全页浮动的问题
一种可能性是使用该bleed
机制(参见详细手册)。
\setuppagenumbering[alternative=doublesided, location=]
\useMPlibrary[dum]
\starttext
\placefigure[leftpage,none]{}
{\bleed[width=\paperwidth,height=\paperheight,location=lt]
{\externalfigure[dummy][bleed]}}
\dorecurse{10}{\input{knuth}}
\stoptext
其结果如下: