返回overlay 和 layer 的比较在 ConTeXt 中,overlay 和 layer 都可以设置页面背景。但他们有些许不同:
1. layer 可以使用xy坐标轴位置, 而 overlay 在应用区域的中心位置。
2. layer 的背景默认只应用在当前页,如果需要应用在多个页面,需要在 definelayer 时使用 repeat = yes。
overlay 的背景默认应用在 pdf 的所有页面。不想要背景重复时,使用\setupbackgrounds[page][background=]来停止背景。
overlay 示例
为了展示叠放效果,我们来定义 2 个不同宽高和颜色的 overlay。一个叫 behind,是高 2 cm,宽 8 cm 的黄色横条,一个叫 before,是高8cm,宽 2 cm 的橘色竖条。在设置时,overlay 的应用顺序为 behind,foreground(文本),before,表示希望 behind 在最底层,文字在中间,before 在最上层。可以看到背景按照我们定义的顺序依次重叠在 page 中心区域。
\defineoverlay[behind][{\blackrule[height=2cm,width=8cm,color=yellow]}]
\defineoverlay[before][{\blackrule[height=8cm,width=2cm,color=orange]}]
\setupbackgrounds[page][background={behind,foreground,before}]
因为背景的顺序原因,可以看到 foreground 文字部分被 before 覆盖。如果想要文字不受背景影响,可以调整背景顺序为:
\setupbackgrounds[page][background={behind,before,foreground}]
layer示例
使用 setlayer 定义和刚刚一样的宽高不同的黄色横条和橘色竖条,但这次可以通过 xy 定义坐标。可以看到背景现在出现在我们指定的 xy 位置。
\definelayer[behind]
\definelayer[before]
\setlayer[behind][x=-2cm,y=.75ex]{\blackrule[height=2cm,width=8cm,color=yellow]}
\setlayer[before][x=5cm,y=.75ex]{\blackrule[height=8cm,width=2cm,color=orange]}
\setupbackgrounds[text][background={behind,foreground,before}]