我想更改法兰克福风格的演示文稿中各种元素的颜色。我找到了如何在框架标题和轮廓功能区中更改背景和文本颜色的方法,但在框架标题上方和下方出现了两条淡淡的水平绿线。有什么办法可以去除它们吗?
\documentclass[xcolor=dvipsnames]{beamer}
\usetheme{Frankfurt}
\beamertemplatenavigationsymbolsempty
\setbeamercolor{section in head/foot}{fg=OliveGreen!40!Sepia, bg=OliveGreen!70!YellowGreen}
\setbeamercolor{structure}{fg=LimeGreen, bg = LimeGreen}
\setbeamercolor{alerted text}{fg=LimeGreen}
\setbeamercolor{title}{fg=Sepia, bg = LimeGreen!60!GreenYellow}
\setbeamercolor{frametitle}{fg=OliveGreen!60!Sepia, bg = LimeGreen!60!GreenYellow}
\title{Title}
\author{Me}
\date{Today}
\begin{document}
\section[My first section]{Section 1}
\begin{frame}
\frametitle{Frame title}
Some text
\end{frame}
\end{document}
得出(红色箭头手动添加):
答案1
这个问题和不同的颜色模型有关。这边有个问题详细解释了这个问题,但不幸的是我现在找不到它。
简而言之:一种解决方法是使用在RGB
混合中定义的颜色。
\documentclass[xcolor=dvipsnames]{beamer}
\usetheme{Frankfurt}
\beamertemplatenavigationsymbolsempty
\setbeamercolor{section in head/foot}{fg=OliveGreen!40!Sepia, bg=OliveGreen!70!YellowGreen}
\setbeamercolor{structure}{fg=LimeGreen, bg = LimeGreen}
\setbeamercolor{alerted text}{fg=LimeGreen}
\setbeamercolor{title}{fg=Sepia, bg = LimeGreen!60!GreenYellow}
\setbeamercolor{frametitle}{fg=OliveGreen!60!Sepia, bg = LimeGreen!60!GreenYellow}
\definecolor{mygreen}{RGB}{163,216,56}
\AtBeginDocument{
\pgfdeclareverticalshading{beamer@aboveframetitle}{\the\paperwidth}{%
color(0ex)=(mygreen);%
color(1ex)=(mygreen);%
color(2ex)=(section in head/foot.bg)
}
\pgfdeclareverticalshading{beamer@belowframetitle}{\the\paperwidth}{%
color(0ex)=(bg);%
color(1ex)=(mygreen)
}
}
\title{Title}
\author{Me}
\date{Today}
\begin{document}
\section[My first section]{Section 1}
\begin{frame}
\frametitle{Frame title}
Some text
\end{frame}
\end{document}
或者您可以选择\selectcolormodel{RGB}
,但您可能需要调整颜色选择才能获得与上述相同的结果。
\documentclass[xcolor=dvipsnames]{beamer}
\usetheme{Frankfurt}
\selectcolormodel{RGB}
\beamertemplatenavigationsymbolsempty
\setbeamercolor{section in head/foot}{fg=OliveGreen!40!Sepia, bg=OliveGreen!70!YellowGreen}
\setbeamercolor{structure}{fg=LimeGreen, bg = LimeGreen}
\setbeamercolor{alerted text}{fg=LimeGreen}
\setbeamercolor{title}{fg=Sepia, bg = LimeGreen!60!GreenYellow}
\setbeamercolor{frametitle}{fg=OliveGreen!60!Sepia, bg = LimeGreen!60!GreenYellow}
\title{Title}
\author{Me}
\date{Today}
\begin{document}
\section[My first section]{Section 1}
\begin{frame}
\frametitle{Frame title}
Some text
\end{frame}
\end{document}
答案2
更新
tikz
自 3.1.3 版起,现在支持开箱即用的 CMYK 阴影。您仍需要将颜色模型设置为 CMYK:
\RequirePackage[cmyk,dvipsnames]{xcolor}
\documentclass{beamer}
现在可以使用新程序包为该问题提供新的解决方案,pgf-cmykshadings
该程序包支持 CMYK 中的阴影pgf
。
根本问题是:dvipsnames
来自的颜色xcolor
都是在 CMYK 颜色空间中定义的。beamer
然后pgf
使用这些颜色创建阴影。但pgf
不支持 CMYK 中的阴影,只支持 RGB 中的阴影。因此阴影会转换为 RGB,而纯色仍为 CMYK,因此会出现颜色不匹配的情况。
这个问题的另一个答案已经演示了如何在任何地方使用 RGB 颜色,但是您可以继续使用dvipsnames
CMYK 颜色空间中的颜色,并使用该pgf-cmykshadings
包使用 CMYK 阴影。
将 MWE 示例的开头更改为:
\RequirePackage[cmyk,dvipsnames]{xcolor}
\RequirePackage{pgf-cmykshadings}
\documentclass{beamer}
xcolor
必须先使用该选项加载dvipsnames
以避免选项冲突。我还使用该cmyk
选项只是为了确保所有颜色都为 CMYK。并且pgf-cmykshadings
需要先加载beamer
以确保阴影设置在 CMYK 颜色空间中。
现在,您将在任何地方获得 CMYK 输出(由颜色指定dvipsnames
),包括阴影: