每当我尝试使用该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
的文档中有了环境,错误就不会出现。