我有一系列图像,img1.png、img2.png、img3.png、...我希望 img1.png 出现在我的 LaTeX 文档第 1 页的背景中,img2.png 出现在我的文档第 2 页的背景中,img3.png 也是如此,以此类推。
我的图片比页数还多。还有封面和目录,为了便于论述,我将其忽略。请注意,这些图片都是不同的,特别是它们不会重复出现,例如,每个奇数页或偶数页。
有什么想法吗?谢谢。
答案1
欢迎使用 TeX.SE!使用以下代码,您可以根据需要在任何位置定义图像序列(甚至可以在文档中间更改它),如下所示:
\setimages{example-image-a, example-image-b, example-image-c}
如果图像序列中的页面数多于图像数,则它具有环绕行为(我知道您没有要求这样做,但这是一个相当便宜的添加)。您可能不会在意,但也会\setimages
尊重 TeX 分组。
\documentclass{article}
\usepackage{eso-pic}
\usepackage{graphicx}
\usepackage{xparse}
\usepackage{lipsum} % provides dummy text for demonstration purposes
\ExplSyntaxOn
\seq_new:N \g_jim_images_seq
\cs_new_protected:Npn \jim_use_as_bg_picture:n #1
{
\AtPageLowerLeft
{ \includegraphics[width=\paperwidth, height=\paperheight] {#1} }
}
\cs_generate_variant:Nn \jim_use_as_bg_picture:n { x }
\NewDocumentCommand \setimages { m }
{ \seq_set_from_clist:Nn \g_jim_images_seq {#1} }
\NewDocumentCommand \setbgpicforcurrentpage { }
{
% Compute wrapped-around 0-based index in \g_jim_images_seq
\int_set:Nn \l_tmpa_int
{ \int_mod:nn { \the\value{page} - 1 } { \seq_count:N \g_jim_images_seq } }
% Set it as the current page background
\jim_use_as_bg_picture:x
{ \seq_item:Nn \g_jim_images_seq { \l_tmpa_int + 1 } }
}
\ExplSyntaxOff
\AddToShipoutPictureBG{\setbgpicforcurrentpage}
% Use example-image-a for page 1, example-image-b for page 2, example-image-c
% for page 3, etc. This respects TeX grouping and can be reset mid-document.
\setimages{example-image-a, example-image-b, example-image-c}
\begin{document}
% Current image sequence: a, b, c, a, b, c, a ...
\lipsum
\lipsum
\lipsum
\lipsum
\lipsum
% Change the image sequence to: a, b, a, b, a, b, a...
\setimages{example-image-a, example-image-b}%
\lipsum
\lipsum
\lipsum
\end{document}