Beamer:将块标题背景设置为与块主体背景相等

Beamer:将块标题背景设置为与块主体背景相等

我正在使用beaver带有Boadillabeamer 主题的颜色主题。

我想去掉那些蓝色的块,因为它们没有重新定义为适合我选择的颜色主题的颜色。所以我在序言中写了这些:

\definecolor{darkred}{rgb}{0.8,0,0}
\setbeamercolor{structure}{fg=darkred}

但是,这会产生粉红色,这是可以接受的,但是当我的块有标题时,粉红色就太浓了。我想要做的是关闭block title和之间的颜色差异block body,并使用block body由自动定义的颜色\setbeamercolor{structure}{fg=darkred},也在中block title

我尝试着

\setbeamercolor{block title}{use=block body,fg=darkred,bg=block body.bg}

在我的序言中,在上面引用的两个定义之后,但这导致了

! TeX capacity exceeded, sorry [grouping levels=255].

无论我在框架中放置什么块,都会出现错误。

显然,到目前为止,网上还没有人问过这个问题。如能得到任何帮助,我将不胜感激 :)

最小工作示例:

\documentclass[10pt,xcolor=dvipsnames,pdflatex]{beamer}
\usetheme{Boadilla}
\usecolortheme{beaver}
\definecolor{darkred}{rgb}{0.8,0,0}
\setbeamercolor{structure}{fg=darkred}
\begin{document}
\begin{frame}{My pink slide}
\begin{block}{Oh my god}\centering
this is so girlish.\\
Especially when\\
the block is\\
so big\\
that it\\
is close\\
to the\\
red/grey\\
frame title.
\end{block}
\vfill
\begin{block}{}
Nice, bright block!\\
I like this and would not change its bg color.
\end{block}
\end{frame}
\end{document}

答案1

为了实现目标,您必须了解 Boadilla 主题的块颜色是如何定义的。

Boadilla 使用rose颜色主题来负责定制块;它设置:

\setbeamercolor{block title}{use=structure,fg=structure.fg,bg=structure.fg!20!bg}
\setbeamercolor{block body}{parent=normal text,use=block title,bg=block title.bg!50!bg}

如您所见,块主体的背景颜色取决于块标题的背景颜色。因此,基本上,您希望在块标题中重现与块主体相同的颜色:

\setbeamercolor{block title}{fg=darkred,bg=structure.fg!20!bg!50!bg}

其中:structure.fg!20!bg是原始背景块标题颜色,并!50!bg添加以使其与背景块主体的颜色完全相同。现在,后者应该是:

\setbeamercolor{block body}{use=block title,bg=block title.bg}

就是这样。

完整示例:

\documentclass[10pt,xcolor=dvipsnames,pdflatex]{beamer}
\usetheme{Boadilla}
\usecolortheme{beaver}
\definecolor{darkred}{rgb}{0.8,0,0}
\setbeamercolor{structure}{fg=darkred}

\setbeamercolor{block title}{fg=darkred,bg=structure.fg!20!bg!50!bg}
\setbeamercolor{block body}{use=block title,bg=block title.bg}


\begin{document}
\begin{frame}{My pink slide}
\begin{block}{Oh my god}\centering
this is so girlish.\\
Especially when\\
the block is\\
so big\\
that it\\
is close\\
to the\\
red/grey\\
frame title.
\end{block}
\vfill
\begin{block}{}
Nice, bright block!\\
I like this and would not change its bg color.
\end{block}
\end{frame}
\end{document}

结果:

在此处输入图片描述

答案2

使用

\setbeamercolor{block title}{use=structure,fg=darkred,bg=structure.fg!20!bg}

你不能使用,use=block body因为block body它本身使用block title。你得到递归和 TeX 容量超出的原因

相关内容