似乎parskip
不会影响也讨论过的列这里。但是 Stefan 的解决方案似乎只在块环境中有效(我不想到处都添加块环境)。所以我想尝试用 修补列环境etoolbox
。在这方面,我尝试将以下命令添加到序言中,但没有效果:
\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}
有没有办法在每一列中设置一个 parskip 以使其像 MWE 的最后一帧一样工作?
答案1
将命令添加到columns
环境中不起作用,因为 beamer 不会将文本直接插入到列中,而是先创建minipages
文本所在的位置。但您可以将命令添加\parskip
到 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}