如何让 tikzpicture(带有“记住图片”和“tikzmark”)与 SIG ACM 模板一起工作?

如何让 tikzpicture(带有“记住图片”和“tikzmark”)与 SIG ACM 模板一起工作?

我想使用\tikzmark外部tikzpicture来记住一些坐标,然后在内部使用它们tikzpicture(这似乎是一件相当标准的事情)。我有这个绘制矩形的最小工作示例:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{tikzmark}

\begin{document}

Some random text outside\tikzmark{label}

\begin{tikzpicture}[remember picture, overlay]
\draw (0.1,0.1) rectangle (pic cs:label);
\end{tikzpicture}

\end{document}

课程链接如下:

https://www.acm.org/binaries/content/assets/publications/article-templates/sig-alternate-05-2015.cls

现在,当我切换到 SIG ACM 格式时会出现问题,例如这个:

\documentclass{sig-alternate-05-2015}

然后,发生此错误(但在第二次 Latex 传递期间):

! Missing number, treated as zero.
<to be read again> 
                   \thepage 
l.13 \draw (0.1,0.1) rectangle (pic cs:label)
                                             ;
?

现在,我已将问题追溯到该remember picture部件 - 如果将其移除,错误就会消失。但是,与 tikzmark 功能一起使用似乎至关重要。

如有任何提示我将不胜感激。

答案1

问题是在语句中将\thepage设置为,因此会直接写入文件,而不是用页码替换。我建议修补库,使其不使用。在 后添加以下几行。\relax\writeauxtikzmark\thepage\usetikzlibrary{tikzmark}

\usepackage{xpatch}
\expandafter\xpatchcmd
   \csname pgfk@/tikz/every picture/.@cmd\endcsname
   {\thepage}{\arabic{page}}{}{}

相关内容