beamer:无装饰的框架,带有自定义边距

beamer:无装饰的框架,带有自定义边距

我曾经\begin{frame}[plain]有一个没有装饰的框架。内容(内部columns环境)似乎在水平方向上仍然尊重旧边距(华沙,左侧有间隙),尽管在垂直方向上,整个空间都按应有的方式呈现。Beamer 手册说这只会plain抑制装饰,但没有提到它会改变几何形状。

有没有一种简单的方法来获得空框架,并带有一些用户定义的边距?

编辑:这是我得到的结果;第二张幻灯片上的文本没有留下。

\documentclass{beamer}
\usetheme{Berkeley}
\begin{document}
\section{foo}
\begin{frame}[t]
    Text
\end{frame}
\begin{frame}[plain,t]
    Text
\end{frame}
\end{document}

在此处输入图片描述

编辑2:

不幸的是,@MarcoDaniel 建议的解决方案无法正确恢复边距(如果没有\restoregeometry,幻灯片装饰会正确地从左侧开始,但块会像屏幕截图一样越过它)。将更改括在内\bgroup...\egroup没有帮助:

在此处输入图片描述

答案1

赏金已经发放,具体方式如下beamer

beamer使用六种水平长度:

  • \beamer@leftsidebar\beamer@rightsidebar存储侧边栏的(水平)尺寸。

  • \beamer@leftmargin\beamer@rightmargin存储侧边栏和文本之间的距离。

  • 该宏\Gm@lmargin存储\Gm@rmargin从纸张边缘到文本边缘的距离。

因此和的\beamer@leftsidebar\beamer@leftmargin恰好是\Gm@lmargin

因此,如果您希望将一些文本以适当的间距放在纸张左边缘的旁边,则需要等于的水平跳过才能 \beamer@leftsidebar到达那里。

\documentclass{beamer}
\usetheme{Berkeley}
\usepackage{lipsum}

\newlength\leftsidebar
\newlength\rightsidebar
\makeatletter
\setlength\leftsidebar{\beamer@leftsidebar}
\setlength\rightsidebar{\beamer@rightsidebar}
\makeatother

\begin{document}

\begin{frame}[t]
\lipsum[4]
\end{frame}

\hoffset=-\leftsidebar
\begin{frame}[plain,t]
\lipsum[4]
\end{frame}

\end{document}

答案2

一种方法是使用changemargin来自英国 TeX 常见问题解答列表

在此处输入图片描述

\documentclass{beamer}
\usetheme{Berkeley}

\newenvironment{changemargin}[2]{%
  \begin{list}{}{%
    \setlength{\topsep}{0pt}%
    \setlength{\leftmargin}{#1}%
    \setlength{\rightmargin}{#2}%
    \setlength{\listparindent}{\parindent}%
    \setlength{\itemindent}{\parindent}%
    \setlength{\parsep}{\parskip}%
  }%
  \item[]}{\end{list}} 

\begin{document}
\section{foo}
\begin{frame}[t]
    Text
\end{frame}

\begin{frame}[plain,t]
\begin{changemargin}{-2cm}{0cm} 
    Text
\end{changemargin}
\end{frame}
\end{document}

答案3

一个简单的解决方案是改变\hoffset

\documentclass{beamer}
\usetheme{Berkeley}
\begin{document}
\section{foo}

\begin{frame}[t]
    Text
\end{frame}

\hoffset=-.8in % no left margin

\begin{frame}[plain,t]
    Text 
\end{frame}

\hoffset=0in % restore left margin

\begin{frame}[t]
    Text 
\end{frame}

\end{document}

平均能量损失

编辑

自动确定正确\hoffset

要删除左边距(完全删除,不像在 MWE 中),您可以将其添加到序言中:

\usepackage{calc}% http://ctan.org/pkg/calc
\newlength{\noleftmargin}
\setlength{\noleftmargin}{-1in-\oddsidemargin}%

然后,在普通框架之前使用:

 \hoffset=\noleftmargin  

解释

Beamer 演示文稿的左边距总是1 inch加上长度\hoffset\oddsidemargin

在默认主题以及 Berkeley 或 Warsaw 中,您可以看到默认值为\hoffset并且0pt\oddsidemargin负值。您始终可以使用 检查此值\the\oddsidemargin

我如何才能确定正好有 1 英寸加加\hoffset\oddsidemargin使用包layout

微波辐射计

\documentclass{beamer}
\usetheme{Berkeley}
\usepackage{layout}
\begin{document}
\begin{frame}
The \texttt{\textbackslash hoffset} is now \the\hoffset\\
The \texttt{\textbackslash oddsidemargin} is now \the\oddsidemargin
\end{frame}
\begin{frame}[plain]
\vspace{-1.5cm}\hspace{1cm}\vbox{% only to move a little the scheme  
\layout
}
\end{frame}
\end{document}

因此,在第一个 MWE 中,由于默认值为\oddsidemargin( -13pt) -.18in,所以仍然大致保留 0.8 inches左边距。

因此,您可以完全删除左边距,并相应地更改其中一个或两个长度。例如,如果没有包calc并且前言中没有任何特殊内容,您也可以使用以下命令删除左边距:

\oddsidemargin=0pt
\hoffset=-1in  

但是这样你就需要恢复两个值才能返回默认值。

答案4

相关这个先前的问题

在此处输入图片描述

\documentclass{beamer}
\usetheme{default}
\setbeamersize{text margin left=1ex} % Beamer manual, section 8.3
\begin{document}
\begin{frame}[plain,t]
Here's some more content. Here's some more content. Here's some more content.
\end{frame}
\end{document}

相关内容