如何使汉诺威主题(beamer)的标题框居中?

如何使汉诺威主题(beamer)的标题框居中?

我在 Beamer 中使用汉诺威主题,并使用纯标题框

\documentclass{beamer}
\mode<presentation>
{
  \usetheme{Hannover}%{CambridgeUS}%
  \setbeamercovered{transparent}
}

\title[Title]{Centering Title frame}
\author[Gopi]{Gopi}

\begin{document}
\begin{frame}[plain]
    \titlepage
    \begin{figure}
    \begin{center}
        \includegraphics[scale=0.3]{logo}
    \end{center}
    \end{figure}
\end{frame}
\end{document}

框架标题图片未居中 不带“plain”的框架标题图片未居中

因为第一张图片(白色底色)上不明显,所以我添加了相同的图片,但没有在框架上选择“纯色”。我的观点是,我希望使用纯色选项,框架会忘记汉诺威主题,并将整个框架置于中心。

我尝试在框架前放置一个 \hspace{-xpt},但似乎不起作用。

答案1

您可以\hoffset将框架的内容向左移动,移动量为侧边栏宽度的一半:

\begingroup
\makeatletter
\setlength{\hoffset}{-.5\beamer@sidebarwidth}
\makeatother
\begin{frame}[plain]
    \titlepage
    ...
\end{frame}
\endgroup

我使用\begingroup\endgroup将更改的效果限制到\hoffset仅限于此框架。\makeatletter\makeatletter对于访问内部宏是必要的\beamer@sidebarwidth

答案2

如果标题页的背景不是白色(例如,如果用\filltikz 填充),那么 Stefan 的解决方案将无法按预期工作:填充区域将向左移动,露出白色背景。我的解决方案是将标题页放入minibox,然后将其移动侧边栏宽度的一半:

\renewcommand\makebeamertitle{
  {
    \begin{frame}[plain]
      \makeatletter
      \hspace*{-0.5\beamer@sidebarwidth}
      \begin{minipage}[c][\textheight]{\textwidth}
        \maketitle
      \end{minipage}
      \makeatother
    \end{frame}
  }
}

答案3

另一个解决方案是简单地定义自定义标题页:

在序言中:

\defbeamertemplate*{title page}{customized}[1][]
{
  \usebeamerfont{title}\inserttitle\par
  \usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par
  \bigskip
  \usebeamerfont{author}\insertauthor\par
  \usebeamerfont{institute}\insertinstitute\par
  \usebeamerfont{date}\insertdate\par
  \usebeamercolor[fg]{titlegraphic}\inserttitlegraphic
}

相关内容