删除 Beamer 某些页面上的页码

删除 Beamer 某些页面上的页码

我正在尝试删除过渡页上的页码(由于 ,这些页码不被计算在内noframenumbering)。

目前,我在转换上有以下显示: 转型失败

我想要有这样的过渡显示: 转型成功

(您会注意到页面上没有页码)


问题:是否可以在不编辑整个主题包的情况下删除页码(我只想删除这部分,但我想保留所有其他内容)?

如果没有,那么有什么解决方案可以删除该页码,但保留页眉和页脚上的所有其他内容?


我的最小工作示例:

\documentclass{beamer}
\usetheme{CambridgeUS}

\begin{document}
\AtBeginSection[]{
    \begin{frame}<beamer>[noframenumbering]
        \tableofcontents[currentsection,hideothersubsections]
    \end{frame}
}

\section{section1}
\begin{frame}
We are in section1
\end{frame}

\section{section2}
\begin{frame}
We are in section2
\end{frame}

\end{document}

答案1

这是一个有点“肮脏”的解决方案,但效果很好。

\documentclass{beamer}
\usetheme{CambridgeUS}

\makeatletter
\AtBeginSection[]{{                    %notice the double brackets
    \setbeamertemplate{footline}{
        \hbox{%
            \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
                \usebeamerfont{author in head/foot}\insertshortauthor\expandafter\beamer@ifempty\expandafter{\beamer@shortinstitute}{}{~~(\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}
                \phantom{\insertframenumber{} / \inserttotalframenumber}\hspace*{2ex}        %notice the \phantom 
            \end{beamercolorbox}}
        }
        \begin{frame}<beamer>[noframenumbering]
                \tableofcontents[currentsection,hideothersubsections]
        \end{frame}
}}                                     %notice the double brackets
\makeatother

\begin{document}
\section{section1}
\begin{frame}
We are in section1
\end{frame}

\section{section2}
\begin{frame}
We are in section2
\end{frame}

\end{document}

我所做的是将移到\atbeginsection[]文档开始之前并嵌入信息行主题(与剑桥使用的相同),但不包含页码。我将负责页码编号的宏包含在内,\phantom{}以便保持日期文本的精确位置。

还要注意需要双括号来避免将修改后的主题传播到所有后续帧。

在此处输入图片描述

单帧无编号

原则上,您可以将修改后的模板放在任何单个框架之前,并将所有内容包含在一个组中,以便仅为该框架加载模板。

{
\makeatletter
\setbeamertemplate{footline}{
        \hbox{%
            \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
                \usebeamerfont{author in head/foot}\insertshortauthor\expandafter\beamer@ifempty\expandafter{\beamer@shortinstitute}{}{~~(\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}
                \phantom{\insertframenumber{} / \inserttotalframenumber}\hspace*{2ex}
            \end{beamercolorbox}}
        }
\makeatother
\begin{frame}
We are in section2
\end{frame}
}

或者您可以通过创建嵌入修改后的模板的自定义框架环境来实现相同的目的:

\newenvironment{myframe}{
\makeatletter
\setbeamertemplate{footline}{
        \hbox{%
            \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
                \usebeamerfont{author in head/foot}\insertshortauthor\expandafter\beamer@ifempty\expandafter{\beamer@shortinstitute}{}{~~(\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}
                \phantom{\insertframenumber{} / \inserttotalframenumber}\hspace*{2ex}
            \end{beamercolorbox}}
        }
\makeatother
\begin{frame}}
{\end{frame}}

然后myframe像自定义环境一样调用你

\begin{myframe} 
This frame will show no numbering
\end{myframe}

每次你想隐藏编号时。虽然这不是特别优雅,但确实有效。

相关内容