在 beamer 中使用 pdfpages 包含页面时,帧号不正确

在 beamer 中使用 pdfpages 包含页面时,帧号不正确

pdfpages我正在使用包含一些页面beamer。我知道这些页面不能包含在框架中。相反,这些页面作为简单文本包含在内。到目前为止一切顺利。

但是,幻灯片页脚中的帧数不正确。请看这个简单示例,

\documentclass{beamer}

\usepackage{pdfpages}

\mode<presentation>
{
  \usetheme{Luebeck}
  \setbeamercovered{transparent}
}

\usepackage{times}

% Frame numbers
\expandafter\def\expandafter\insertshorttitle\expandafter{%
  \insertshorttitle\hfill\insertframenumber\,/\,\inserttotalframenumber}

\begin{document}

\begin{frame}
  \frametitle{First Frame}
\end{frame}

\begingroup
  \setbeamercolor{background canvas}{bg=}
  \includepdf[pages=1-10]{mypdf.pdf}
\endgroup

\begin{frame}
  \frametitle{Last Frame}
\end{frame}


\end{document}

虽然我需要第一张幻灯片的数字是 1/12,最后一张幻灯片的数字是 12/12,但实际上结果是 1/2 和 2/2。我知道 beamer 没有做错。这在数学上 100% 正确。但从用户的角度来看,这并不是有意的。

有什么方法可以让我融入非框架幻灯片中有多少页数?

答案1

经过多次反复试验和代码破解后,我找到了这样的解决方案。

\def\getpdfpages#1#2{\begingroup
  \setbeamercolor{background canvas}{bg=}
  \includepdf[pages={#1},%
  pagecommand={\global\setcounter{framenumber}{\value{page}}%
    \expandafter\def\expandafter\insertshorttitle\expandafter{%
      \insertshorttitle\hfill\insertframenumber\,/\,\inserttotalframenumber}}%
  ]{#2}
  \endgroup}

对于上面的宏,第一个参数是页面范围,第二个参数是.pdf文件名。因此,你可以这样调用它:

\getpdfpages{{4-5}}{mypdf.pdf}

或者

\getpdfpages{{4,7}}{mypdf.pdf}

或者

\getpdfpages{{4-5,7,10-12}}{mypdf.pdf}

答案2

扩展 Masroor 的答案,如果使用覆盖,则会产生错误的帧号。为防止这种情况,请使用:

\global\setcounter{framenumber}{%
  \the\numexpr\value{framenumber}+1\relax}}

每帧加一,而不是

\global\setcounter{framenumber}{\value{page}}

framenumber计数器设置为。使用/overlayspage时,两者有所不同。\pause

(我本来想对那篇文章发表评论,但我没有足够的声誉)

答案3

对于包含的 pdf 也是 beamer 演示文稿的特殊情况,可以使用以下技术:

在应包含在另一个演示文稿中的演示文稿中,用您选择的名称标记最后一帧,例如lastframe

\begin{frame}[label=lastframe]

\end{frame}

然后可以在主演示文稿中自动添加帧号:

\documentclass{beamer}

\usepackage{refcount}
\usepackage{zref-xr}
\usepackage{pdfpages}

\zxrsetup{toltxlabel}
\zexternaldocument*{OtherPresentation}

\begin{document}

\setcounterref{framenumber}{lastframe}
\setbeamercolor{background canvas}{bg=}

\includepdf[pages=-]{OtherPresentation}

\begin{frame}

\end{frame}

\end{document}

相关内容