gnuplottex 包不再起作用

gnuplottex 包不再起作用

每当我尝试使用该gnuplottex包时,都会收到以下错误消息:

/usr/share/texlive/texmf-dist/tex/latex/gnuplottex/gnuplottex.sty:79: Argument of " has an extra }. [...te\write18{rm -f "\jobname.gnuploterrors"}]
/usr/share/texlive/texmf-dist/tex/latex/gnuplottex/gnuplottex.sty:79: Paragraph ended before " was complete. [...te\write18{rm -f "\jobname.gnuploterrors"}]
/home/myDocument.tex:118: Package catchfile Error: File `myDocument.gnuploterrors' not found. [\end{document}]
TeX STOPPED: File ended while scanning use of \gnuploterrors@eatpa\ifx \gnuploterrors@ \@empty \else \PackageWarningNoLine {gnuplottex}
TeX reports the error was in file: myDocument.tex

gnuplottex.sty读取的第 79 行\immediate\write18{rm -f "\jobname.gnuploterrors"},因此它未被执行似乎是导致其他错误的原因。

之前一切都运行正常,但最近我升级到了 Xubuntu 16.04 LTS,所以这可能是原因。我已经尝试完全删除 gnuplot 和 TeX Live 并再次安装它们,但错误仍然存​​在。

编辑:

我使用的是pdflatex和 的 0.9.1 版本gnuplottex。产生此错误只需要\usepackage{gnuplottex},因此例如此文档无法编译:

%!TEX options = "--shell-escape"

\documentclass[a4paper]{article}

\usepackage{gnuplottex}


\begin{document}
\end{document}

但是,我注意到,对于这个最小文件,只显示了上面错误消息的最后 3 行。只有当我添加时,才会显示所有 5 行\usepackage{ngerman}

答案1

这是一个疏忽gnuplottex:如果没有gnuplot处理图表,则不会生成文件<jobname>.gnuploterrors,因此最终显示错误的代码无法找到它。

203 \AtEndDocument{%
204   \ifmiktex
205   \else
206     \CatchFileDef\gnuploterrors@{\jobname.gnuploterrors}{\endlinechar=`^^J \catcode`\ =12 }%
207     \expandafter\gnuploterrors@eatpar\gnuploterrors@\@nil
208     \ifx\gnuploterrors@\@empty\else
209       \PackageWarningNoLine{gnuplottex}{Gnuplot execution produced errors:^^J%
210         \detokenize\expandafter{\gnuploterrors@}}%
211     \fi
212   \fi
213 }

第 206–211 行最好是

    \IfFileExists{\jobname.gnuploterrors}{%
      \CatchFileDef\gnuploterrors@{\jobname.gnuploterrors}{\endlinechar=`^^J \catcode`\ =12 }%
      \expandafter\gnuploterrors@eatpar\gnuploterrors@\@nil
      \ifx\gnuploterrors@\@empty\else
        \PackageWarningNoLine{gnuplottex}{Gnuplot execution produced errors:^^J%
          \detokenize\expandafter{\gnuploterrors@}}%
      \fi
    }{}%

但是,只要您gnuplot的文档中有了环境,错误就不会出现。

相关内容