在 LaTeX beamer 文档中,是否有办法只更改正文正文的行距 - 即和之间的所有内容\begin{frame}
?\end{frame}
特别是如果\linespread
在序言中使用和其变体,多行标题中的行距也会增加,或者如果相应的 beamertheme 在其布局中使用换行符。我也尝试\linespread
在框架内使用,但无济于事。
答案1
如果每个标题都有标题frame
,你的通用结构可能类似于
\begin{frame}
\frametitle{<title>}
% <frame content>
\end{frame}
因此,您\frametitle
可以使用该命令作为钩子,为 的其余部分启动不同的行距frame
。并且,不要使用传统的\linespread{<factor>}
修改间距,而是使用\setstretch{<factor>}
而是使用setspace
包裹为此,请在您的序言中包括以下内容:
\usepackage{setspace}% http://ctan.org/pkg/setspace
\let\oldframetitle\frametitle% Store \frametitle in \oldframetitle
\renewcommand{\frametitle}[1]{%
\oldframetitle{#1}\setstretch{2}}
这将排版常规\frametitle
,并在其后立即调用\setstretch{2}
增加(“加倍”)组其余部分的行距。由于环境frame
提供了必要的范围边界,\setstretch
因此仅在 之前有效\end{frame}
。这允许仅frame
将内容排版在不同的行距下,而不会影响此拉伸因子下的标题。此外,通过重新定义现有命令的自然自动化形式允许清晰且可传输的代码。
这是一个最简单的例子:
\documentclass{beamer}% http://ctan.org/pkg/beamer
\useoutertheme{infolines}
\usetheme{Warsaw}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{setspace}% http://ctan.org/pkg/setspace
\let\oldframetitle\frametitle% Store old \frametitle in \oldframetitle
\renewcommand{\frametitle}[1]{% Redefine \frametitle
\oldframetitle{#1}\setstretch{2}}
%\setstretch{2} <--- uncomment to see the global effect of \setstretch{2}
\title{Random title}
\subtitle{Random subtitle}
\author{Random Randofsky}
\institute{Random institute, Random City 1000, Randomia}
\date{\today}
\begin{document}
\maketitle
\begin{frame}
\tableofcontents
\end{frame}
\section{Random section 1}
\begin{frame}
\frametitle{This frame title is extremely long and spans at least two lines}
\begin{itemize}
\item Random stuff Random stuff
\item \itshape{more random stuff}
\item Random stuff...
\end{itemize}
\end{frame}
\section{Random section 2}
\begin{frame}
\frametitle{Here is another long frame title - this time it spans more than
just two lines of the frame; it actually spans three lines}
\lipsum[4]
\end{frame}
\section{Random section 3}
\begin{frame}
This frame has no title. So, the contents is not affected by line spacing changes
\begin{itemize}
\item Random stuff Random stuff
\item \itshape{more random stuff}
\item Random stuff...
\end{itemize}
\end{frame}
\section{Random section 4}
\begin{frame}
\frametitle{About this frame}
\begin{itemize}
\item Random stuff Random stuff
\item \itshape{more random stuff}
\item Random stuff...
\end{itemize}
\end{frame}
\end{document}
当然,这取决于你的结构是否frame
符合开头所建议的结构。因此,frame
没有标题将没有任何行距更改。由于您在问题中没有提到这一点,因此我认为这不是问题。但是,只要有替代/合适的钩子,此类修改总是可能的。
这lipsum
包裹仅用于在幻灯片 4 上提供填充文本。
\setspace{2}
要查看标题的整体效果frame
,请取消\setspace{2}
序言中的注释。