![使用 ConTeXt 中的 MetaFun 在多个页面上传播图形](https://linux22.com/image/455384/%E4%BD%BF%E7%94%A8%20ConTeXt%20%E4%B8%AD%E7%9A%84%20MetaFun%20%E5%9C%A8%E5%A4%9A%E4%B8%AA%E9%A1%B5%E9%9D%A2%E4%B8%8A%E4%BC%A0%E6%92%AD%E5%9B%BE%E5%BD%A2.png)
我目前正在重构我的文档,并注意到许多 MetaPost 图形我想画得更大,通常是在两页上,没有任何布局边框。在 ConTeXt 中有没有简单的方法可以做到这一点?我注意到这个问题正如已经问到的那样,但答案是以 LaTeX 为中心的。
对于这个问题,我们假设我有一份双面 A4 文档,上面有一个42cm
宽度图形(A4 纸宽度的 2 倍):
\setuppagenumbering[alternative=doublesided, location=]
\setuppapersize[A4][A4]
\startuseMPgraphic{MyLongGraphic}
fill origin -- (42cm,0cm) -- (42cm,10cm) -- (0cm,10cm) -- cycle withcolor .3[white,red] ;
\stopuseMPgraphic
\starttext
\useMPgraphic{MyLongGraphic}
\stoptext
答案1
谢谢沃尔夫冈·舒斯特和戴夫·贾维斯在此链接我找到了比我想象的更简单的答案;甚至比原来的答案还简单,因为我们不必调整图层中的图形宽度和高度。
\setuppagenumbering[alternative=doublesided, location=]
\setuppapersize[A4][A4]
\startuseMPgraphic{MyLongGraphic}
path background;
background := origin -- (42cm,0cm) -- (42cm,10cm) -- (0cm,10cm) -- cycle ;
fill background withcolor 0.3[white,red] ;
label("left",origin) scaled 10 shifted (5cm, ypart(center background)) withcolor white ;
label("right",origin) scaled 10 shifted (35cm, ypart(center background)) withcolor white ;
\stopuseMPgraphic
\definelayer[BookIllustrationLayer]
[width=\paperwidth,
height=\paperheight,
doublesided=yes]
\startsetups[BookSetupIllustration]
\setlayer[BookIllustrationLayer]
[y=.0\paperheight]
{\clip[nx=2,x=\doifelseoddpage{1}{2}]
{\useMPgraphic{MyLongGraphic}}}
\stopsetups
\setupbackgrounds[page]
[setups=BookSetupIllustration,
background=BookIllustrationLayer]
\starttext
Hello \page World
\stoptext