当显示注释时,为投影仪幻灯片指定背景颜色和背景图像有点棘手。我尝试了三种方法,但没有一种能完美地工作(这个想法是为了避免全屏图像上方和下方出现白色边框)。
第一个解决方案的灵感来自于此回答:
\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\begin{document}
{
\setbeamercolor{background canvas}{bg=red}
\setbeamertemplate{background canvas}{
\parbox[c][\paperheight][c]{\paperwidth}{
\centering\includegraphics[width=\paperwidth]{name}
}
}
\begin{frame}[plain]
\end{frame}
}
\end{document}
但是设置背景颜色没有效果。我也尝试将图形包含在框架内,但图像不再居中:
\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\begin{document}
{
\setbeamercolor{background canvas}{bg=red}
\begin{frame}[plain]
\parbox[c][\paperheight][c]{\paperwidth}{
\centering\includegraphics[width=\paperwidth]{name}
}
\end{frame}
}
\end{document}
我的最后一次测试基于此回答:
\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\usepackage{tikz}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen=right}\nofiles
\begin{document}
\begin{frame}[plain]
\end{frame}
{
\setbeamercolor{background canvas}{bg=red}
\begin{frame}[plain]
\begin{tikzpicture}[remember picture,overlay]
\node[at=(current page.center)] {
\includegraphics[width=\paperwidth]{name}
};
\end{tikzpicture}
\note{Note}
\end{frame}
}
\end{document}
但显示笔记时图像定位不正确(即使使用nofiles 技巧)。
每个解决方案都有不同的问题。有什么可行的解决方案吗?
答案1
默认值background canvas
定义为
\defbeamertemplate*{background canvas}{default}
{%
\ifbeamercolorempty[bg]{background canvas}{}{\color{bg}\vrule width\paperwidth height\paperheight}%
}
因此它只是绘制一个用颜色填充整个框架的框。这就是为什么如果覆盖了background canvas
默认颜色,更改背景画布颜色将不再有任何效果。background canvas
但是还有另一个简单称为的背景层,background
它绘制在 之上background canvas
。更改\setbeamertemplate{background canvas}
为\setbeamertemplate{background}
第一个解决方案后即可。
\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\begin{document}
{
\setbeamercolor{background canvas}{bg=red}
\setbeamertemplate{background}{%
\parbox[c][\paperheight][c]{\paperwidth}{%
\centering\includegraphics[width=\paperwidth]{name}
}
}
\begin{frame}[plain]
\end{frame}
}
\end{document}
第二种解决方案不起作用,因为每个投影仪框架都有一个text margin left
(和text margin right
),这会将图像向右移动,因为其宽度\paperwidth
不再适合它。要解决此问题,可以使用\hspace
负长度将其移回。在这种情况下,它是\hspace*{-1cm}
。
\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\begin{document}
{
\setbeamercolor{background canvas}{bg=red}
\begin{frame}[plain]
\hspace*{-1cm}%
\parbox[c][\paperheight][c]{\paperwidth}{
\centering\includegraphics[width=\paperwidth]{name}
}
\end{frame}
}
\end{document}