Игнорирование номеров страниц в резервных слайдах - PullRequest
55 голосов
/ 09 апреля 2009

Я использую класс документа beamer в латексе для презентации. У меня будет несколько резервных слайдов, предназначенных для просмотра в автономном режиме, ссылок и т. Д. В Beamer есть функция, которая отображает ход презентации в виде {page #} / {всего страниц} на каждом слайде. Мне бы очень понравилось, если бы {total pages} было эквивалентно общему количеству страниц без подсчета резервных слайдов (я не хочу отговаривать свою аудиторию на первой странице!). Кто-нибудь знает, как это можно сделать?

Ответы [ 9 ]

45 голосов
/ 26 февраля 2013

Теперь это можно сделать с помощью следующей опции на всех «резервных» слайдах:

\begin{frame}[noframenumbering]{My Title}
\end{frame}

Источник

Это приведет к тому, что на таких страницах будет отображаться окончательное число (например, 25/25).

Как всегда, дело вкуса.

24 голосов
/ 03 марта 2010

Я определил две команды для этого:

\newcommand{\beginbackup}{
   \newcounter{framenumbervorappendix}
   \setcounter{framenumbervorappendix}{\value{framenumber}}
}
\newcommand{\backupend}{
   \addtocounter{framenumbervorappendix}{-\value{framenumber}}
   \addtocounter{framenumber}{\value{framenumbervorappendix}} 
}

Затем можно использовать \beginbackup и \backupend до и после резервного слайда, чтобы настроить количество слайдов.

Для моего шаблона beamer я также хотел бы добавить

\setbeamertemplate{footline}{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
    \usebeamerfont{author in head/foot}\insertshortauthor~~(\insertshortinstitute)
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
    \usebeamerfont{title in head/foot}\insertshorttitle
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
    \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
    \insertframenumber{} \hspace*{2ex} % hier hat's sich geändert
  \end{beamercolorbox}}%
  \vskip0pt%
}

в определении команды \beginbackup, чтобы скрыть общее количество страниц в резервных слайдах, в противном случае вы получите что-то вроде «24/18».

Используя все это, ваши слайды будут пронумерованы как "x / Y" для всех слайдов перед резервным копированием, где Y - общее количество слайдов перед первым резервным слайдом, а резервные слайды продолжат нумерацию предыдущего слайды.

20 голосов
/ 15 ноября 2009

Это можно сделать с помощью пакета appendixnumberbeamer . Просто добавьте \usepackage{appendixnumberbeamer} к преамбуле и используйте \appendix перед первым резервным слайдом.

11 голосов
/ 09 апреля 2009

Чтобы вручную зафиксировать общее количество кадров до определенного числа, скажем, 25, вы можете добавить следующую команду

\renewcommand{\inserttotalframenumber}{25}

сразу после команды \ begin {document}.

Вы также можете добавить команду \ appendix непосредственно перед началом слайдов резервного копирования, чтобы соответствующие разделы / подразделы не появлялись в оглавлении / структуре навигации.

Должна быть возможность настроить вышеуказанную команду renew, чтобы она автоматически использовала последний номер кадра перед приложением, но я не знаю, как это сделать.

8 голосов
/ 31 августа 2013

Просто вставьте

\renewcommand{\inserttotalframenumber}{\pageref{lastslide}}

после \ begin {document} и поместите маркер

\label{lastslide}

на вашем последнем слайде.

7 голосов
/ 09 апреля 2009

Фанфан, спасибо за ваш ответ, ваш ответ привел меня к этому стилевому файлу, который можно включить в класс документа beamer, который будет автоматически подсчитывать только количество кадров перед приложением, а затем перезапускать отдельный подсчет для приложения слайды, довольно аккуратные.

http://www.ensta.fr/~lelong/Latex/appendixnumberbeamer.sty

Спасибо также Jérôme LELONG за то, что он доступен онлайн.

5 голосов
/ 12 апреля 2016

Вы можете поместить все свои резервные слайды в приложение и использовать пакет appendixnumberbeamer.

\documentclass[12pt]{beamer}
\usepackage{appendixnumberbeamer}
\begin{document}
\begin{frame}{Frames that counts}
\end{frame}
\appendix
\begin{frame}{Backup slides}
\end{frame}
\end{document}
4 голосов
/ 13 сентября 2013

Великолепная команда \ insertpresentationendpage позаботится о вашей проблеме. Просто поместите \ приложение в начале ваших слайдов резервного копирования.

\documentclass[t]{beamer}

\usepackage[absolute,overlay]{textpos}
\setbeamertemplate{navigation symbols}{}

\def\insertpresentationendframe{\inserttotalframenumber}
\makeatletter
\g@addto@macro{\appendix}{\immediate\write\@auxout{\string\@writefile{nav}{\noexpand\headcommand{\noexpand\def\noexpand\insertpresentationendframe{\the\c@framenumber}}}}}
\makeatother

\setbeamertemplate{footline}{%
    \begin{picture}(54,12.5)(0,0)
    \put(0.9,0.52){%
        \begin{minipage}[b][12.5mm][c]{112.5mm}
        \raggedleft
        \insertframenumber/\insertpresentationendframe
        \end{minipage}
    }
    \end{picture}
}

\begin{document}

    \begin{frame}
        slide in the main part
        \only<2>{blub}
    \end{frame}

    \appendix
    \section*{Backup}

    \begin{frame}
        \frametitle{backup}
        not counting in the total frame number
    \end{frame}

\end{document}

enter image description here

1 голос
/ 27 февраля 2019

Другая возможность - недавно добавленная в beamer - это использование шаблона appendixframenumber:

\documentclass[t]{beamer}

\setbeamertemplate{footline}{
  \hfill%
  \usebeamercolor[fg]{page number in head/foot}%
  \usebeamerfont{page number in head/foot}%
  \setbeamertemplate{page number in head/foot}[appendixframenumber]%
  \usebeamertemplate*{page number in head/foot}\kern1em\vskip2pt%
}

\begin{document}

    \begin{frame}
        slide in the main part
        \only<2>{blub}
    \end{frame}

    \appendix
    \section*{Backup}

    \begin{frame}
        \frametitle{backup}
        not counting in the total frame number
    \end{frame}

\end{document}
...