gnuplot 标签内的 LaTex 代码

gnuplot 标签内的 LaTex 代码

我想知道我是否可以在 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}

相关内容