我曾经\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}