在 beamer slide 上发现 gnuplot 图

在 beamer slide 上发现 gnuplot 图

我在将 gnuplot 图表纳入 beamer 幻灯片时遇到了问题,该图表应该出现在幻灯片的最末端,而幻灯片上没有其他元素。

问题是,我似乎无法将其用于only情节gnuplottex

到目前为止我已经尝试过:

\documentclass{beamer}
\setbeamercovered{transparent}
\usetheme{AnnArbor} %not my actual theme, just for MWE
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{color}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage[subfolder,siunitx,cleanup]{gnuplottex}


\begin{document}


\begin{frame}[fragile]{Zeitschritt}

 Some text...

 \vfill

 \onslide<2-4>{
 \begin{block}{Zeitschritt als Funktion der Drehrate des Propellers}
  \begin{equation}
   fancy equation
  \end{equation}
  \onslide<3-4>{some text to go with it}
 \end{block}
 }

 \onslide<4>{
 \begin{block}{Rampenfunktion}
  \begin{equation}
   even more fancy equation
  \end{equation}
 \end{block} 
 }

\only<5>{
        \begin{gnuplot}[terminal=epslatex,terminaloptions=color]
        set size 0.9,0.8

        min(a,b) = (a < b) ? a : b
        max(a,b) = (a > b) ? a : b

        set yrange[0:6]
        set ylabel 'Timestep $\Delta t$ [\si{\degree\per\second}]'
        set xrange[0:5]
        set xlabel 'Time [\si{\second}]'
        set grid
        set key box right top spacing 1.3 samplen 3 width -5

        set style line 1 lw 3

        f(x)= x<1 ? 5 : 5-4*(sin(min(pi*(x-1)/(2*(4-1)),(pi/2))))**2
        g(x)= x<1 ? 5 : max(-1.33*x+6.33,1)

        plot f(x) ls 1 lc 2 t 'Rampenfunktion $\Delta t = 2...4$',\
        g(x) lc 1 t 'Lineare Rampenfunktion';

      \end{gnuplot}
      }

 \end{frame}
 \end{document}

如果注释掉该\only<5>{部分,则它在编译时可以起作用pdflatex --shell-escape

如果你不这样做,LaTeX 会告诉你:

 Paragraph ended before \verbatim@ was complete.

看起来,该only命令关闭了fragile框架的选项,或者只是忽略它,所以我无法gnuplot在这里进行绘图。

对此有什么想法吗?

答案1

听起来onlyenv可以成为你的朋友。

\documentclass{beamer}
\setbeamercovered{transparent}
\usetheme{AnnArbor} %not my actual theme, just for MWE
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{color}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage[subfolder,siunitx,cleanup]{gnuplottex}


\begin{document}


    \begin{frame}[fragile]{Zeitschritt}

        Some text...

        \vfill

\begin{onlyenv}<1-4>



        \onslide<2-4>{
            \begin{block}{Zeitschritt als Funktion der Drehrate des Propellers}
                \begin{equation}
                fancy equation
                \end{equation}
                \onslide<3-4>{some text to go with it}
            \end{block}
        }

        \onslide<4>{
            \begin{block}{Rampenfunktion}
                \begin{equation}
                even more fancy equation
                \end{equation}
            \end{block} 
        }

\end{onlyenv}

\begin{onlyenv}<5>
            \begin{gnuplot}[terminal=epslatex,terminaloptions=color]
                set size 0.9,0.8

                min(a,b) = (a < b) ? a : b
                max(a,b) = (a > b) ? a : b

                set yrange[0:6]
                set ylabel 'Timestep $\Delta t$ [\si{\degree\per\second}]'
                set xrange[0:5]
                set xlabel 'Time [\si{\second}]'
                set grid
                set key box right top spacing 1.3 samplen 3 width -5

                set style line 1 lw 3

                f(x)= x<1 ? 5 : 5-4*(sin(min(pi*(x-1)/(2*(4-1)),(pi/2))))**2
                g(x)= x<1 ? 5 : max(-1.33*x+6.33,1)

                plot f(x) ls 1 lc 2 t 'Rampenfunktion $\Delta t = 2...4$',\
                g(x) lc 1 t 'Lineare Rampenfunktion';

            \end{gnuplot}
        \end{onlyenv}

\end{frame}
\end{document}

在此处输入图片描述

答案2

虽然我不知道问题到底是什么,但以下方法似乎有效:替换\only<5>{...}\onslide+<5>(不带{}):

\onslide+<5>

    \begin{gnuplot}[terminal=epslatex,terminaloptions=color]
    set size 0.9,0.8

    min(a,b) = (a < b) ? a : b
    max(a,b) = (a > b) ? a : b

    set yrange[0:6]
    set ylabel 'Timestep $\Delta t$ [\si{\degree\per\second}]'
    set xrange[0:5]
    set xlabel 'Time [\si{\second}]'
    set grid
    set key box right top spacing 1.3 samplen 3 width -5

    set style line 1 lw 3

    f(x)= x<1 ? 5 : 5-4*(sin(min(pi*(x-1)/(2*(4-1)),(pi/2))))**2
    g(x)= x<1 ? 5 : max(-1.33*x+6.33,1)

    plot f(x) ls 1 lc 2 t 'Rampenfunktion $\Delta t = 2...4$',\
    g(x) lc 1 t 'Lineare Rampenfunktion';

  \end{gnuplot}

“+” 确保图表不可见,而不是透明的。(不过,透明度看起来并不好,因为透明度基本上只适用于文本,所以图表的一部分总是完全可见的。)

相关内容