我正在制作一个beamer
演示文稿,其中我使用以下方式对帧进行编号
\addtobeamertemplate{navigation symbols}{}{%
\usebeamerfont{footline}%
\usebeamercolor[fg]{footline}%
\hspace{1em}%
\insertframenumber/\inserttotalframenumber
}
现在我想要一个每页有 4 帧的可打印版本,所以我使用了循环空间对此的回复问题。但是,当帧数超过 4 时,合并会产生问题。对于我当前的 8 帧幻灯片,帧编号为:1/4、2/4、...、8/4。我该如何解决这个问题(即,帧编号如下:1/8、2/8、...、8/8)?
平均能量损失
\documentclass[10pt, a4paper, english, aspectratio=169,handout]{beamer}
\mode<handout>
{
\usepackage{pgf}
\usepackage{pgfpages}
\pgfpagesdeclarelayout{4 on 1 boxed}
{
\edef\pgfpageoptionheight{\the\paperheight}
\edef\pgfpageoptionwidth{\the\paperwidth}
\edef\pgfpageoptionborder{0pt}
}
{
\pgfpagesphysicalpageoptions
{%
logical pages=4,%
physical height=\pgfpageoptionheight,%
physical width=\pgfpageoptionwidth%
}
\pgfpageslogicalpageoptions{1}
{%
border code=\pgfsetlinewidth{2pt}\pgfstroke,%
border shrink=\pgfpageoptionborder,%
resized width=.5\pgfphysicalwidth,%
resized height=.5\pgfphysicalheight,%
center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}%
}%
\pgfpageslogicalpageoptions{2}
{%
border code=\pgfsetlinewidth{2pt}\pgfstroke,%
border shrink=\pgfpageoptionborder,%
resized width=.5\pgfphysicalwidth,%
resized height=.5\pgfphysicalheight,%
center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}%
}%
\pgfpageslogicalpageoptions{3}
{%
border code=\pgfsetlinewidth{2pt}\pgfstroke,%
border shrink=\pgfpageoptionborder,%
resized width=.5\pgfphysicalwidth,%
resized height=.5\pgfphysicalheight,%
center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}%
}%
\pgfpageslogicalpageoptions{4}
{%
border code=\pgfsetlinewidth{2pt}\pgfstroke,%
border shrink=\pgfpageoptionborder,%
resized width=.5\pgfphysicalwidth,%
resized height=.5\pgfphysicalheight,%
center=\pgfpoint{.75\pgfphysicalwidth}{.25\pgfphysicalheight}%
}%
}
\pgfpagesuselayout{4 on 1 boxed}[a4paper, border shrink=5mm, landscape]
\nofiles
}
\addtobeamertemplate{navigation symbols}{}{%
\usebeamerfont{footline}%
\usebeamercolor[fg]{footline}%
\hspace{1em}%
\insertframenumber/\inserttotalframenumber
}
\setbeamercolor{footline}{fg=black}
\setbeamerfont{footline}{series=\bfseries}
\begin{document}
\begin{frame}
Frame 1
\end{frame}
\begin{frame}
Frame 2
\end{frame}
\begin{frame}
Frame 3
\end{frame}
\begin{frame}
Frame 4
\end{frame}
\begin{frame}
Frame 5
\end{frame}
\begin{frame}
Frame 6
\end{frame}
\begin{frame}
Frame 7
\end{frame}
\begin{frame}
Frame 8
\end{frame}
\end{document}
答案1
“黑魔法”方法所做的就是利用\nofiles
宏来防止文件被修改.aux
。
如果我们注释掉
%\pgfpagesuselayout{4 on 1 boxed}[a4paper, border shrink=5mm, landscape]
%\nofiles
我们得到了一个 1 页 1 帧的文档,页码正确。现在查看 .aux 文件(最后一行),我们得到:
\@writefile{nav}{\headcommand {\def \inserttotalframenumber {8}}} % 8 is the number we want for the total frame count
这是正确的值,因为现在是按一一计算页面的。
此时我们取消上面两行的注释:
\pgfpagesuselayout{4 on 1 boxed}[a4paper, border shrink=5mm, landscape]
\nofiles
\nofiles
将确保.aux
文件不被修改,以便它保持正确的总数。
当然,一旦我们添加另一个框架/页面,黑魔法就会失败,因此必须在文档完成时使用魔法,否则就会发生不好的事情(他们是这么说的......)。