如何使用 PerlTeX 为每个页面应用不同的背景图像

如何使用 PerlTeX 为每个页面应用不同的背景图像

如何为每一页应用不同的背景图像?我有一组要应用的 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 的输出例程并在发货前添加图片或文本。everyshieso-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

相关内容