我有一个命令定义为:
\RequirePackage{tikz}
\usetikzlibrary{fadings}
\tikzset{fading text/.style={}}
\newcommand\fadingtext[2][]{%
\begin{tikzfadingfrompicture}[name = fading letter]
\node[text = transparent!0, inner xsep = 0pt, outer xsep = 0pt] {#2};
\end{tikzfadingfrompicture}%
\begin{tikzpicture}[baseline = (textnode.base)]
\node[inner sep = 0pt, outer sep = 0pt] (textnode) {\phantom{#2}};
\shade[path fading = fading letter, fading text, #1, fit fading = false]
(textnode.south west) rectangle (textnode.north east);%
\end{tikzpicture}%
}
当我使用像\fadingtext[left color = awesome-red, right color = text]{Hello}
这样的命令时,文本输出" Hello"。但是,如果我再次使用它,例如\fadingtext[left color = awesome-red, right color = text]{Wow}
,它仍会打印" Hello"。
为什么它似乎在缓存第一个论点?
编辑:即使重新定义命令(并将其命名为其他内容),问题仍然存在。
\fadingtext1{Hello}
打印Hello
\fadingtext2{Wow}
打印Hello
EDIT2:一起删除命令并简单地多次粘贴内部代码仍然存在同样的问题。
EDIT3:发现了这个问题!! (仍然需要帮助)
\begin{tikzfadingfrompicture}[name = fading letter]
这里因为我为此部分设置了名称,所以它将其存储为变量。这在我第一次使用此功能后永远不会更新,因此fading letter
永远不会更改。有什么想法吗?