gnuplot epslatex 问题

gnuplot epslatex 问题

我在尝试将使用终端创建的图形文件包含到我的乳胶文档中时遇到了一个非常非常奇怪的问题gnuplot epslatex

我创建了一个gnuplot脚本,它使用epslatex终端并将输出写入名为的文件foo.tex。正如预期的那样,它输出两个文件:foo.epsfoo.tex。在我的 latex 文件中,paper.tex我使用以下命令将其包含foo.tex在一个图中:

\begin{figure}[ht]
\input{foo.tex}
\end{figure}

然后我使用以下命令编译 latex 文件:

  latex paper.tex

然后我使用以下命令将该文件转换paper.dvi.ps文件:

  dvips paper.dvi

然后我尝试.pdf使用以下命令将其转换为文件:

  ps2pdf paper.ps

但它失败了,并出现了一条对我来说毫无意义的错误消息,.pdf当我使用.pdf查看器时,我无法查看文件中的图。以下是错误消息:

    Error: /syntaxerror in /--%ztokenexec_continue--
    Operand stack:
    ExtendTextBox
    Execution stack:
    %interp_exit   .runexec2   --nostringval--   --nostringval-- --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   2045   1   3   %oparray_pop   2044   1   3   %oparray_pop   2025   1   3   %oparray_pop   1884   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
    Dictionary stack:
    --dict:960/1684(ro)(G)--   --dict:1/20(G)--   --dict:90/200(L)--   --dict:198/300(L)--   --dict:67/200(L)--   --dict:181/256(L)--
    Current allocation mode is local
    GPL Ghostscript 9.26: Unrecoverable error, exit code 1

现在到了真正奇怪的部分。经过很多挫折(很多小时),我意外地发现,如果我运行gnuplot脚本但写入屏幕(即我注释掉设置终端的部分epslatex,我注释掉将输出写入文件的部分),然后我重试该ps2pdf命令,它就会工作,我可以在文件中查看情节.pdf

这对我来说完全没有意义!看来运行脚本gnuplot并绘制到屏幕上会foo.tex在创建 foo.eps 之后修复其中的某些问题。发生了什么?

答案1

问题是文件由 gnuplot 保持打开状态以等待数据,如果您需要使用创建的文件,则必须使用 set output 命令关闭该文件,然后使用 set term pop 命令返回前一个设备

答案2

解决该问题的方法(感谢 Marijn)是在 gnuplot 脚本末尾包含以下行:

    unset output

但是我不明白在文件 foo.tex 和 foo.eps 已经写入后,如何将绘图绘制到屏幕上也能解决问题。这对我来说仍然是个谜。GnuPlot 是否设置了 ps2pdf 使用的系统变量?有些地方有问题。

相关内容