Latex beamer 块阴影褪色为白色而不是背景颜色

Latex beamer 块阴影褪色为白色而不是背景颜色

我使用 修改了背景颜色\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现在默认支持透明阴影:

在此处输入图片描述

相关内容