使用投影机中的总页数作为计数器

使用投影机中的总页数作为计数器

我正在尝试在乳胶中设置页数总数:

\newcount\mypagecount
\mypagecount=\insertpresentationendpage

但每当我这样做时,它都会自动“打印”总页数,而不是将数字作为计数。有没有办法将其设置为计数?

以下是我想做的更确切的事情:

\newcount\mypagenum
\newcount\mypagecount
\newdimen\barwidth

\mypagenum=\insertpagenumber
\mypagecount=\insertpresentationendpage
\barwidth=\paperwidth

\multiply\barwidth by \mypagenum                                       
\divide\barwidth by \mypagecount

我尝试使用计数器,但也引发了错误:

\newcounter{mypagecount}
\setcounter{mypagecount}{\insertpresentationendpage}

如果我不能使用这些数字和/或如何实际使用这些数字,有什么想法我可以在最后进行除法?

答案1

以下操作与 的当前版本基本相同\insertpresentationendpagebeamer但设置了计数器而不是打印结果。我还添加了一个概念验证进度条输出。

\documentclass[]{beamer}

\newlength\barwidth
\newlength\tmpbarwidth
\newcount\mypagecount

\makeatletter
\newcommand*\progressbar
  {%
    \ifnum\mypagecount=0
      \ifx\beamer@startpageofappendix\@empty
        \mypagecount=\beamer@endpageofdocument\relax
      \else
        \mypagecount=\beamer@startpageofappendix\relax
        \advance\mypagecount\m@ne
      \fi
      \ifnum\mypagecount=0
        \global\mypagecount=1
      \else
        \global\mypagecount=\mypagecount
      \fi
    \fi
    \begingroup
      \tmpbarwidth\insertpagenumber\barwidth
      \divide\tmpbarwidth\mypagecount
      \rule{\tmpbarwidth}{5pt}%
      \advance\barwidth-\tmpbarwidth
      \textcolor{gray}{\rule{\barwidth}{5pt}}%
    \endgroup
  }
\makeatother

\setlength\barwidth{5cm}

\begin{document}
\begin{frame}
  \progressbar
\end{frame}
\begin{frame}
  \progressbar
\end{frame}
\begin{frame}
  \progressbar
\end{frame}
\begin{frame}
  \progressbar
\end{frame}

\end{document}

相关内容