在 Tikz 图片中使用 Subcaption 时出现多次定义标签警告

在 Tikz 图片中使用 Subcaption 时出现多次定义标签警告

在一个先前的问题,我问如何自动创建较大图像的放大高光。用户 Jake 使用 TikZ 提供了一个出色的解决方案。但是,当将子标题和超链接添加到组合中时,我们开始收到多重定义的标签警告。有人可以帮助诊断下面的简化示例吗?

当我编译这个时,我收到警告Label 'test' multiply defined

代码示例由 Jake 提供:

\documentclass{article} 
\usepackage{tikz} 
\usetikzlibrary{spy} 

\begin{document} 

\begin{figure}\centering 
        \begin{tikzpicture}[spy using outlines] 
                \node{\label{test} Testcontent}; 
                \spy on (0,0) in node (0,0); 
        \end{tikzpicture} 
\caption{Testfigure} 
\end{figure} 

\end{document}

答案1

正如马丁指出的那样,使用spy意味着图片被处理多次,这意味着图片label也被定义多次。

解决此问题的一种方法是将间谍保留在里面scope,并将带有 s 的节点放置label在此范围之后,例如使用fit库将“ label”节点放置在原始节点的顶部。

\documentclass{article} 
\usepackage{tikz} 
\usetikzlibrary{spy,fit} 

\begin{document} 

\begin{figure}\centering 
\begin{tikzpicture}
    \begin{scope}[spy using outlines] 
        \node (testnode) {Testcontent}; 
        \spy[size=1cm,magnification=2] on (0,0) in node at (1.5,1); 
    \end{scope}
    \node [fit=(testnode),inner sep=0pt] {\label{test}};
\end{tikzpicture} 
\caption{Testfigure} 
\end{figure} 

\end{document}

相关内容