\label 和 \ref 使用 pgfplots、hyperref 和 tikz 外部化时无法正常工作

\label 和 \ref 使用 pgfplots、hyperref 和 tikz 外部化时无法正常工作

我有以下 MWE:

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepgfplotslibrary{external}
\tikzset{external/mode=list and make}
\tikzexternalize
\usepackage{blindtext}
\usepackage{hyperref}

\begin{document}

\Blindtext
\begin{tikzpicture}
  \begin{axis}
    \addplot+ coordinates {
      (1, 9) (2, 6) (3, 1) (4, 4)
    }; \label{important}
  \end{axis}
\end{tikzpicture}
\Blindtext
Here I want to reference the plot \ref{important}.

\end{document}

如果我注释掉\tikzexternalize以停用外部化,则生成的链接\ref指向第 2 页。\tikzexternalize使用时,它会错误地链接到第 1 页。我使用latex调用的命令pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)。我在中安装了 pgfplots 1.16 ~/texmf。请注意,我遵循了make -f test.makefileTikZlist and make外部化模式所需的顺序。

答案1

如果包含外部生成的 PDF,则标签中没有目标。您可以尝试以下方法:

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepgfplotslibrary{external}
\tikzset{external/mode=list and make}
\tikzexternalize
\usepackage{blindtext}
\usepackage{hyperref}

\begin{document}

\Blindtext
\hypertarget{importantdest}{}\begin{tikzpicture}
  \begin{axis}
    \addplot+ coordinates {
      (1, 9) (2, 6) (3, 1) (4, 4)
    }; \label{important}
  \end{axis}
\end{tikzpicture}
\Blindtext
Here I want to reference the plot \hyperlink{importantdest}{\ref*{important}}.

\end{document}

相关内容