仅用于正文的行距

仅用于正文的行距

在 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}序言中的注释。

相关内容