I have noticed that when I have "itemize" environments defined within blocks in beamer, that they introduce more vertical spacing between the top and the bottom of the blocks, than vertical text. Since I have a slide with some text filled blocks and directly after, a slide with only "itemize" holding blocks, I would like the spacing between the itemized text and the block to be the same as for regular text.
On this question I have read about "squeeze" option, but it doesn't seem to work…
Additional info:
The problem is in the additional vertical space that is included by the "\itemize" environment. I have found this answer on how to remove vertical spacing from the itemize list, and I am using this approach. However, it is a brute force approach. What I would like to know if it is possible to have the same vertical space between the end of the itemize list and the bottom of a block, as the one set between the normal text and the bottom of the block.
MWE:
\documentclass[10pt]{beamer}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{exscale}
\usepackage{epsfig}
\usepackage{fancybox}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{overpic}
\usepackage{multimedia}
\usetheme{default}
\usecolortheme{crane}
% -- Modifications that enable the footline and set black color for the fonts
\setbeamertemplate{footline}{%
\begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex,right, rightskip=1mm, leftskip=1mm]{titlelike}
\textcolor{black}{
%\inserttitle\hfill\insertauthor\hfill\insertframenumber%
Something\hfill Something Else \hfill\insertframenumber%
}
\end{beamercolorbox}
}
\setbeamertemplate{itemize items}[square]
\setbeamercolor{item}{fg=black}
\setbeamercolor{frametitle}{fg=black}
\setbeamercolor{block title}{fg=black}
\setbeamercolor{title}{fg=black}
\setbeamercolor{block body}{bg=white}
% END Modifications
\begin{document}
\begin{frame}
\frametitle{text blocks}
\begin{block}{block}
block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block blockk
\end{block}{block}
\begin{block}
block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block
\end{block}
\begin{block}{block}
block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block block
\end{block}
\end{frame}
\begin{frame}
\frametitle{itemize blocks}
\begin{block}{item}
\begin{itemize}
\item item
\item item
\item item
\end{itemize}
\end{block}
\begin{block}{item}
\begin{itemize}
\item item
\item item
\item item
\end{itemize}
\end{block}
\begin{block}{item}
\begin{itemize}
\item item
\item item
\item item
\end{itemize}
\end{block}
\end{frame}
\end{document}
Best Answer
There are two things going on in this situation. For those who know about LaTeX's list parameters, there is a
\topsep
being added before the itemize list. The other is that this item is starting in vertical mode, so a\partopsep
is also being added.We thus need to do two things in this situation: (1) set
\topsep
to zero for the list, via a redefinition\@listi
, and (2) clear\partopsep
.The best way to do this is to add this to
block begin
template. Here is an example, based on the essentials of your code.I have placed the blocks side-by-side and added the
\vadjust{\hrule}
for illustration purposes. The values for\@listi
are based on beamers defaults which are\partopsep
has default valueIf you want the individual lines to match up, then you should also put
\itemsep
equal to0pt
in the above code.Beaware that if the titles of the two blocks have different heights/depths then theh body will move accordingly and you will loose your alignment again. You can cover yourself a little by adding an appropriate strut to your block titles.
Note that the above code also kills
\topsep
for subsquent uses ofitemize
within the same block. If this is a problem, you might try to just adjust\partopsep
to cancel out\topsep
and ensure that your subsequent lists in the block do not start in vertical mode.