创建用于在图像上印刷光泽清漆的蒙版

创建用于在图像上印刷光泽清漆的蒙版

我有兴趣找到一种更好的方法来解决以下问题:

  • 在所有页面的图像上创建黑色蒙版
  • 同时删除(或用白色覆盖)所有文本和其他元素
  • 但仍然允许memoir产生其修剪痕迹showtrim

这用于在图像上打印一层光泽清漆层(黑色遮罩所在的位置)。有些打印机称之为“UV 遮罩”。

之前和之后:

之前和之后

为此,我做了:

  1. 将图像文件替换为 .pdf 文件,这些文件是与相应图像大小相同的黑色方块
  2. 复制 .tex 文件并删除所有文本
  3. 插入\hspace和其他命令以使其\includegraphics保持在同一位置

这曾经有效,但找到一种不那么黑客化的方法会更好。

也许可以以某种方式保存图像的位置和大小,用白色方块覆盖页面并在图像的位置放置矩形?谁知道呢。

你能想出一个好方法吗?理想情况下,可以将其抽象为文档类选项[varnishmask=true]或类似的东西。

答案1

这只是部分答案,但是:

  1. 实际上,将所有图像转换为黑色矩形是比较容易的部分:只需说\usepackage[demo]{graphicx}。这显然是为了其他目的,但在这里应该可以正常工作。

  2. 对于文本,我会尝试 Nils L 在评论 ( \color{white}) 中的建议。如果这不起作用,我会研究该chickenize包(使用 LuaLaTeX)。如果您不能使用 LuaLaTeX(因为例如您使用了一些不适用于 LuaLateX 的包),我的第三次尝试是将所有字体(暂时)默默地转换为“白色”(即没有任何实际打印)对应物,但保留.tfm文件(以便排版相同)。

答案2

看起来,实施一个通用的解决方案会相当复杂(vonbrand建议beamer包具有某种机制可以使文本“消失”。

我最终只使用了一个条件\ifvarnishmask和一个\placeholder命令,虽然不是那么通用,但仍然允许通过简单地改变条件来生成同一文档的两个版本。

之前和之后

\documentclass[10pt]{article}

\makeatletter

\usepackage{geometry}
\geometry{paperwidth=70mm, paperheight=100mm, vmargin=3mm, hmargin=5mm, nohead, nofoot}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}

% Toggle normal or varnish mask version
\newif\ifvarnishmask
\varnishmasktrue
%\varnishmaskfalse

\usepackage{graphicx}
\usepackage{calc}
\usepackage{xcolor}

\newlength\tmp@height
\newlength\tmp@width

% #1 -- color of rectangle (optional, default white)
% #2 -- text or \includegraphics command
\newcommand\placeholder[2][white]{
\ifvarnishmask
\settowidth{\tmp@width}{#2}
\settototalheight{\tmp@height}{#2}
{\color{#1}\rule{\tmp@width}{\tmp@height}}%
\else
#2
\fi
}

\pagestyle{empty}

\makeatother

\begin{document}

{\centering

\placeholder{%
\begin{minipage}{\linewidth}
\begin{verse}
\ldots\\
And I struggle and shriek ere the daybreak, being driven to madness with fright.\\
\emph{Nemesis, H.P. Lovecraft}
\end{verse}
\end{minipage}
}

\bigskip

\placeholder[black]{%
\includegraphics[keepaspectratio, height=5cm]{the-scream.jpg}
}

}

\end{document}

相关内容