在框架内的特定命令之后抑制框架标题(例如 titlepage)

在框架内的特定命令之后抑制框架标题(例如 titlepage)

我正在为一个主题写一个 .sty 文件,其他人也会使用这个文件。

我的目标是在使用特定主题的相应 .tex 文件的文档环境中尽可能减少附加(可见)代码。

我遇到了有关框架标题 - 标题页交互的障碍。我想避免人们给标题页添加额外的框架标题。

平均能量损失

\documentclass{beamer}

\pgfdeclareimage[width=.5\paperwidth]{mybackground}{beamericononline}

\defbeamertemplate*{title page}{mytitlepage}
{
    \begin{picture}(0,0)
    \put(-20,-60){%
        \pgfuseimage{mybackground}
    }
    \put(165,0){%
        %\colorbox{teal}{
        \begin{minipage}[b][10mm][t]{0.5\textwidth}
        \usebeamerfont{title}{\inserttitle\par}
        \end{minipage}%
        %}
    }
    \end{picture}
}

\title{A proper test title for a test presentation?}

\begin{document}
%%----------------------------------------------------------------------
%% This is how it should look like, even if you uncomment the frametitle
%%----------------------------------------------------------------------

\begin{frame}%{An extra frame title\\[2ex] is not allowed}
\titlepage
\end{frame}

%%----------------------------------------------------------------------
%% This should not be allowed, an error shall stop the compiling    
%%----------------------------------------------------------------------

\begin{frame}{An extra frame title\\[2ex] is not allowed}
    \titlepage
\end{frame}

%%----------------------------------------------------------------------
%% Frametitle suppressed, but I prefer to handle the added code in the 
%% .sty file, i.e. before the document environment
%%----------------------------------------------------------------------

{
\setbeamertemplate{frametitle}{}
\begin{frame}{An extra frame title\\[2ex] is not allowed}
    \titlepage
\end{frame}
}

我已经尝试了几种方法

{
\setbeamertemplate{frametitle}{}
...
}

在文档之前,例如在标题页模板内。其他想法是使用额外的\newif\if\ifx定义一个对输入作出反应的键\titlepage(作为框架主体的一部分),类似于tex.stackexchange.com/questions/173201不工作。

有没有办法(除给定方法外)使用(仅)样式文件来抑制框架标题的输出?

在此处输入图片描述 在此处输入图片描述

答案1

如果始终有标题页,则可以测试框架标题定义中的页码,并且仅从第二页开始显示它:

\documentclass{beamer}

\pgfdeclareimage[width=.5\paperwidth]{mybackground}{beamericononline}

\defbeamertemplate*{title page}{mytitlepage}
{
    \begin{picture}(0,0)
    \put(-20,-60){%
        \pgfuseimage{mybackground}
    }
    \put(165,0){%
        %\colorbox{teal}{
        \begin{minipage}[b][10mm][t]{0.5\textwidth}
        \usebeamerfont{title}{\inserttitle\par}
        \end{minipage}%
        %}
    }
    \end{picture}
}

\title{A proper test title for a test presentation?}


\setbeamertemplate{frametitle}{%
    \ifnum\thepage>1
        \insertframetitle
    \fi
}

\begin{document}

\begin{frame}{An extra frame title\\[2ex] is not allowed}
    \titlepage
\end{frame}

\begin{frame}
\frametitle{title}
normal frame
\end{frame}

\end{document}

相关内容