Why is the spacing in this itemization so bad and why can it be fixed by adding a percentage sign
The definition of itemize in beamer is buggy. The problem is that is sets a color before the list, and color commands inserts whatsits and this has the effect that the space suddenly matters. beamer should at least add an \unskip before the color:
\documentclass{beamer}
\makeatletter
\renewcommand{\itemize}[1][]{%
\ifhmode\unskip\fi %<<< or \unskip \par
\ifblank{#1}{}{\def\beamer@defaultospec{#1}}%
\ifnum \@itemdepth >2\relax\@toodeep\else
\advance\@itemdepth\@ne
\beamer@computepref\@itemdepth% sets \beameritemnestingprefix
\usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
\usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}% problem
\usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}%
\list
{\usebeamertemplate{itemize \beameritemnestingprefix item}}
{\def\makelabel##1{%
{%
\hss\llap{{%
\usebeamerfont*{itemize \beameritemnestingprefix item}%
\usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}%
}%
}%
}
\fi%
\beamer@cramped%
\raggedright%
\beamer@firstlineitemizeunskip%
}
\begin{document}
\begin{frame}
\begin{minipage}{0.5\textwidth}
\begin{itemize}
\item A. (requires three sub-items)
\begin{itemize}
\item A.1
\item A.2
\item A.3
\end{itemize}
\item B
\end{itemize}
\end{minipage}
\end{frame}
\end{document}
Thanks, I found another reason for not relying on indentation but rather on spacing out the input. ;-)
Yes, itemize
in beamer
has a small bug, but it becomes irrelevant if you type in like the left column below.
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{itemize}
\item A. (requires three sub-items)
\begin{itemize}
\item A.1
\item A.2
\item A.3
\end{itemize}
\item B
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\begin{itemize}
\item A. (requires three sub-items)
\begin{itemize}
\item A.1
\item A.2
\item A.3
\end{itemize}
\item B
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\end{document}