使用几何包的彩色页面上没有绘制裁切标记

使用几何包的彩色页面上没有绘制裁切标记

我创建了一个文档,其中有些页面有背景颜色。我希望页面有裁剪标记,使用包 geometry 的“showcrop”选项(出于某些原因,我不想使用“crop”包)。以下 MWE 显示彩色页面中缺少裁剪标记。

\documentclass{book}

\usepackage{lipsum}
\usepackage{xcolor}

\usepackage{geometry}
\geometry{paper=a4paper, layoutwidth=170mm, layoutheight=240mm, layoutvoffset= 20mm, layouthoffset= 20mm, showcrop=true}

\begin{document}

\lipsum
\newpage \pagecolor{yellow}
\lipsum
\newpage \nopagecolor
\lipsum

\end{document}

有人知道发生了什么事,以及如何解决它吗?

PS:这不是同一个问题使用页面颜色和裁剪来填充出血:我没有使用裁剪包!

答案1

下面的代码有点笨拙,但结果似乎还不错。这个想法是使用源代码showcrop中的 的定义geometry,结合自定义页面着色方法,使用零宽度零高度的 着色\vrule,其定义是从crop包中复制的。当你绘制vrule。当您在裁剪标记之前geometry颜色不会与标记重叠。

因为我不知道如何撤消\AtBeginShipout对没有颜色的后续页面的定义,所以该\nopagecolorcrop命令只是将规则的颜色设置为白色。

\documentclass{book}

\usepackage{lipsum}
\usepackage{xcolor}

\usepackage{geometry}
\usepackage{atbegshi}
\geometry{paper=a4paper, layoutwidth=170mm, layoutheight=240mm, layoutvoffset= 20mm, layouthoffset= 20mm}

\makeatletter
\def\mypagecolor{white}
\AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox to\z@{\vskip-1in\vbox{%
        \rlap{\smash{{\color{\mypagecolor}\hskip\dimexpr -\hoffset-1in\relax\vrule width\paperwidth height\z@ depth\paperheight}}}%
        \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@
        \vskip1in%
        \Gm@pageframes\box\AtBeginShipoutBox}}}
\newcommand{\pagecolorcrop}[1]{
    \def\mypagecolor{#1}
}
\newcommand{\nopagecolorcrop}{%
    \def\mypagecolor{white}%
}
\Gm@showcroptrue
\makeatother

\begin{document}
\lipsum
\newpage \pagecolorcrop{yellow}
\lipsum
\newpage \nopagecolorcrop
\lipsum
\end{document}

在此处输入图片描述

相关内容