Beamer:部分框架上的图片透明度取决于部分编号

Beamer:部分框架上的图片透明度取决于部分编号

我是 Beamer 的新用户。以下代码仅用于解释我打算做什么:在“sectionpage”上放置一个具有透明度的图片框架,透明度级别是 sectionnumber 的函数。在下面的示例中,我希望透明度级别(而不是 0.4)等于当前节号的 0.125 倍。(第一节为 0.125,第二节为 0.25,依此类推)。

\documentclass{beamer}
\usepackage{default}
\usepackage{graphicx}
\usetheme[hideothersubsections]{Goettingen}
 \definecolor{fondtitre}{rgb}{0.83,0.03,0.03}  % dark red
 \setbeamertemplate{background canvas}[vertical shading]%
                   [top=fondtitre!05,bottom=fondtitre!60]
\setbeamercovered{dynamic}
\usepackage{transparent}
\usepackage{calc}

\newcounter{totototo}
\AtBeginSection[] %
{
\begin{frame}
  \vfill
  \centering
  \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
    \usebeamerfont{title}\insertsectionhead\par%
     Section  \insertsectionnumber\par%
    {\transparent{0.4}\includegraphics[height=2cm]{picture}}
    {\transparent{\thetotototo}\includegraphics[height=2cm]{picture}}%
    {\transparent{\thesection}\includegraphics[height=2cm]{picture}}

  \end{beamercolorbox}
  \vfill
  \end{frame}  
    \stepcounter{totototo}
      }


\begin{document}
\section{Firstsection}
\begin{frame}{}
\end{frame}
\section{Secondsection}
\begin{frame}{}
\end{frame}
\section{Thirdsection}
\begin{frame}{}
\end{frame}
\end{document}

a)这需要将计数器与实数相乘。

b) 如果透明度值的范围是 0-100,则可能可以使用另一个设置为 的计数器12.5*\thesection。截断误差微不足道。由于范围是 0-1,我们不能使用计数器来存储值。totototo 测试表明,当计数器值为 0 时,图像完全透明,当计数器值为上限时,图像完全可见。

c)是否可以通过修改模板( \defbeamertemplate*{section page}{default}[1][] )\frame{\sectionpage}在其中执行)来实现AtBegin...

有啥帮助吗?谢谢

答案1

你也可以transparent使用TiKZ不透明度。以下完整示例展示了如何使用它,假设每幅图像都会显示不同的不透明度。

\documentclass{beamer}
%\usepackage{default}
\usepackage{graphicx}
\usetheme[hideothersubsections]{Goettingen}
 \definecolor{fondtitre}{rgb}{0.83,0.03,0.03}  % dark red
 \setbeamertemplate{background canvas}[vertical shading]%
                   [top=fondtitre!05,bottom=fondtitre!60]
\setbeamercovered{dynamic}
\usepackage{tikz}
\usetikzlibrary{positioning}

\newcounter{totototo}
\setcounter{totototo}{1}
\AtBeginSection[] %
{
\begin{frame}
  \vfill
  \centering
  \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
    \usebeamerfont{title}\insertsectionhead\par%
     Section  \insertsectionnumber\par%
    {\begin{tikzpicture}
    \node[inner sep=0pt, opacity=0.2*\thesection](a){\includegraphics[height=2cm]{example-image}};%
    \node[inner sep=0pt, opacity=0.3*\thetotototo, right=0pt of a](b){\includegraphics[height=2cm]{example-image-a}};               
    \node[inner sep=0pt, opacity=0.25*\thesection, right=0pt of b](c){\includegraphics[height=2cm]{example-image-b}};
    \end{tikzpicture}}
  \end{beamercolorbox}
  \vfill
  \end{frame}  
    \stepcounter{totototo}
      }


\begin{document}
\section{Firstsection}
\begin{frame}{}
\end{frame}
\section{Secondsection}
\begin{frame}{}
\end{frame}
\section{Thirdsection}
\begin{frame}{}
\end{frame}
\end{document}

在此处输入图片描述

如果所有三幅图像使用相同的不透明度,则代码可以简化为:

    {\begin{tikzpicture}
    \node[inner sep=0pt, opacity=0.2*\thesection]{\includegraphics[height=2cm]{example-image}\includegraphics[height=2cm]{example-image-a}\includegraphics[height=2cm]{example-image-b}};
    \end{tikzpicture}}

并且positioning不需要图书馆。

相关内容