我正在定义一个企业设计beamer
模板。
实际上,我在文件中定义了一些给定的颜色beamercolorthemeCD.sty
。(下一步是通过定义一些字体模板beamerfontthemeCD.sty
。也许我会遇到与颜色相同的问题?)
我用它tikzpictures
来将不同的 CD 元素放到幻灯片上。为了使其最高效和简单,我通过以下方式定义了一些全局 TikZ 样式\tikzset
...
现在我想将 beamer 模板定义与 TikZ 样式结合起来,例如我想在beamercolorthemeCD.sty
某些 TikZ 绘制元素上使用\tikzset
定义样式中给出的特殊颜色。
此定义不起作用:
%% Define the color,
\setbeamercolor{dark decoration}{fg=black}
%% Use that color in this TikZ style
\tikzset{%
dark/.style={%
line width=\rulerwidth,
color={\usebeamercolor{dark decoration}},
}%
}%
LaTeX 出错
缺少插入的 \endcsname。
并且
段落在 \XC@col@rlet 完成之前结束。
我发现了一个这里有类似的问题,说明,您可以使用的颜色实际的投影仪模板。
但在我的例子中,装饰元素用在不同的位置(例如headline
,footline
和其他模板),使用不同的前景色和背景色。(装饰元素不应该在不同的模板/环境中改变颜色。)
另外:当时,当定义 TikZ 样式时,并没有实际的模板起作用,所以只是说color=fg
,正如解决答案所暗示的那样,在我的情况下不起作用。
有没有办法使用 beamer 颜色模板全局定义 TikZ 样式颜色?
以下是可供试用的 MWE
\documentclass{beamer}
\usepackage{tikz}
\title{Some ordinary title}
\author{I. T. Sme, A. Gain}
\date{Later On}
\setbeamercolor{dark decoration}{fg=black}
\setbeamercolor{light decoration}{fg=grey}
\tikzset{%
dark/.style={%
line width=1pt,
% This doesn't work :(
color={\usebeamercolor{dark decoration}},
}%
}%
\begin{document}
\begin{frame}
\begin{tikzpicture}
\draw[dark] (0,0) -- (1,1);
\end{tikzpicture}
\end{frame}
\end{document}
答案1
您必须至少使用该颜色一次才能使其在xcolor
格式中可用。这有效:
\documentclass{beamer}
\usepackage{tikz}
\title{Some ordinary title}
\author{I. T. Sme, A. Gain}
\date{Later On}
\setbeamercolor{dark decoration}{fg=black}
\setbeamercolor{light decoration}{fg=grey}
\tikzset{%
dark/.style={%
line width=1pt,
% This doesn't work :( unless you use the color before!
color=dark decoration.fg,
}%
}%
\begin{document}
\begin{frame}
{\usebeamercolor[fg]{dark decoration}}
\begin{tikzpicture}
\draw[dark] (0,0) -- (1,1);
\end{tikzpicture}
\end{frame}
\end{document}
我现在在用手机,查看到底发生了什么太痛苦了——后面的空行\begin{frame}
是必须的。明天我会调整它……