LaTeX命令每次调用时都会输出第一个结果

时间:2016-08-07 23:35:08

标签: latex

我有一个命令定义为:

\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永远不会更改。有什么想法吗?

0 个答案:

没有答案