我有一个自定义样式的 Beamer 演示文稿,它会在每张幻灯片的底部创建一个红色条。当我更改几何图形,然后使用 restoregeometry 将其恢复时,红色条现在会向右移动。目的只是让图片占满整个宽度。
\documentclass{beamer}
\mode<presentation>
{
\usetheme{myslides}
}
\begin{document}
\begin{frame}[fragile]
\frametitle{}
\begin{center}
\huge Introduction?
\end{center}
\end{frame}
\newgeometry{margin=0pt}
\begin{frame}[fragile, plain]
\frametitle{}
\includegraphics[width=\paperwidth, width=\paperwidth]{picture}
\end{frame}
\restoregeometry
\begin{frame}[fragile]
\frametitle{}
\begin{center}
\huge Next slide?
\end{center}
\end{frame}
\end{document}
我怎样才能恢复到执行 newgeometry 命令之前的状态?
我的问题似乎与beamer:无装饰的框架,带有自定义边距以及在其中一个答案中存在与 \restoregeometry 类似的问题。
答案1
如果无法访问您的 Beamer 主题或图像,则很难进行测试。但是,如果您知道边距的大小,则以下(粗糙但简单)解决方案可能会有效。
\vspace*{-6.5mm}
\begin{frame}[plain]
\hspace*{-19mm}
\includegraphics[width=\paperwidth]{picture}
\end{frame}
(无需任何几何重置命令即可使用)
或者无需手动调整边距的大小:
\documentclass{beamer}
\makeatletter
\newlength\beamerleftmargin
\setlength\beamerleftmargin{\Gm@lmargin}
\makeatother
\begin{document}
\begin{frame}[plain]
\hspace*{-\beamerleftmargin}%
\includegraphics[width=\paperwidth]{example-image}
\end{frame}
\end{document}
答案2
plain
带有图像的框架可以background
局部应用,而无需更改和恢复几何变化
\documentclass{beamer}
\mode<presentation>
{
\usetheme{Berkeley} %<-- We don't have `myslides` theme
}
\begin{document}
\begin{frame}[fragile]
\frametitle{}
\begin{center}
\huge Introduction?
\end{center}
\end{frame}
{%<--- Start local changes
\setbeamertemplate{navigation symbols}{}
\usebackgroundtemplate{\includegraphics[width=\paperwidth]{example-image}}
\begin{frame}[plain]
\end{frame}
}%<---- Finish local changes
\begin{frame}[fragile]
\frametitle{}
\begin{center}
\huge Next slide?
\end{center}
\end{frame}
\end{document}
答案3
一个非常简单的解决方案,使用tikz
:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}[plain]
\begin{tikzpicture}[remember picture,overlay]
\node[at=(current page.center)] {
\includegraphics[width=\paperwidth, height=\paperheight]{example-image}
};
\end{tikzpicture}
\end{frame}
\end{document}
[必须编译两次才能获得正确的坐标]
答案4
编辑:我应该在发布之前对此进行更详细的测试。似乎以下框架的几何形状/布局已被修改...因此请注意可能会出现一些问题。
在查看了围绕投影仪在普通框架中仍然有左边距的问题的不同问题的不同答案和评论之后,让我发布我刚刚找到的解决方案,以获得真正空的纯色框架,无边距等,以简单的自动化通用方式实现。在这样的框架中,您可以随心所欲地放置图形,例如,放置一个完全占据整个框架宽度的图形,或者将其居中,左右空间完全相同,而无需使用水平偏移或其他方式。
我遇到的问题是,\setbeamersize{text margin left=0pt}
或者类似的东西不能以本地方式使用,它必须在序言中,不能在正文中,也不能在命令或环境定义中。
解决方案是使用\newgeometry
,就像 OP 问题中所使用的那样,来自geometry
包,由 加载beamer
,并按照上述评论中的建议在本地限制它。而且它不需要花哨的东西,不需要临时长度等。
似乎还没有像我即将发布的那样发布,我认为它可能会引起广大观众的兴趣(我花了很长时间才找到它)。而我所知道的唯一不需要临时调整的其他答案是这个,使用更少的beamer
黑客知识。
一个孤立框架的解决方案:
{\newgeometry{margin=0pt} %locally set margins to zero
\setbeamertemplate{background canvas}[default] %not too sure, but may be needed if you have a background image
\begin{frame}[plain]
%frame content that can really fill the whole page
\end{frame}
}
如果您定期需要此功能,请将其定义为新环境,例如emptyframe
在序言中:
\newenvironment{emptyframe}
{
% not too sure, but may be needed if you have a background image
% that should not appear on this kind of frame:
\setbeamertemplate{background canvas}[default]
% locally set margins to zero: (notice the use of \bgroup ... \egroup
% to limit the scope of the geometry restriction
% where curly brackets {} aren't possible)
\bgroup \newgeometry{margin=0cm}
\begin{frame}[plain]
}
{
\end{frame}
\egroup
}
之后,在文档主体中,使用它替代frame
环境:
\begin{emptyframe}
% frame content that can really fill the whole page
\end{emptyframe}
注意 1:您可能还需要关闭导航符号。为此,请\setbeamertemplate{navigation symbols}{}
在 旁边添加\setbeamertemplate{background canvas}[default]
。
注2:此解决方案不仅限于获取空帧,它(我认为,没有测试)可定制到限制\newgeometry
。