我正在尝试使用copypages
将多页 PDF 插入到我的 ConTeXt 文档中。我想缩放插入的页面,使它们看起来更小,但将它们与新文档每页的顶部齐平。我该怎么做?
默认行为似乎是将缩放的页面置于新文档每页的中心。
这是默认行为的 MWE(假设您提供要插入的自己的 PDF 文档)。
\starttext
\copypages[a.pdf][][height=\textheight]
\stoptext
更新(2020-02-06):
使用图层,我成功地将一个插入的页面放置在正确的位置,但它无法处理多页 PDF 或多个 PDF。这是我正在使用的 MWE:
\setupbackgrounds
[page]
[setups=layer,background={foreground,insert}]
\definelayer[insert][height=10in]
\starttext
\showframe
~
\getfiguredimensions[02.pdf]\dorecurse\noffigurepages{\setuptexttexts
[{\setlayerframed
[insert]
[]
[]
{\externalfigure[02.pdf][page=\recurselevel]}}]}
\stoptext
就上下文而言,我正尝试对一系列 PDF 进行“贝茨标记”。我想在每页底部放置一个页码,并缩小每个插入的 PDF 页面,以使新放置的页码不会与插入的 PDF 页面重叠。我不需要包含的页面上的标题行。copypages
提供了插入 PDF 的正确功能,但它将插入的 PDF 页面放在页面的中心,而不是与纸张顶部齐平。
更新(2020-03-03):
供将来参考,这是我正在寻找的工作版本。请注意,此代码还包含用于排版特殊格式的页码的命令。
感谢 Wolfgang Schuster 的指导!
\setupexternalfigures[location=default]
\setuppapersize[letter]
\setuplayout[width=6.5in,height=10in,topspace=0.5in,backspace=1in,
header=0.5in,footer=0.5in]
\setupheadertexts
\setupbackgrounds
[page]
[background={foreground,tmp,numbering}]
\definelayer
[numbering]
[height=\paperheight,
width=\paperwidth]
\setuptexttexts
[{\setlayerframed
[numbering]
[preset=middlebottom,
voffset=0.25in]
[frame=off]
{RA/\pagenumber}}]
\definelayout
[topaligned]
[header=0pt]
\showframe
\starttext
\startlayout[topaligned]
\copypages[M-654.pdf][][height=10.5in]
\copypages[M-654.pdf][][height=10.5in]
\stoplayout
\stoptext
答案1
有两种方法可以将包含的图像或页面推到页面顶部。如以下示例所示,我们必须跨越页面顶部空间和标题行高度所造成的间隙。
\setupexternalfigures[location=default]
\setuppapersize[A7]
\showframe
\starttext
\externalfigure[mill][width=\textwidth]
\stoptext
当您依靠\externalfigure
逐一包含页面时,您可以使用命令将每个图像与存储在和寄存器\offset
中的值一起向上移动。\topspace
\headerheight
这种方法的缺点是您必须使用它\getfiguredimensions
来获取页数并\dorecurse
创建一个循环来包含每个页面。
\setupexternalfigures[location=default]
\setuppapersize[A7]
\definemeasure [topskip] [\dimexpr\headerheight+\topspace\relax]
\showframe
\starttext
\offset[y=-\measure{topskip}]{\externalfigure[mill][width=\textwidth]}
\stoptext
您可以使用的第二种方法也有效,它\copypages
使用经过修改的图形页面布局。这些页面的变化是,我们将 的高度设置为 ,从而topspace
消除了不需要的空间,并且图像现在与纸张的上边距对齐。header
0pt
\setupexternalfigures[location=default]
\setuppapersize[A7]
\definelayout
[topaligned]
[topspace=0pt,
header=0pt]
\showframe
\starttext
\startlayout[topaligned]
\externalfigure[mill][width=\textwidth]
\stoplayout
\stoptext