有没有办法动态获取节点的不透明度?我想根据节点的不透明度动态修改内容的不透明度。
\documentclass[presentation]{beamer}
\usepackage{tikz}
\usepackage{transparent}
\tikzset{
invisible/.style={opacity=0,text opacity=0},
visible on/.style={alt=#1{}{invisible}},
alt/.code args={<#1>#2#3}{\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}}}
\begin{document}
\begin{frame}
\begin{figure}
\centering
\begin{tikzpicture}
\node[visible on=<1->] (qAA) at (0, 0) {
%{\transparent{\getOpacity+0.01}\color{green}{Print the opacity})
};
\end{scope}
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
为了提供更多背景信息和完整代码:我试图从底部逐层打印一棵树。我希望兄弟姐妹/堂兄弟对齐,并且只有少量不透明文本。因此我有一些幻影节点(通过将不透明度设置为 0}。
看起来\transparent
干扰了 TIKZ 的不透明度。不知道如何解决这个问题。我无法使用,forest
因为我计划使用更多节点自定义图形。
\newcommand{\x}{{\color{blue}\ensuremath{x}}}
\begin{document}
\begin{frame}
\begin{figure}
\begin{tikzpicture}[every text node part/.style={align=center}]
\node[visible on=<3->] (qAA) at (0, 0) {
{\transparent{0.3}$g = $}\\$f(\x)$
};
\node[visible on=<2->] (qBA) at (-3, -2) {
{\transparent{0.3}$g = $}\\$f_{0}(\x)$
};
\node[visible on=<2->] (qBB) at (3, -2) {
{\transparent{0}$g = $}\\$f_{1}(\x)$
};
\node[visible on=<1->] (qCA) at (-3, -4) {
{\transparent{0.3}$g = $}\\$f_{0,0}(\x)$
};
\node[visible on=<1->] (qCD) at (3, -4) {
{\transparent{0}$g = $}\\$f_{1,1}(\x)$
};
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
答案1
我不会使用透明文本,因为透明文本带来的问题比它解决的问题还多。相反,我会通过将文本颜色与背景颜色混合来更改文本颜色。如果 beamer 在覆盖层中发现之前变暗的文本,它也会这样做。
\documentclass[presentation]{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}
\newcommand{\x}{{\color{blue}\ensuremath{x}}}
\begin{document}
\begin{frame}
\begin{figure}
\begin{tikzpicture}[every text node part/.style={align=center}]
\node[visible on=<3->] (qAA) at (0, 0) {
\begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f(\x)$
};
\node[visible on=<2->] (qBA) at (-3, -2) {
\begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{0}(\x)$
};
\node[visible on=<2->] (qBB) at (3, -2) {
\begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{1}(\x)$
};
\node[visible on=<1->] (qCA) at (-3, -4) {
\begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{0,0}(\x)$
};
\node[visible on=<1->] (qCD) at (3, -4) {
\begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{1,1}(\x)$
};
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}