beamer:创建自己的标题主题

beamer:创建自己的标题主题

我想创建一个自定义 LaTeXbeamer主题,就像下面这个快照中的那样,这是我从一个演示文稿中截取的,但我没有它的源代码。不过,我想自己重现这些结果,从而学习如何更好地自定义 LaTeX beamer

在此处输入图片描述

在此示例中,“简介”是第一部分,“问题”是子部分。黑色标题背景淡入灰色画布(或者说是阴影?)。

如果您能提供正确的代码就太好了。我自己尝试了几个小时,但除了调整背景画布颜色之外,没有取得任何进展。

答案1

您可以重新定义headlinefootlineframetitle模板;类似这样的内容:

\documentclass{beamer}

\definecolor{secinhead}{RGB}{249,196,95}
\definecolor{titlebg}{RGB}{51,51,51}

\setbeamercolor{secsubsec}{fg=secinhead,bg=black}
\setbeamercolor{frametitle}{fg=secinhead,bg=titlebg}

\setbeamertemplate{headline}
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=\paperwidth,ht=8.25ex,dp=3.5ex]{secsubsec}%
    \raggedright
    \hspace*{2em}%
    {\sffamily\Large\color{secinhead}\thesection.~\insertsection\hfill\insertsubsection}%
    \hspace*{2em}%
  \end{beamercolorbox}%
  }%
}
\setbeamertemplate{frametitle}
{\vskip-3pt
  \leavevmode
  \hbox{%
  \begin{beamercolorbox}[wd=\paperwidth,ht=1.8ex,dp=1ex]{frametitle}%
    \raggedright\hspace*{2em}\small\insertframetitle
  \end{beamercolorbox}
  }%
}
\setbeamertemplate{footline}{}

\begin{document}

\section{Introduction}
\subsection{The questions}
\begin{frame}\frametitle{A test frame}Test\end{frame}
\subsection{Another questions}
\begin{frame}\frametitle{Another test frame}Test\end{frame}

\end{document}

在此处输入图片描述

但请注意,可能您还需要重新定义一些其他模板以保持一致性;例如,使用哪种颜色/字体来显示框架标题?枚举列表使用哪种颜色?

另一种选择是,这次必须为 frametitle 赋予另一个定义:

\documentclass{beamer}

\definecolor{secinhead}{RGB}{249,196,95}
\definecolor{shadowbg}{RGB}{51,51,51}

\setbeamercolor{secsubsec}{fg=secinhead,bg=black}
\setbeamercolor{shadow}{fg=secinhead,bg=shadowbg}

\setbeamertemplate{headline}
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=\paperwidth,ht=8.25ex,dp=3.5ex]{secsubsec}%
    \raggedright
    \hspace*{2em}%
    {\sffamily\Large\color{secinhead}\thesection.~\insertsection\hfill\insertsubsection}%
    \hspace*{2em}%
  \end{beamercolorbox}%
  }\vskip0pt%
  \hbox{%
  \begin{beamercolorbox}[wd=\paperwidth,ht=1.8ex,dp=1ex]{shadow}%
  \mbox{}
  \end{beamercolorbox}
  }%
}
\setbeamertemplate{frametitle}{}
\setbeamertemplate{footline}{}

\begin{document}

\section{Introduction}
\subsection{The questions}
\begin{frame}Test\end{frame}
\subsection{Another questions}
\begin{frame}Test\end{frame}

\end{document}

在此处输入图片描述

以下是生成第二条垂直“条”的垂直阴影颜色的代码:

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{shadings}
\definecolor{secinhead}{RGB}{249,196,95}
\definecolor{shadowbg}{RGB}{51,51,51}

\setbeamercolor{secsubsec}{fg=secinhead,bg=black}
\setbeamercolor{shadow}{fg=secinhead,bg=shadowbg}

\setbeamertemplate{headline}
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=\paperwidth,ht=8.25ex,dp=3.5ex]{secsubsec}%
    \raggedright
    \hspace*{2em}%
    {\sffamily\Large\color{secinhead}\thesection.~\insertsection\hfill\insertsubsection}%
    \hspace*{2em}%
  \end{beamercolorbox}%
  }\vskip-1pt%
  \hbox{%
  \tikz\draw[draw=none,top color=black,bottom color=shadowbg!60] (0,0) rectangle (\paperwidth,0.5);
  }%
}
\setbeamertemplate{frametitle}{}
\setbeamertemplate{footline}{}

\begin{document}

\section{Introduction}
\subsection{The questions}
\begin{frame}
Test
\end{frame}

\end{document}

最终框架的上半部分如下:

在此处输入图片描述

当然,您可以根据需要更改top color、和的值(您甚至可以选择一个值)。bottom colormiddle color

答案2

由于 Gonzalo Medina 给出了一个很好的从头开始定义模板的入门指南,因此这里是驯服现有主题解决方案。我还建议您仔细阅读现有的样式代码,主要是beamer因为它非常结构化,并且是由包作者 Till Tantau 自己编写的,因此可以提供有关用法的直接信息。

首先请注意,主题存储在beamer包文件下,可以通过更改来修改和使用只有最后一部分文件名。例如,您想要的标题看起来像是对外部主题的修改smoothbars,因此我获取beamerouterthemesmoothbars.sty并复制到演示文稿文件所在的文件夹。然后,我将其重命名为 beamerouterthememytheme.sty并修改仅有的标题部分如下:

                                % Head
\defbeamertemplate*{headline}{smoothbars theme}
{%
  \pgfuseshading{beamer@barshade}%
  \ifbeamer@sb@subsection%
    \vskip-9.75ex%
  \else%
    \vskip-7ex%
  \fi%
  \begin{beamercolorbox}[ht=8mm,dp=3.75ex,leftskip=3mm,rightskip=3mm]{section in head/foot}
    {\Large \thesection~.\insertsection\hfill\insertsubsection}
  \end{beamercolorbox}%
}%

这使得我能够在我的 beamer 演示代码中使用这个修改后的主题,如下所示:

\documentclass[hyperref={unicode}]{beamer}
\mode<presentation>

\useoutertheme{mytheme}

\definecolor{secinhead}{RGB}{249,196,95}
\definecolor{titlebg}{RGB}{51,51,51}

\setbeamercolor{frametitle}{fg=secinhead,bg=titlebg}
\setbeamercolor{section in head/foot}{fg=secinhead,bg=black}
\setbeamercolor{subsection in head/foot}{fg=secinhead,bg=black}



\title{P\"{O}ANG}
\author{Hawking of IKEA}
\begin{document}
%=================================================
\begin{frame}[plain]\titlepage
\end{frame}
%=====================================================
\section{Introduction}
\begin{frame}{Outline}
\tableofcontents
\end{frame}
%=====================================================
\subsection{Questions}
\begin{frame}{Why?}
    \begin{itemize}
        \item When?
        \item Really?
    \end{itemize}
\end{frame}
\subsection{Answers}
\begin{frame}{Big bang}
    \begin{itemize}
        \item Long ago
        \item Yes
    \end{itemize}
\end{frame}
\end{document}

所有颜色均由 Gonzalo 制作。输出如下: 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

请注意,我在这里犯了一些错误。首先,修改后的模板仍然有残留smoothbars。其余的是无关紧要的样式错误,例如,标题有点太高,部分编号点放错了位置等。如果我保留这些错误,希望不会冒犯您。您可以继续并以类似的方式修改其余模板inner,例如。color

抱歉,内容太愚蠢了,我只是写了我周围看到的一切。

相关内容