我必须修改Beamer Metropolis 主题一组相当暗的幻灯片。以下是一个最小工作示例 (MWE)。
我试图克服的问题是进度条中的前景色和背景色似乎存在不受欢迎的颜色混合。
请参阅下面附加的屏幕截图,其中在第一个屏幕截图中,细红色标题分隔符显示正确的红色(无颜色混合),但在下面的屏幕截图中,进度条颜色混合了红色(前景)和白色(背景)。
有人可以告诉我正确的方法以摆脱这种混合吗?
多谢。
所需红色(无混合)
不需要的红色(带颜色混合)
最小工作示例
\documentclass{beamer}
\usetheme{metropolis}
\metroset{numbering=fraction}
\metroset{progressbar=frametitle}
\metroset{background=dark}
\setbeamercolor{palette primary}{bg=black,fg=white}
\setbeamercolor{background canvas}{parent=palette primary}
\setbeamercolor{normal text}{fg=white}
\setbeamercolor{progress bar}{use=palette primary,fg=red}
\title{A minimal example}
\date{\today}
\author{Matthias Vogelgesang}
\institute{Centre for Modern Beamer Themes}
\begin{document}
\maketitle
\section{First Section}
\begin{frame}[plain]{First Frame}
Hello, world!
\end{frame}
\section{Second Section}
\begin{frame}[plain]{First Frame}
Hello from frame!
\end{frame}
\end{document}
编辑(2018 年 8 月 29 日)
根据下面评论部分中@samcarter的提示,我使用以下PDF渲染器测试了MWE的PDF输出:
- 多媒体PDF读者
- Firefox 的内置 PDF 阅读器
- Google Chrome 的内置 PDF 阅读器
- Microsoft Edge 的内置 PDF 阅读器
- 苏门答腊 PDF读者
- 硝基PDF读者
- 表明
它们都倾向于展示相同的颜色混合效果。我在下面附上了另一张示例图片,以突出颜色混合效果和下面红色色调的差异。谢谢。
更多编辑(2018 年 8 月 29 日)
根据@samcarter关于进度条线粗细度和PDF查看器渲染细线的进一步提示,我在MWE中添加了以下代码以增加粗细度,最终结果确实产生了连贯的红色色调。我还在下面附上了MuPDF的屏幕截图。
虽然结果有些出乎意料,但我很高兴谜团被解开了:-)。非常感谢!
\makeatletter
\metroset{sectionpage=none}
\setlength{\metropolis@progressinheadfoot@linewidth}{12pt}
\setlength{\metropolis@titleseparator@linewidth}{12pt}
\setlength{\metropolis@progressonsectionpage@linewidth}{12pt}
\makeatother
答案1
这是 pdf viewer 的渲染问题,其实是同一个原因为什么希拉里克林顿的标志上有隐藏的缺口
线条很0.4pt
宽,在部分页面上,红线位于白线上方。许多 pdf 查看器都试图变得智能,并增强细线、平滑线条艺术等等。
有几种可能性:
如果增加线宽(可能增加到 > 以上
1pt
),问题就不会再那么明显了。\setlength{\metropolis@progressinheadfoot@linewidth}{2pt} \setlength{\metropolis@titleseparator@linewidth}{2pt} \setlength{\metropolis@progressonsectionpage@linewidth}{2pt}
或者不要在红条下面画白线
\documentclass{beamer}
\usetheme{metropolis}
\metroset{numbering=fraction}
\metroset{progressbar=frametitle}
\metroset{background=dark}
\setbeamercolor{palette primary}{bg=black,fg=white}
\setbeamercolor{background canvas}{parent=palette primary}
\setbeamercolor{normal text}{fg=white}
\setbeamercolor{progress bar}{use=palette primary,fg=red}
\title{A minimal example}
\date{\today}
\author{Matthias Vogelgesang}
\institute{Centre for Modern Beamer Themes}
\makeatletter
\setbeamertemplate{progress bar in section page}{
\setlength{\metropolis@progressonsectionpage}{%
\textwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}%
}%
\begin{tikzpicture}
\fill[bg] (\metropolis@progressonsectionpage,0) rectangle (\textwidth, \metropolis@progressonsectionpage@linewidth);
\fill[fg] (0,0) rectangle (\metropolis@progressonsectionpage, \metropolis@progressonsectionpage@linewidth);
\end{tikzpicture}%
}
\makeatother
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\section{First Section}
\end{document}
- 禁用 pdf 查看器中的所有这些增强功能 - 但这可能会导致字体渲染不佳
答案2
你应该简单地添加bg=red
到 beamer color 中progress bar
。查看完整代码:
\documentclass{beamer}
\usetheme{metropolis}
\metroset{numbering=fraction}
\metroset{progressbar=frametitle}
\metroset{background=dark}
\setbeamercolor{palette primary}{bg=black,fg=white}
\setbeamercolor{background canvas}{parent=palette primary}
\setbeamercolor{normal text}{fg=white}
\setbeamercolor{progress bar}{use=palette primary,fg=red,bg=red}
\title{A minimal example}
\date{\today}
\author{Matthias Vogelgesang}
\institute{Centre for Modern Beamer Themes}
\begin{document}
\maketitle
\section{First Section}
\begin{frame}[plain]{First Frame}
Hello, world!
\end{frame}
\section{Second Section}
\begin{frame}[plain]{First Frame}
Hello from frame!
\end{frame}
\end{document}