返回页面结构分区和大小页面结构
在 ConTeXt 中,页面结构包含了很多元素,例如 edges, margins, header,footer, text area. 每个元素在页面中的位置如图。
对照着上面这张分区表,通过\setuplayout命令,我们可以对页面各个区域指定尺寸大小进行个性化设置,打造适合自己的页面分区。
参数值大部分为 DIMENSION 类型, DIMENSION 由数字和单位组成,例如:3 pt,2 em,3 in 等。在 ConTeXt 中,支持以下 DIMENSION 单位。
页面大小和排版
上面我们认识了页面的分区元素,知道了如何调整元素的宽高。现在又有一个问题,页面大小如何设置?
这时候用到了命令\setuppapersize
比如\setuppapersize[A4][A4], 表示使用 A4 纸张大小排版布局,并且会在 A4 纸上打印。
除了 A4 以外,还可以使用 A0-A9, B0-B9,C0-C9, letter, legal,folio and executive, envelop 9--14, monarch, check, DL and CD 这些常见的纸张大小。如果这些尺寸都不能满足需要,可以使用\setuppapersize[name][width=?,height=?]来创建新的纸张尺寸。
页面默认是竖版,如果需要横板,可以在页面大小后面加上 landscape
\setuppapersize[A5,landscape][A4]
有时我们需要在中途更改页面大小或方向。为了方便更改,可以提前定义好需要的页面尺寸,然后在切换页的地方先使用\page换页(\page是必须要放的),然后使用\setuppapersize[Landscape]更改页面方向或大小。
\definepapersize[Portrait] [A4]
\definepapersize[Landscape][A4,landscape]
\starttext
\setuppapersize[Portrait]
\getbuffer[DemoPage] \page
\getbuffer[DemoPage] \page
\page\setuppapersize[Landscape]
\getbuffer[DemoPage] \page
\getbuffer[DemoPage] \page
\stoptext
而有时只有单独的一页需要改变方向或大小,可以用\adaptpapersize来临时调整。
\starttext
\getbuffer[DemoPage] \page
\getbuffer[DemoPage] \page
\page\adaptpapersize[Landscape]
\getbuffer[DemoPage] \page
\getbuffer[DemoPage] \page
\stoptext
大部分情况下两组纸张是相同的设置,但也可以使用不同的设置,比如我们可以使用\setuppapersize[A5][A4], 表示内容会按照A5纸大小的尺寸排版,但最终会在 A4 纸上打印。因为 A4 比 A5 纸大的多,可以结合 layout 的 location 参数指定 A5 区域的位置,呈现出下面这样的效果。
\setuplayout [location={top,left}] %(默认值)
\setuplayout [location={bottom,right}]
\setuplayout [location=middle]
页面各结构的大小
页面内各个结构的大小也可以单独指定,比如\setuplayout[header=3cm,footer=5cm], 可以指定 header 的高度 = 3 cm,footer 的高度 = 5 cm。设置以后,除了肉眼观察,可以使用 2 条参数来查看 layout 的效果。
通过\showframe来查看当前文件的页面结构分区和大概的占比。完整代码见Gitee - layout_1.tex
通过\showsetups来查看每个区域元素的宽高值。完整代码见Gitee - layout_2.tex
页面拼版
在印刷行业中,常常是在一张大纸上印刷内容,再切割装订成书册。上面的例子只展示了如何在一张纸上排版一页内容,怎么放多页内容合理利用页面空间呢
同样先用\setuppapersize设置排版纸和印刷纸的大小,再使用 setuparranging 设置排版方式。注意 arranging 的效果取决于第一条命令——印刷纸的大小足够放下 N 张排版纸。
\setuppapersize[A7][A3,landscape]
\setuparranging [2*8]
布局如图所示:一张纸 2 面,每面放8页内容。绿色为切割线。
\setuppapersize[A4][A3,landscape]
\setuparranging [2UP]
再结合 rotated,doublesided 等命令,更加方便切割装订。(doublesided 指打印时使用正反面打印)完整代码见Gitee - arranging_3.tex;Gitee - arranging_4.tex;Gitee - arranging_5.tex
参数有很多可选项,这里就不一一展示结果了。Imposition - Wiki (contextgarden.net)
当以上参数值不能满足需求是,我们可以自定义拼版布局。
\setuppapersize[A9][A6,landscape]
\setuppaper[nx=3, ny=2]
\setuparranging [XY]
设置在 X 轴上 3 列,Y 轴上 2 行。也就是 3 行 2 列的布局。