我正在为一个主题写一个 .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}