todonotes
我在使用及其TikZ
库时遇到了以下问题externalize
。如果我的文档不包含\todo
,那么它可以很好地编译,并且似乎是 TikZ 的外部化解决了这个问题。但是,一旦\todo
文档中有 ,其中一些就会编译失败。
如果我围绕这样一个问题\todo
如下:
\begingroup
\tikzexternaldisable
\todo{Note's content}%
\tikzexternalenable
\endgroup
然后编译又顺利通过了。所以,下一步自然是重新定义\todo
。因此,在序言中我添加了以下内容:
\makeatletter
\renewcommand{\todo}[2][]{%
\begingroup \tikzexternaldisable
\@todo[#1]{#2} \tikzexternalenable
\endgroup}
\makeatother
一切似乎都正确。我遇到的问题是,我把所有的前言都塞进了一个单独的.sty
文件中。当我将最后一个片段移到文件中时.sty
,问题又出现了。(最后一个片段来自这个答案)。否则,.sty
据我所知,文件可以正确加载。
概括:我的问题是为什么相同的当代码位于“主”文件中时,其行为符合预期,但当将其移动到已正确加载的样式文件中时,它就不再起作用了。我猜这与 either TikZ
nor没什么关系todonotes
- 但我提到它们是因为它们在我的案例中造成了问题。
答案1
从你的问题中看不清楚,但在包文件中只是放
\renewcommand{\todo}[2][]{%
\begingroup \tikzexternaldisable
\@todo[#1]{#2} \tikzexternalenable
\endgroup}
我怀疑您将其放入\makeatother
其中会颠覆其含义,@
从而破坏包中对其的任何后续使用。