多页 PDF 和 graphicx 的 \includegraphics

多页 PDF 和 graphicx 的 \includegraphics

我正在单个 Beamer 框架内处理多个动画,并且希望在 内仅包含多页 PDF 页面的最后一页\only<n>{\includegraphics[opt]{args}}。问题是这些框架分隔的多页 PDF 的总页数都不同:

我试过

\includegraphics[page=-1]{multipage.pdf}

并且有点进展顺利,但出现编译错误:

PDF inclusion: required page does not exist <16>
 ==> Fatal error occurred, no output PDF file produced!

很奇怪,因为这<16>是我的文件的最后一页multipage.pdf。如果我尝试使用 进行编译page=16,它会编译。我考虑过使用pdfpages包,但是我不再有好的\textwidth\textheight来控制图形大小输出。

有任何想法吗?

答案1

一些更经典的 pdflatex (仅限):

姆韦

\documentclass{beamer}
\begin{document}
\begin{frame}{test with pdflatex}
\centering
\pdfximage{example-image-a4-numbered.pdf}
\includegraphics[height=.8\textheight,page=\pdflastximagepages]{example-image-a4-numbered.pdf}\par
This PDF has  \the\pdflastximagepages\  pages
\end{frame}
\end{document}

对于 R 用户,另一种选择是让 R 计算页数并将此信息传递给\includegraphics,这样 LaTeX 引擎就无关紧要了。您可以latex-engine在 Rmarkdown 中挑选出此 MWE 中的元数据来测试它:

姆韦

---
latex-engine: xelatex # or lualatex, or pdflatex
output: beamer_presentation
---

```{r, include=FALSE}
library(rmarkdown)
library(knitr)
library(pdftools)
``` 

### test using `r metadata$"latex-engine"`

```{r, include=FALSE}
file <- "/usr/local/texlive/2021/texmf-dist/tex/latex/mwe/example-image-a4-numbered.pdf" # change to some 
pages <- pdf_info(file)$pages 

```

```{r, echo=F, out.extra=paste("page=",pages,sep=""),  out.height="5cm", fig.cap=paste("This PDF has",pages,"pages")}
include_graphics(file) 
```

答案2

非常新的 l3kernel/l3experimental (今天在 texlive 2022 中) 你可以这样做:

\documentclass{article}
\usepackage{l3graphics,graphicx}
\begin{document}
\ExplSyntaxOn
\graphics_get_pagecount:nN{example-image-a4-numbered.pdf}\mypagecount
\ExplSyntaxOff
\includegraphics[scale=0.5,page=\mypagecount]{example-image-a4-numbered.pdf}

\end{document}

在此处输入图片描述

答案3

还有一种可能性(pdflatexlualatex):

\documentclass{article}

\usepackage{graphicx,luatex85}
\begin{document}

\savebox{0}{\includegraphics{example-image-a4-numbered.pdf}}%
\includegraphics[scale=0.5,page=\pdflastximagepages]{example-image-a4-numbered.pdf}

\end{document}

相关内容