In the definition of beamer@frameslide
environment in beamerbaseframe.sty
, there is an empty vbox
above the frametitle
:
\ifx\beamer@frametitle\@empty%
\setbox\beamer@frametitlebox=\box\voidb@x%
\else%
\setbox\beamer@frametitlebox=\vbox{
\vbox{}%
{\parskip0pt\usebeamertemplate***{frametitle}\vskip0.25em}%
}%
\fi%
Now assume we remove \nointerlineskip
line from the template code for frametitle
, then there will be vertical space between the empty vbox
and frametitle
:
.\vbox(0.0+0.0)x0.0
.\glue(\lineskip) 1.0
.\hbox(19.136+0.0)x324.79259
The vertical space comes from \lineskip
, since by default the height of the frametitle
box is larger than \baselineskip
.
When the backgoround color of the frametitle
is empty, this extra vertical space is usually unobtrusive. But if the background color exists, and furthermore if the headline also exists, this space looks redundant:
To get rid of this extra space, we may also patch beamer@frameslide
, removing the extra vbox{}
.
\documentclass{beamer}
\usepackage{xpatch}
\usetheme{Copenhagen}
\begin{document}
\section{First Section}
\begin{frame}
\frametitle{Default frame title}
\end{frame}
\makeatletter
% remove \nointerlineskip in frametitle template
\xpatchcmd{\beamer@@tmpl@frametitle}{\nointerlineskip}{\relax}{}{}
\makeatother
\begin{frame}
\frametitle{Frame title without nointerlineskip}
\end{frame}
\makeatletter
% undo the above patch
%\xpatchcmd{\beamer@@tmpl@frametitle}{\relax}{\nointerlineskip}{}{}
% patch in another way: modify beamer@frameslide environment
\xpatchcmd{\endbeamer@frameslide}{\vbox{}}{}{}{}
\makeatother
\begin{frame}
\frametitle{Frame title without empty vbox}
\end{frame}
\end{document}
As stated in the comments, the adding of \useoutertheme{smoothbars}
tends to be the main reason of the problem, so commenting the lines gives for the code:
\documentclass[handout]{beamer}
%\usepackage{color} beamer loads xcolor anyway
\usecolortheme{rose}
\useoutertheme{infolines} % header and footer
\setbeamertemplate{headline}{} % no header line
\begin{document}
\begin{frame}
\frametitle{slide 1}
first
\end{frame}
{
\setbeamercolor{normal text}{bg=yellow!20}
\begin{frame}
\frametitle{slide 2}
second
\end{frame}
}
\end{document}
A working example with the output:
That basically solves the issue.
Best Answer
The colour is defined as
black!2
(which means 2% of black), this means RGB is roughly250/250/250
and converted to HEX#FAFAFA
Personally I would simply create the figures with transparent background, this way colour discrepancies between different applications with different colour profiles cannot occur.