我正在尝试使用以下命令动态引用方程编号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和这个论坛/小组!!