我对 ConTeXt 完全陌生,刚刚开始尝试直接在 ConTeXt 中编写 metapost。在 ConTeXt 中,我使用以下 Metapost 代码为一个页面设置水印,我的问题是如何在 LuaLatex 中使用 Metapost 语言为页面设置水印?
\startuseMPgraphic{square}
path p; p := fullsquare xscaled 8cm yscaled 6cm;
draw p rotated 45 randomized 30mm
withcolor transparent (1, .5 randomized .3, darkgray)
withpen pencircle scaled 2pt;
\stopuseMPgraphic
\defineoverlay[watermark][\useMPgraphic{square}]
\setupbackgrounds[page][background=watermark]
\starttext
\setupbodyfont[dejavu,12pt]
\input knuth
\input zapf
\input knuth
\input zapf
\stoptext
答案1
您可以使用draftwatermark
包和luamplib
包来执行此操作。这里有一个可能的方法:将 MP 图形放在一个框中,然后使用该框作为水印文本。
\documentclass{article}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\mplibsetformat{metafun}
\usepackage{draftwatermark}
\usepackage{lipsum}
\newsavebox\mpbox
\savebox\mpbox{\begin{mplibcode}
beginfig(0);
path p; p := fullsquare xscaled 8cm yscaled 6cm;
draw p rotated 45 randomized 30mm
withcolor transparent (1, .5 randomized .3, darkgray)
withpen pencircle scaled 2pt;
endfig;
\end{mplibcode}}
\DraftwatermarkOptions{text={\usebox\mpbox}}
\begin{document}
\lipsum
\end{document}
编译它以lualatex
获得如下所示的 PDF:
链接:关于的文档luamplib
以及更多元帖子。