Beamer 块标题背景图像?

Beamer 块标题背景图像?

使用以下命令我可以更改块标题的背景颜色:

\setbeamercolor{block title}{bg=blue!20,fg=black}

我怎样才能为块标题设置背景图像?(我正在考虑平铺图像以创建更美观的外观)

答案1

完整代码

\documentclass{beamer}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usepackage{tikz}
\usetheme{Singapore}


\newenvironment<>{myblock}[1]{%
  \begin{actionenv}#2%
      \def\insertblocktitle{
        \vskip-.15cm\hspace*{-.38cm}
          \tikz\node[text width=.98\textwidth+.45cm,inner sep=.18cm,font=\bfseries,text=black,path picture={
            \node at (path picture bounding box){\includegraphics[width=\textwidth]{hearts}};
          }]{#1};
          \vskip-.15cm
      }
      \mode<presentation>{%
       \setbeamercolor{block title}{fg=black,bg=gray!20}
       \setbeamercolor{block body}{fg=black,bg=white}
       \setbeamercolor{itemize item}{fg=orange!20!black}
       \setbeamertemplate{itemize item}[triangle]
     }%
      \usebeamertemplate{block begin}}
    {\par\usebeamertemplate{block end}\end{actionenv}}

\newtcolorbox{mytblock}[1]{
    enhanced,
    title=#1,
    title style tile={width=\textwidth}{hearts},
    arc=0pt,
    boxrule=0pt,
    colback=white,
    fonttitle=\bfseries,
    coltitle=black,
    lefttitle=-1pt,
    toptitle=3pt,
    bottomtitle=3pt,
    leftupper=1pt,
}

\begin{document}
\begin{frame}
    \begin{myblock}{This is a title}
        test
    \end{myblock}

    \begin{mytblock}{This is a title}
        test
    \end{mytblock}
\end{frame}
\end{document}

在此处输入图片描述

上面有两种方法:

  1. 破解块模板(myblock
  2. 使用 tcolorbox 包创建一个看起来像 beamer 块的块 ( mytblock)

tcolorbox软件包已经内置了一项功能title style tile,可让您插入任何背景图片并为您平铺。请注意,在 MWE 中,我使用了一张大图片(如 600x480),该图片本身已经平铺,因此我有:

title style tile={width=\textwidth}{hearts}

如果你有一张非平铺的图片,第一个变量将指定单张图片的宽度,所以你会得到类似

title style tile={width=1cm}{<non-tiled-picture>}

由于您使用的是新加坡主题,因此可以通过破解 beamer 块模板来实现类似的结果。如您所见,代码更复杂(有点破解),在这种情况下,您需要使用像我这样的已经平铺的图片(除非您想让事情变得更加复杂)。

你可以找到爱心的图片这里

答案2

您可以将 tcolorbox 内部主题作为起点,然后向标题添加背景图像,如下所示:

\documentclass{beamer}
\usetheme{Warsaw}

\useinnertheme[shaded=false]{tcolorbox}

\makeatletter
\tcbset{
  title style={fill overzoom image={example-grid-100x100bp}}
}
\makeatother

\begin{document}

\begin{frame}

\begin{block}{title}
content...
\end{block}

\end{frame}
\end{document}

在此处输入图片描述

相关内容