返回在 ConTeXt 内添加页面背景
页面背景最常见的应用场景是加水印,比如在每页添加大大的浅灰色文字“草稿”,在文档内加上公司 logo,或者给背景加点颜色来美化文档。本篇将分享如何通过 ConTeXt 的\setupbackgrounds命令和 overlay 设置页面的背景颜色,背景文字,和背景图片。\setupbackgrounds第一组参数可以指定背景的位置,当第二组同样使用位置时,背景会应用到两组的重叠区域。 第三组的参数按照\setupframed的参数使用。

背景颜色

背景可以多条命令叠加使用,以下的例子分别在 footer 区域和 footer + leftmargin 的重叠区域应用了不同的背景颜色。背景颜色的选择通过\setupframed的 backgroundcolor 参数更改。ConTeXt 内部有一些提前定义好的颜色可以直接使用,也可以自定义颜色再使用,自定义颜色的方法本篇先不做介绍。
\setuplayout[header=1cm,footer=1cm,topspace=1cm,bottomspace=1cm] \setupbackgrounds [footer][background=color, backgroundcolor=lightgray] \setupbackgrounds [footer][leftmargin][background=color, backgroundcolor=yellow]
ConTeXt 内置预定义颜色名称

背景文字

背景文字需要先使用 overlay 创建图层,设置图层的文字和文字样式。再通过\setupbackgrounds[page] [background = WatermarkOverlay]把文字图层应用在背景上。这里的 overlay 示例创建了一个 frame,在这个 frame 中,使用 scale,rotate 等参数让我们的文字放大 12 倍并旋转 45 度。
\defineoverlay[WatermarkOverlay] [{\framed[frame=off,foregroundcolor=gray] {\scale[sx=15,sy=15]{\rotate[rotation=45]{草稿}}}}] \setupbackgrounds[page][background=WatermarkOverlay]
有的读者可能会疑惑,既然\setupbackgrounds的第三组参数已经继承了\setupframed,可不可以直接把\setupoverlay中用到的\framed命令直接放在\setupbackgrounds第三组参数中,而不是另外创建新的 overlay 和 framed 呢。答案是不可以。因为第三组只可以使用\framed的参数,而不可以使用完整的\framed命令语句。

背景图片

图片的背景同样也先创建一个 overlay,但这次我们不使用 framed,而是通过\externalfigure把图片读进来,再使用\setupbackgrounds设置背景就可以了。图片的大小根据\externalfigure里面的参数设置。
\defineoverlay[ImgOverlay] [{\externalfigure[./assets/logo.png][height=10cm]}] \setupbackgrounds[page][background=ImgOverlay]

单双页不同背景

我们先定义两个水印,一个用于单页水印,一个用于双页水印。然后分别应用到 rightpage(单页)和 leftpage(双页)上。最重要的是要通过\setuppagenumbering [alternative = doublesided]定义文档为双页格式,不然所有页面只有 WatermarkOverlay_R 的效果出现。
\setuppagenumbering[alternative=doublesided] \defineoverlay[WatermarkOverlay_R] [{\framed[frame=off,foregroundcolor=gray] {\scale[sx=12,sy=12]{\rotate[rotation=45]{单页}}}}] \defineoverlay[WatermarkOverlay_L] [{\framed[frame=off,foregroundcolor=gray] {\scale[sx=12,sy=12]{\rotate[rotation=45]{双页}}}}] \setupbackgrounds[rightpage][background=WatermarkOverlay_R] \setupbackgrounds[leftpage][background=WatermarkOverlay_L]
©2024 All Rights 石家庄市友文信息技术有限责任公司冀ICP备2023031763号