我想包含不同类型的 PDF。对于一种(在 LaTeX 之外生成的普通页面),我希望裁剪包添加边距。但其他是全尺寸照片,我希望它们具有全纸张尺寸(周围没有白色边框),因为这是首要问题 - 如果裁剪后的尺寸比 A4 大几分之一毫米,则不要添加微小的白色边框(稍微小一点没关系,丢失一个像素无法识别,在深色照片上添加一个白点肯定会识别)。所以我认为我需要能够包含设置为这样的逻辑页面和不太合乎逻辑的页面,因为它们已经具有印刷机的纸张尺寸作为尺寸(我知道图片的 3 毫米将被切掉)。
\documentclass[a4paper, twoside]{book}
\usepackage[pass]{geometry}
\usepackage[frame, width=216mm,height=303mm,center]{crop}
为我提供了正确的文档,包括所有用 LaTeX 生成的文档,以及所有只包含 A4 PDF 的文档,而不会对毫米的误差敏感(不会打印到要裁切的边距中)。但包括一个 PDF(我已经在生成软件中将其制作成 216mm x 303mm)
\includepdf[pages={1},pagecommand={
\addcontentsline{toc}{subsection}{Referenz: Gal Gadot} \label{img:2018050601}\glsadd{motivational:GadotGal} \thispagestyle{empty}
}]{img/GalGadot_Schulterblick.pdf}
将其像 A4 一样放置,并在其周围留出 3 毫米的白色边距,从而彻底破坏整个过程。
裁剪是否是正确的包装?无论如何 - 我如何包含 PDF(或任何图形)而不缩放,只是保持其打印纸张大小,以便让打印作业中的人将其剪切,保证所包含的“整页图形”不会有任何白色边框?
编辑:也许这样更清楚:我需要一个文档用于打印作业的裁剪,因此生成的 PDF 中的纸张需要为 216x303,而不是 210x297(A4),但包含的一些 PDF 已经超过 216x303 的尺寸,不能放入居中的 A4 空间。它们应该在印刷店裁剪纸张后进行裁剪,以避免出现白边。这些不能像上面的代码中的裁剪包那样调整大小和居中。
答案1
通常,您可以通过确保 PDF 框(/MediaBox、/BleedBox 和 /TrimBox)正确设置来执行此操作。
在 LaTeX 中确实没有很好的自动化方法来实现这一点。
\pdfpageattr
因此您需要使用中的宏来设置它们。如果您使用 和,则pdflatex
技术会略有不同。lualatex
xelatex
在以下 MWE 中,我还调整了裁切标记以使其更符合我的喜好。您的打印机可能根本不需要这些标记。在这种情况下,您可以将您的设置为与您的(216mm x 303mm)/BleedBox
相同。/MediaBox
如下图所示, 为/BleedBox
蓝色,/TrimBox
为绿色。
平均能量损失
\documentclass[a4paper]{book}
\usepackage[noinfo,width=230mm,height=317mm,center]{crop}
\usepackage{showframe}
\usepackage{pdfpages}
% better crop marks
\makeatletter
\renewcommand*\CROP@@ulc{%
\begin{picture}(0,0)
\unitlength 1mm\thinlines
\put(-10,0){\line(1,0){7}}
\put(0,10){\line(0,-1){7}}
\end{picture}%
}
\renewcommand*\CROP@@urc{%
\begin{picture}(0,0)
\unitlength 1mm\thinlines
\put(10,0){\line(-1,0){7}}
\put(0,10){\line(0,-1){7}}
\end{picture}%
}
\renewcommand*\CROP@@llc{%
\begin{picture}(0,0)
\unitlength 1mm\thinlines
\put(-10,0){\line(1,0){7}}
\put(0,-10){\line(0,1){7}}
\end{picture}%
}
\renewcommand*\CROP@@lrc{%
\begin{picture}(0,0)
\unitlength 1mm\thinlines
\put(10,0){\line(-1,0){7}}
\put(0,-10){\line(0,1){7}}
\end{picture}%
}
\crop
\makeatother
% set up PDF page boxes
% all dimensions specified in big points with origin at lower left corner of
% media box
\pdfpageattr{
% Media box is 230mm by 317mm
/MediaBox [0.0 0.0 651.96850 898.58268]
% Bleed box is 216mm by 303mm
/BleedBox [19.84252 19.84252 632.12598 878.74016]
% Trim box is A4 (210mm by 297mm)
/TrimBox [28.34646 28.34646 623.62205 870.23622]
}
\begin{document}
\includepdf[pages={1}, width=216mm, height=303mm, pagecommand={\thispagestyle{empty}}]{example-image.pdf}
\end{document}
答案2
只需将物理打印纸宽度设置为要包含在 \includepdf 中的 PDF 的宽度即可。我真笨……
\newcommand{\printingPaperWidth}{216mm}
\includepdf[pages={1}, width=\printingPaperWidth, pagecommand={
\addcontentsline{toc}{subsection}{Referenz: Gal Gadot} \label{img:2018050601}\glsadd{motivational:GadotGal} \thispagestyle{empty}
}]{img/GalGadot_Schulterblick.pdf} %2-7,2,4,{},6
请注意 \paperwidth 不起作用(不是我那么愚蠢......)因为它确实获取了逻辑文档的宽度
LaTeX 或 crop 包是否提供了某种方法来获取物理纸张宽度而无需设置两次(当然,需要设置一次,以便告诉 crop 打印服务将裁掉多少边距)?