我正在使用beaver
带有Boadilla
beamer 主题的颜色主题。
我想去掉那些蓝色的块,因为它们没有重新定义为适合我选择的颜色主题的颜色。所以我在序言中写了这些:
\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 容量超出的原因