删除标题框中的页码而不更改主题

删除标题框中的页码而不更改主题

我正在使用马德里主题,并希望保留我的标题页和演示文稿的其余部分,仅进行以下更改:1- 不要将标题框计入总框数

2- 不要在标题框中输入帧数和总帧数。

对于第一种情况,我可以手动更改可用的总帧数,我想知道是否有更自动化的方法来做到这一点。

\documentclass {beamer}
\mode<beamer>{\usetheme{Madrid}}
\title[Test Title]{Test}

\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{First test frame}

\begin{itemize}
\item Item 1
\item item 2
\end{itemize}
\end{frame}

\begin{frame}
\frametitle<beamer>{Second frame}
\begin{block}<beamer>{Example block}
Some text in the block
\end{block}
\end{frame}

\end{document}

此代码有三个框架;第一个是标题,接下来的两个是我的实际演示文稿。目前幻灯片中的页码为 1/3、2/3 和 3/3。我理想的情况是:保持演示文稿原样,将页码更改为“标题框架中没有任何内容”,第二个框架中的页码为 1/2,第三个框架中的页码为 2/2。我希望这很清楚。

答案1

bloodworks 给出了最简单的解决方案。但是,如果您希望准确保留标题页的格式,但又不包含页码信息,则可以footline仅为该框架重新定义模板,如下所示:

\documentclass {beamer}

\mode<beamer>{\usetheme{Madrid}}
\title[Test Title]{Test}

\begin{document}
\bgroup
\makeatletter
\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\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}
%    \insertframenumber{} / \inserttotalframenumber\hspace*{2ex} 
    \hspace*{6ex}
  \end{beamercolorbox}}%
  \vskip0pt%
}
\makeatother
\begin{frame}
\titlepage
\end{frame}
\egroup

\setcounter{framenumber}{0}

\begin{frame}
\frametitle{First test frame}

\begin{itemize}
\item Item 1
\item item 2
\end{itemize}
\end{frame}

\begin{frame} More \end{frame}

\end{document}

示例输出

代码通过在第一帧周围创建一个本地组,然后包含模板\bgroup / \endgroup的副本,其中插入“帧数/总帧数”被注释掉并被适当数量的水平空间替换。 footlinebeamerouterthemeinfolines.sty

如果这些数字之间没有“/”,您只需设置命令\insertframenumber\inserttotalframenumber在此组中各插入一个空格即可。

与 bloodworks 讨论后,可能有人更愿意将上述内容打包成\mytitleframe如下所示的宏。然后可以将这样的定义移至私有样式文件。

\documentclass{beamer}

\mode<beamer>{\usetheme{Madrid}}

\makeatletter
\def\mytitleframe{\bgroup
\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\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}
%    \insertframenumber{} / \inserttotalframenumber\hspace*{2ex} 
    \hspace*{6ex}
  \end{beamercolorbox}}%
  \vskip0pt%
}
\maketitle
\egroup
\addtocounter{framenumber}{-1}
}
\makeatother

\title[Test Title]{Test}

\begin{document}

\mytitleframe

\begin{frame}
  \frametitle{First test frame}

  \begin{itemize}
  \item Item 1
  \item item 2
  \end{itemize}
\end{frame}

\begin{frame} More \end{frame}

\end{document}

答案2

以下是我的方法:

\begin{frame}[noframenumbering,plain]

\end{frame}

第一个参数noframenumbering负责编号并plain允许隐藏幻灯片的当前计数器。

希望这有帮助!

答案3

1:在我看来,最简单的方法是操作计数器 framenumber。2:只需使用[plain]选项。(在脚注中重复标题对我来说没有意义。)

\documentclass {beamer}
\usetheme{Madrid}
\title[Test Title]{Test}

\let\otp\titlepage
\renewcommand{\titlepage}{\otp\addtocounter{framenumber}{-1}}

\begin{document}

\begin{frame}[plain]
 \titlepage
\end{frame}

\frame{
 \frametitle{First test frame}
\begin{itemize}
 \item Item 1
 \item item 2
 \end{itemize}
}

\frame{
 \frametitle{Second}
}

\end{document}

答案4

我正在尝试将其他答案合并成一个更方便的版本。我发现它特别noframenumbering有用;不幸的是,我无法在 beameruserguide 中找到它。

我做了一些改动。首先我重新定义(并使用)标准脚线,然后我添加了一个没有帧数的版本。这样做是为了消除帧数计数器变为两位数时的闪烁。日期现在居中,帧数设置为右侧大小为零的框。

原始版本\maketitle基本上只是为了与其他类兼容。因此,我重新定义了它,使其包含使帧号消失所需的所有更改。必须在帧外调用它才能产生任何效果。

\documentclass {beamer}

\mode<beamer>{\usetheme{Madrid}}
\title[Test Title]{Title Test}
\author[n. a.]{N. A.}

\makeatletter
%% Define new footline and apply is as default (starred version)
\defbeamertemplate*{footline}{infoline-custom}{%
      \leavevmode%
      \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,center]{date in head/foot}%
          \usebeamerfont{date in head/foot}%
          \makebox[.333333\paperwidth][c]{\insertshortdate{}}%
          \makebox[0pt][r]{\insertframenumber{} / \inserttotalframenumber\hspace*{2ex}}%
        \end{beamercolorbox}%
      }%
      \vskip0pt%
}
%% Define footline without framenumber (but not apply it)
\defbeamertemplate{footline}{infoline-custom-noframenumbering}{%
      \leavevmode%
      \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,center]{date in head/foot}%
          \usebeamerfont{date in head/foot}%
          \makebox[.333333\paperwidth][c]{\insertshortdate{}}%
        \end{beamercolorbox}%
      }%
      \vskip0pt%
}
%% Replace predefined \maketitle
\def\maketitle{%
  \ifbeamer@inframe%
    % Still works the same as before if issued within a frame
    \titlepage%
  \else%
    % Create a frame filling title page
    % Apply footline template without numbers
    % Use no numbering for frame, grouped to keep local
    \bgroup%
      \setbeamertemplate{footline}[infoline-custom-noframenumbering]
      \frame[noframenumbering]{\titlepage}%
    \egroup%
  \fi%
  }
\makeatother

%% Generate filler so that slides don't look empty
\usepackage{blindtext}

\begin{document}

\maketitle

\frame{
  \frametitle{Itemise test frame}
  \blindlistlist[3]{itemize}[3]}

\frame{
  \frametitle{Image test frame}
  \includegraphics[width=0.4\linewidth]{example-image-a}}

\frame{
  \frametitle{Texty test frame}
  \blindtext}

\end{document}

输出

相关内容