如何为每一页应用不同的背景图像?我有一组要应用的 pdf。我使用了水印包。但是,我不喜欢手动为数百页添加不同的水印,我更喜欢使用 perltex --喜欢 Perl!我想问题实际上是,如何在将每页写入文件之前访问其数据结构?
以下是迄今为止我创建的 perl 代码:
\def\numbpgs{\getpagerefnumber{LastPage}}
\def\imgs{1 2 3 ... x}
\bkgrndimages{\numbpgs}{\imgs}
\perlnewcommand{\bkgrndimages}[2]{
my $numpgs = $_[0];
my @imgarray = split / /, $_[1];
my $return = ();
my $c = 1;
for (0 .. $numpgs) {
# Here I wish to modify each page's background to
$return .= WATERMARK[LATEXPAGE[$c]] $imgarray[$c]\.pdf;
$c++;
}
return $return;
}
答案1
我认为你对 Perl 的热爱使你走上了错误的道路。
在将每个页面写入文件之前,如何访问其数据结构?
atbegshi
这通常是使用、、或包之一来完成的。bophook
这些包 将使您能够挂接到 LaTeX 的输出例程并在发货前添加图片或文本。everyshi
eso-pic
\background
如果所有文档都使用相同的类,那么也可以使用标题来连接到每个页面。这是我首选的方式,下面是有关如何执行此操作的 MWE。
\documentclass{scrbook}
\usepackage{lipsum,xcolor}
%\IfFileExists{changepage.sty}{%
% \PassOptionsToPackage{strict}{changepage}
% \RequirePackage{changepage}
% }{}
\IfFileExists{rotating.sty}{\RequirePackage{rotating}}{}
\makeatletter
\def\even@samplepage{%
\begin{picture}(0,0)
\put(\Xeven,\Yeven){\turnbox{90}{\Huge \textcolor{\watermark@textcolor}{\watermark@text}}}
\end{picture}
}
%% Define a macro to print SAMPLE PAGE IN THE MARGIN
\def\odd@samplepage{%
\begin{picture}(0,0)
\put(\Xodd,\Yodd){\turnbox{90}{\Huge \textcolor{\watermark@textcolor}{\watermark@text}}}
\end{picture}
}
% Define the watermark words
\def\watermarktext#1{\gdef\watermark@text{\fontfamily{phv}\selectfont#1}}
\def\watermarktextcolor#1{\gdef\watermark@textcolor{#1}}
% redefine headings
\def\ps@samplepage{\let\@mkboth\@gobbletwo
\let\@oddhead\odd@samplepage\def\@oddfoot{\reset@font\hfil\thepage}
\let\@evenhead\even@samplepage\def\@evenfoot{\reset@font\thepage\hfil}}
%%
%% We define two macros to position the watermark on the page
\def\Xodd{500}
\def\Xeven{-70}\def\Yeven{-810}
\def\Yeven{-\expandafter\strip@pt\textheight}
\let\Yodd\Yeven
\watermarktext{SAMPLE PAGE}
\watermarktextcolor{blue}
\makeatother
\begin{document}
\pagestyle{samplepage}
\lipsum
\end{document}
% end of document