我想知道我是否可以在 gnuplot 标签内或甚至在图形键内使用 LaTex 代码,我正在使用gnuplottex
包,并且我喜欢在这些标签内进行交叉引用,这是我的 MWE
\documentclass[8pt,a4paper,dvipsnames]{article}
\usepackage[utf8]{inputenc}
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm]{geometry}
\usepackage{graphicx,gnuplottex,amsmath}
\begin{document}
\begin{equation}
y = x^2 \label{eq:x2}
\end{equation}
\begin{figure}[htp]
\centering
\begin{gnuplot}[scale=1.3, terminal=epslatex, terminaloptions=color dashed]
set samples 50000
set grid
unset key
set xrange [-3:1]
set yrange [0:20]
set label "$y=x^2$" at -0.5,1
set label "\eqref{eq:x2}" at -0.5,3
p x**2
\end{gnuplot}
\caption{\eqref{eq:x2} parabolic curve} \label{fig:FermDistNorm}
\end{figure}
\end{document}
也许 gnuplottex 不足以做到这一点。非常感谢!:)
答案1
在 gnuplot 中,反斜杠用作转义字符,就像在 LaTeX 中一样。因此,当 latex 调用 gnuplot 时,gnuplot 会吞掉反斜杠,并要求 latex 处理标题“eqref{eq:x2}”,这只意味着括号被删除,最终您将得到“eqrefeq:x2”作为标签(采用漂亮的字体)。
解决方案是阻止 gnuplot 将反斜杠解释为转义字符,您可以通过在 之前添加一个额外的反斜杠eqref
,或使用单引号而不是双引号来实现。请参阅gnuplot 5 手册更多细节。
\documentclass[8pt,a4paper,dvipsnames]{article}
\usepackage[utf8]{inputenc}
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm]{geometry}
\usepackage{graphicx,gnuplottex,amsmath}
\begin{document}
\begin{equation}
y = x^2 \label{eq:x2}
\end{equation}
\begin{figure}[htp]
\centering
\begin{gnuplot}[scale=1.3, terminal=epslatex, terminaloptions=color dashed]
set samples 50000
set grid
unset key
set xrange [-3:1]
set yrange [0:20]
set label "$y=x^2$" at -0.5,1
set label "\\eqref{eq:x2}" at -0.5,3 #or use '\eqref{eq:x2}'
p x**2
\end{gnuplot}
\caption{\eqref{eq:x2} parabolic curve} \label{fig:FermDistNorm}
\end{figure}
\end{document}
答案2
为了方便起见,这里有一个使用pgfplots
,并且无需使用shell-escape
% arara: pdflatex
\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\begin{document}
\begin{equation}
y = x^2 \label{eq:x2}
\end{equation}
\begin{figure}[htp]
\centering
\begin{tikzpicture}
\begin{axis}[xmin=-3,xmax=1,
ymin=0,ymax=20,
xtick={-3,-2.5,...,1},
grid=major,
]
\addplot[-,blue,thick,domain=-3:1]{x^2} node[pos=0.9,anchor=south] {$y=x^2$ \eqref{eq:x2}};
\end{axis}
\end{tikzpicture}
\caption{using pgfplots}
\end{figure}
\end{document}