如何只取消指定框架中的导航栏或标题

如何只取消指定框架中的导航栏或标题

我的 MWE 是

\documentclass[14pt]{beamer}% http://ctan.org/pkg/beamer
\let\Tiny\tiny% https://tex.stackexchange.com/q/58087/5764
\usetheme{Berkeley}
\makeatletter
\beamer@headheight=1.5\baselineskip
\makeatother
\setbeamercolor{normal text}{bg=black!10}
\title[Title]{My title}
\subtitle{Subtitle}
\author{Author}
\institute[Institute]{My institute}
\date[Date]{My date}
\logo{\color{blue!50}\scalebox{2}{\TeX}} % you can % it
\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\section{A section}
\subsection{A subsection}
\begin{frame}
  \frametitle{Frame title}
  \framesubtitle{frame subtitle}
  Some text
\end{frame}

\begin{frame}
  Some more text
\end{frame}

\section{Another section}
\subsection{Another subsection}
\begin{frame}
  picture
\end{frame}
\end{document} 

侧边栏 I 表示包括蓝色条纹及其内容在内的所有内容。

相关问题,使用plain就可以了。但是这次我只想取消一个东西,导航栏或者标题。该如何处理?

答案1

plain这里的解决方案比使用 选项同时抑制两个元素的解决方案稍微复杂一些frame

代码:

\documentclass[14pt]{beamer}
\usetheme{Berkeley}

\let\Tiny\tiny

\makeatletter
\beamer@headheight=1.5\baselineskip
\makeatother
\setbeamercolor{normal text}{bg=black!10}

\makeatletter
\let\Oldbeamerleftsidebar\beamer@leftsidebar
\newcommand\RecoverSpace{%
  \parshape 1 \dimexpr\beamer@leftmargin-\Gm@lmargin\relax \dimexpr\linewidth-\beamer@leftmargin+\Gm@lmargin\relax
}
\newcommand\SuppressSidebar{%
  \setbeamertemplate{sidebar left}{}
  \setlength\beamer@leftsidebar{0pt}%
}
\newcommand\SuppressTitle{%
  \setbeamertemplate{headline}{%
    \usebeamercolor[bg]{logo}%
    \vrule width\beamer@sidebarwidth height \beamer@headheight%
    \hskip-\beamer@sidebarwidth%
    \hbox to \beamer@sidebarwidth{\hss\vbox to
    \beamer@headheight{\vss\hbox{\color{fg}\insertlogo}\vss}\hss}%
  }%
}
\newcommand\RecoverVSpace{%
  \vskip-\dimexpr\beamer@headheight+2.5ex\relax%
}
\makeatother

\title[Title]{My title}
\subtitle{Subtitle}
\author{Author}
\institute[Institute]{My institute}
\date[Date]{My date}
\logo{\color{blue!50}\scalebox{2}{\TeX}} % you can % it

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\section{A section}
\subsection{A subsection}
\begin{frame}
\frametitle{Frame title}
\framesubtitle{frame subtitle}
A regular frame
\end{frame}

\begingroup
\SuppressSidebar
\begin{frame}
\frametitle{Frame title}
\framesubtitle{frame subtitle}
\RecoverSpace
Some text and some more text and some more text and some more text and some more text and some more text and some more text and some more text and some more text and some more text and some more text

\RecoverSpace
Some more text
\end{frame}
\endgroup

\begin{frame}
\frametitle{Frame title}
\framesubtitle{frame subtitle}
Another regular frame
\end{frame}

\section{Another section}
\subsection{Another subsection}
\begingroup
\SuppressTitle
\begin{frame}
\RecoverVSpace
Some text and some more text and some more text and some more text and some more text and some more text and some more text and some more text and some more text and some more text and some more text
\end{frame}
\endgroup

\begin{frame}
\frametitle{Frame title}
\framesubtitle{frame subtitle}
Another regular frame
\end{frame}

\end{document}

在此处输入图片描述

备注及说明

仅抑制侧边栏涉及多项操作:

  1. 抑制侧边栏(导航栏)上的信息。

  2. 实际上是隐藏了侧边栏

  3. 重新获得侧边栏占用的空间。

也许更复杂的操作是第三个,因为侧边栏的额外间距是使用全局设置的,\setbeamersize只能在序言中使用。我使用了一些\parshape设置来定义一个\RecoverSpace命令来重新获得空间;由于\parshape只影响当前段落,\RecoverSpace因此必须将其应用于修改后的框架中的每个段落。

对于动作一和动作二,我定义了一个\SuppressSidebar命令。

一般来说,对于想要隐藏侧边栏的框架,您需要执行以下操作:

\begingroup
\SuppressSidebar
\begin{frame}
\RecoverSpace
contents
\end{frame}
\endgroup

仅隐藏标题还涉及一些操作:将headlineframetitle模板设置为空,并恢复分配给headline模板的垂直空间。这些操作是使用\SuppressTitle\RecoverVspace命令完成的。

一般来说,对于想要隐藏标题的框架,您需要执行以下操作:

\begingroup
\SuppressTitle
\begin{frame}
\RecoverVSpace
contents
\end{frame}
\endgroup

相关内容