编辑:循环效果

编辑:循环效果

我知道如何使用包 pdfpages 来包含 pdf 页面并一直这样做,但总是存在页面居中和缩放的问题。

我现在正在尝试学习如何使用 tikzpicture 来做同样的事情,因为我想利用覆盖选项,就像

\begin{tikzpicture}[remember picture,overlay]

我发现,在单页上,效果很好。问题是我必须使用循环,因为使用数字时\includegraphics[page=??]{file2.pdf} 必须page是单页。我不能使用一些东西,例如\includepdf[page={2-}],告诉它读取第 2 页到 pdf 文件的末尾。

这是一个 MWE,用于读取 tickz 中的一页,效果很好:

\documentclass[11pt]{report}
\usepackage{amsmath,mathtools}
\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{tikz}
\usepackage{pgffor}

\begin{document}
\begin{tikzpicture}[remember picture,overlay]   
     \node[inner sep=0pt] at (current page.center)
         {\includegraphics[page=1]{file2.pdf}};
\end{tikzpicture}
\end{document}

现在,我想做同样的事情,但不仅仅是针对第 1 页,而是针对所有页面。这是我尝试的

\documentclass[11pt]{report}    
\usepackage{amsmath,mathtools}
\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{tikz}
\usepackage{pgffor}

\begin{document}    
\pdfximage{file2.pdf}  %find how many pages 
There are \the\pdflastximagepages\ pages in the file. Now 
we will include them:

\begin{tikzpicture}[remember picture,overlay]   
   \foreach \index in {1, ... ,\the\pdflastximagepages}
   {
     \node[inner sep=0pt] at (current page.center)
         {\includegraphics[page=\index]{file2.pdf}};
   }
\end{tikzpicture}    
\end{document}

但这给出了错误Paragraph ended before \pgffor@dots@stripcontext was complete.

我也尝试将循环放在外面,将 tikzpicture 放在里面

\documentclass[11pt]{report}    
\usepackage{amsmath,mathtools}
\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{tikz}
\usepackage{pgffor}

\begin{document}    
\pdfximage{file2.pdf}

\foreach \index in {1, ... ,\the\pdflastximagepages}
{
   \begin{tikzpicture}[remember picture,overlay]   
      \node[inner sep=0pt] at (current page.center)
         {\includegraphics[page=\index]{file2.pdf}};
   \end{tikzpicture}
}
\end{document}

同样的问题。显然我迷路了,不知道自己在做什么,所以我请求专家帮助我纠正语法。

参考:

newcommand 中的“For 循环”

使用 pdfpages 在 latex 中包含 PDF 页面,无需缩放

答案1

我建议使用background包和一些小技巧。以下定义了一个新命令\installbackgrounds[]{}。第一个参数是可选的,用于设置背景文件中的总页数。第二个强制参数指定文件。如果没有指定总数,则数字默认为1

\documentclass[a4paper]{report}
\usepackage{graphicx}
\usepackage{background, etoolbox, kantlipsum}
\newcounter{mypagebackground}
\setcounter{mypagebackground}{0}
\newcounter{mypagebackgroundpages}
\setcounter{mypagebackgroundpages}{0}
\newcommand*\myinstallbackground[1]{\relax}
\newcommand*\installbackgrounds[2][1]{%
  \setcounter{mypagebackground}{0}%
  \setcounter{mypagebackgroundpages}{#1}%
  \gdef\mybackgroundfile{#2}%
}
\AddEverypageHook{\stepcounter{mypagebackground}}
\backgroundsetup{%
  contents={%
    \AddEverypageHook{% adapted from pp. 6-7 of background manual
      \ifnumless{\value{mypagebackgroundpages}}{\value{mypagebackground}}{}{%
        \begin{tikzpicture}[remember picture, overlay]
          \node  at (current page.center) {\includegraphics[page=\themypagebackground]{\mybackgroundfile}};
        \end{tikzpicture}}%
    }%
  }%
}
\begin{document}
  \kant[1-5]
  \installbackgrounds[7]{mypages.pdf}
  \kant[1-30]
  \installbackgrounds{example-image-a.pdf}
  \kant[1-5]
\end{document}

mypages.pdf是一个由 7 页组成的 PDF,每页代表彩虹的一种颜色。

彩虹康德

编辑:循环效果

这是对评论中讨论的回应。这不是答案。它旨在帮助理解发生了什么。运行此代码并比较不同的效果。

\documentclass{article}
\usepackage{tikz}
\begin{document}
  \begin{tikzpicture}
    \foreach \i in {10,20,...,100}
      \node [minimum width=\i mm, minimum height=\i mm, draw=red!\i] at (current page.center) {};
  \end{tikzpicture}
  \clearpage
  \foreach \i in {10,20,...,100}{%
  \begin{tikzpicture}[remember picture, overlay]
    \node [minimum width=\i mm, minimum height=\i mm, draw=blue!\i] at (current page.center) {};
  \end{tikzpicture}}
  Some text on this page.
  \clearpage
  \foreach \i in {10,20,...,100}{%
  \begin{tikzpicture}
    \node [minimum width=\i mm, minimum height=\i mm, draw=green!\i] at (current page.center) {};
  \end{tikzpicture}}
  \foreach \i in {10,20,...,100}{%
  \begin{tikzpicture}
    \node [minimum width=\i mm, minimum height=\i mm, draw=orange!\i] {};
  \end{tikzpicture}
  Some text on page \thepage.
  \clearpage}
\end{document}

不同的循环效果

\clearpage请注意,第一个橙色方块与绿色方块一起出现在页面上,因为在最后一个绿色方块(远离页面)之后没有其他方块。

相关内容