如何在 TikZ 中引用方程编号

如何在 TikZ 中引用方程编号

我正在尝试使用以下命令动态引用方程编号tikzpicture(通过\eqref或):\ref

% Filename:  Test.tex (say)
\documentclass{article}
\usepackage{latexsym,amsfonts,amsthm,amssymb,amsmath}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

% Due to a large number of Tikz plots
\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}
Here is an equation:
\begin{equation}
    \label{eqOne}
    y = x^2
\end{equation}
that I'd like to appear in TikZ.

\begin{figure}[htbp]
\centering
\begin{tikzpicture}
\begin{axis}[%
xmajorgrids,
ymajorgrids
]

\addplot[const plot,color=red,solid,line width=0.5pt] plot table[row sep=crcr] {%
0  0\\
1  1\\
2  4\\
3  9\\
};
]
\node[right, align=left, inner sep=0mm] at (axis cs:2,4) {Equation \eqref{eqOne}};
\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}

但这无法通过 工作pdflatex -shell-escape Test.tex。生成的输出显示“Equation (??)”

通过反复试验,动态引用似乎只有在没有\usepgfplotslibrary{external}和的情况下才有效\tikzexternalize,但由于我拥有的 TikZ 图数量,我需要这两行。

有没有办法解决这个动态引用问题;也许我的方法错了?

非常感谢!

答案1

Peter 的链接外部化 pgfplots 中的引用解决了我的问题!

只是为了向其他人明确说明:对于这个例子(使用文件 Test.tex),所讨论的数字 #(从 0 开始)是 0(这里只有一个数字);所以:

pdflatex -shell-escape -interaction=batchmode -jobname "Test-figure0" "\def\tikzexternalrealjob{Test}\input{Test}"

其次是

pdflatex -shell-escape Test.tex

有效!

我真诚感谢Peter和这个论坛/小组!!

相关内容