我使用 修改了背景颜色\setbeamercolor{background canvas}{bg=blue!25}
。但是,块的阴影从黑色褪色为白色,而不是背景颜色(导致在背景颜色接管之前阴影周围出现微小的白色条纹),请参阅下面的代码。
我找到了以下修复 如何为投影仪中的块添加透明阴影?
(阴影周围的白线也清晰可见)
但是,修改后的版本beamerbaseboxes.sty
似乎已经过时了,因为它改变了整个演示文稿的外观,而不仅仅是阴影。由于我不需要透明阴影,而只需要淡入背景颜色的阴影,我想问如何在不破解文件的情况下实现这一点beamerbaseboxes.sty
。
\documentclass{beamer}
\usetheme{Madrid}
\setbeamercolor{background canvas}{bg=blue!25}
\begin{document}
\frame{
\begin{block}{test block}
block block
\end{block}
}
\end{document}
答案1
以下代码将给出预期的输出:
\documentclass{beamer}
\usetheme{Madrid}
\usepackage[T1]{fontenc}
\setbeamercolor{background canvas}{bg=blue!25}
\makeatletter
\pgfdeclareverticalshading[black,bg]{bmb@shadow}{200cm}{%
color(0bp)=(blue!25); color(4bp)=(black!50!bg); color(8bp)=(black!50!bg)}
\pgfdeclareradialshading[black,bg]{bmb@shadowball}{\pgfpointorigin}{%
color(0bp)=(black!50!bg); color(4bp)=(blue!25)}
\pgfdeclareradialshading[black,bg]{bmb@shadowballlarge}{\pgfpointorigin}{%
color(0bp)=(black!50!bg); color(4bp)=(black!50!bg); color(8bp)=(blue!25)}
%
\makeatother
\begin{document}
\frame{\frametitle{l}
\begin{block}{in a block}
default font
\end{block}
}
\end{document}
请注意:这当然是一种黑客行为,beamerbasebox
因为原始定义被覆盖了。我不知道是否可能有任何副作用。(这些阴影可以在其他任何地方使用……)。当然,我不知道为什么它不自动选择背景颜色。
答案2
自版本v3.60起,beamer现在默认支持透明阴影: