引用 TikzPicture 之外的特定 Tikz 节点

引用 TikzPicture 之外的特定 Tikz 节点

我想知道如何引用 Tikz 图片之外的 Tikz 节点,就像引用图像一样。这一页列出了可能的\ref{}对象(不包括节点),但也许有一个包被它忽略了。无论如何,我想知道它通常是怎么做的。例如:

\begin{tikzpicture}
\node (a) at (0,0){example node};
\end{tikzpicture}
Desired function: ~\ref{node: a}, or something like this

我目前正在使用节点label来明确引用它,但这似乎不是最好的方法。

答案1

如果我理解正确的话,您可能正在寻找这个。

  1. \customlabel这个帖子用于创建新的可引用标签。您还可以在此处找到如果不想使用 hyperref 可以做什么。我不知道是否有一个版本既可以使用 hyperref 也可以不使用 hyperref。
  2. 创建了一种新样式referencable node,它可以步进节点计数器并将其显示为标签。

您可以这样使用它。

\documentclass{article}
\usepackage{tikz}
\usepackage{hyperref}
\newcounter{node}
\makeatletter% from https://tex.stackexchange.com/a/160035/121799
\newcommand{\customlabel}[2]{%
   \protected@write \@auxout {}{\string \newlabel {#1}{{#2}{\thepage}{#2}{#1}{}} }%
   \hypertarget{#1}{#2}
}
\tikzset{autonumbered node/.style={/utils/exec={\stepcounter{node}},
label=above:{\arabic{node}}}}
\newcommand{\nodelabel}[1]{%
\protect\customlabel{#1}{\arabic{node}}}
\makeatother
\begin{document}
\begin{tikzpicture}
\node[autonumbered node] (a) at (0,0) {example node\nodelabel{node:a}};
\node[autonumbered node] (b) at (2,1) {another example node\nodelabel{node:b}};
\end{tikzpicture}

Node~\ref{node:a} is a node and so is \ref{node:b}.
\clearpage
\begin{tikzpicture}
\node[autonumbered node] (c) at (0,0) {yet another example node\nodelabel{node:c}};
\end{tikzpicture}

Node~\ref{node:a} is on page~\pageref{node:a} and node~\ref{node:c} is on
page~\pageref{node:c}.
\end{document}

在此处输入图片描述

相关内容