我尝试了以下操作,但没有成功:
\documentclass[serif]{beamer}
\usetheme{Boadilla}
\usecolortheme{whale}
\usepackage{amsmath,amsfonts,amsthm}
\usepackage[utf8]{inputenc}
\setbeamertemplate{headline}{\insertsection}%Does not seem to do anything at all
%\setbeamertemplate{frametitle}{...} doesnt help either
\begin{document}
\section{Calculus}
\subsection{Calculus1}
\begin{frame}
\frametitle{Calculus1}
Calculus1
\end{frame}
\subsection{Calculus2}
\begin{frame}
\frametitle{Calculus2}
Calculus2
\end{frame}
\end{document}
一个想法是手动完成,将frametitle
和framesubstitle
彼此相邻(可能是标题中的两个“框”)而不是彼此之下,但我无法实现。与\setbeamertemplate(frametitle}{...}
。
答案1
像这样?
\secname
您可以在和之间放置任何\subsecname
您喜欢的内容:
\documentclass[serif]{beamer}
\usetheme{Boadilla}
\usecolortheme{whale}
\usepackage{amsmath,amsfonts,amsthm}
\begin{document}
\section{Calculus}
\subsection{Calculus1}
\begin{frame}{\secname$\,\to\,$\subsecname}
Calculus1
\end{frame}
\subsection{Calculus2}
\begin{frame}{\secname\ – \subsecname}
Calculus2
\end{frame}
\end{document}
答案2
据我了解,您希望将当前部分名称自动放入框架标题中。使用您提供的代码,您的主要问题是,您尝试在白色背景上绘制白色文本。尝试将文本设置为不同的颜色,您会看到,您的代码实际上做了一些事情:
\setbeamertemplate{headline}{\color{red}\insertsection}
\setbeamertemplate{frametitle}{\color{green}\insertsection}
现在要将当前部分放入框架标题中,我们应该看看当前框架标题是如何定义的,然后对其进行修改。因此,您正在使用Boadilla
加载的主题,beamerthemeboadilla.sty
然后我们可以看到\useoutertheme{infolines}
。但是,beamerouterthemeinfolines.sty
没有出现定义,因此使用frametitle
默认的。beamerouterthemedefault.sty
现在我们来修改一下,在章节标题前面写上带有冒号的章节名称:
\documentclass[serif]{beamer}
\usetheme{Boadilla}
\usecolortheme{whale}
\usepackage{amsmath,amsfonts,amsthm}
\usepackage[utf8]{inputenc}
\makeatletter
\defbeamertemplate*{frametitle}{myownframetitle}[1][left]
{
\ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
\@tempdima=\textwidth%
\advance\@tempdima by\beamer@leftmargin%
\advance\@tempdima by\beamer@rightmargin%
\begin{beamercolorbox}[sep=0.3cm,#1,wd=\the\@tempdima]{frametitle}
\usebeamerfont{frametitle}%
\vbox{}\vskip-1ex%
\if@tempswa\else\csname beamer@fte#1\endcsname\fi%
\strut\insertsection: \insertframetitle\strut\par%
{%
\ifx\insertframesubtitle\@empty%
\else%
{\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle\strut\par}%
\fi
}%
\vskip-1ex%
\if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
\end{beamercolorbox}%
}
\makeatother
\begin{document}
\section{Calculus}
\subsection{Calculus1}
\begin{frame}
\frametitle{Calculus1}
Calculus1
\end{frame}
\subsection{Calculus2}
\begin{frame}
\frametitle{Calculus2}
Calculus2
\end{frame}
\end{document}