# Beamer: set global parksip for all columns

It seems that parskip does not affect columns which was also discussed here. However, Stefan's solution seems to work only in block environments (which I do not want to add everywhere). So I thought that I try to patch the column environment with etoolbox. In this regard, I tried to add the following commands to the preamble without effect:

\documentclass{beamer}
\usepackage{etoolbox}
\setlength{\parskip}{1cm}
%\BeforeBeginEnvironment{column}{\setlength{\parskip}{2cm}}
\AtBeginEnvironment{column}{\setlength{\parskip}{2cm}}
\begin{document}
\begin{frame}{Title}
foo

bar
\end{frame}

\begin{frame}{Title}
\begin{columns}
\begin{column}{\textwidth}
foo

bar
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Title}
\begin{columns}
\begin{column}{\textwidth}\setlength{\parskip}{1cm}
foo

bar
\end{column}
\end{columns}
\end{frame}
\end{document}


Is there any way to set a parskip in every column to make it work like in the last frame of the MWE?

Adding the command to the columns environment does not work, as beamer does not insert the text directly into the columns, but first creates minipages into which the text goes. But you can add the \parskip to the minipages:

\documentclass{beamer}
\usepackage{etoolbox}
\setlength{\parskip}{1cm}

\makeatletter
\newcommand{\@minipagerestore}{\setlength{\parskip}{1cm}}
\makeatother

\begin{document}
\begin{frame}{Title}
foo

bar
\end{frame}

\begin{frame}{Title}
\begin{columns}
\begin{column}{\textwidth}
foo

bar
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Title}
\begin{columns}
\begin{column}{\textwidth}\setlength{\parskip}{1cm}%
foo

bar
\end{column}
\end{columns}
\end{frame}
\end{document}