gnuplottex und lualatex

gnuplottex und lualatex

BEARBEITEN:Diese Frage betrifft einen Fehler ingnuplottexDies wird in TeXLive 2013 behoben. Wenn Sie den Fehler dennoch beheben lassen möchten, laden Sie die neueste Upstream-Version von CTAN herunter und kompilieren Sie sie selbst.


Lassengnu.tex

\documentclass[border=3mm]{standalone}
\usepackage{gnuplottex} % use gnuplot
\usepackage{epstopdf} % convert resulting eps to pdf
\begin{document}

\begin{gnuplot}[terminal=epslatex,terminaloptions=color]
    set xlabel '$x$'
    set ylabel '$y$'
    plot sin(x) title '$\sin x$'
\end{gnuplot}

\end{document}

Ich versuche jetzt mit zu kompilieren lualatex; leider funktioniert das nicht. Ich habe lualatexin der Weise aufgerufen

$ lualatex --shell-escape gnu.tex

Die Protokolldatei lautet

...
 \write18 enabled.
...
Package gnuplottex Warning: Shell escape not enabled.
(gnuplottex)                You'll need to convert the graphs yourself..
...

Wenn ich mit pdflatexund der Kommandozeile kompiliere

$ pdflatex --shell-escape gnu.tex

es funktioniert einwandfrei.

Zusammenfassung:Ist gnuplottexinkompatibel mit lualatex?

Antwort1

Ich würde das als einen Fehler in betrachten gnuplottex.sty: Das Paket testet die Shell, indem es eine Datei schreibt /tmpund ihr einen Namen zuweistohneErweiterung. TeX-Implementierungen können sich in der Behandlung fehlender Erweiterungen in Dateinamen unterscheiden, sollten aber dasselbe tun, wenn eine Erweiterung gefunden wird. Wenn der Test also

%% test if shell escape really works
\ifShellEscape
  \def\tmpfile{/tmp/w18-test-\the\year\the\month\the\day\the\time.tex}
  \ifmiktex
    \def\tmpfile{w18-test-\the\year\the\month\the\day\the\time.tex}
    \immediate\write18{echo t > "\tmpfile"}
  \else
    \immediate\write18{touch \tmpfile}
  \fi
  \IfFileExists{\tmpfile}{\ShellEscapetrue}{\ShellEscapefalse}
  \ifmiktex
    \immediate\write18{del "\tmpfile"}
  \else
    \immediate\write18{rm -f \tmpfile}
  \fi
\fi

alles wird funktionieren (ich habe eine explizite .texErweiterung hinzugefügt).

Sie können diesen Fehler umgehen, indem Sie Ihren eigenen Test hinzufügen:

\documentclass[border=3mm]{standalone}
\usepackage{gnuplottex} % use gnuplot
\usepackage{pdftexcmds,ifluatex}
\makeatletter
\ifluatex
  \ifnum\pdf@shellescape=\@ne
    \ShellEscapetrue
  \fi
\fi
\makeatother

\usepackage{epstopdf} % convert resulting eps to pdf
\begin{document}

\begin{gnuplot}[terminal=epslatex,terminaloptions=color]
    set xlabel '$x$'
    set ylabel '$y$'
    plot sin(x) title '$\sin x$'
\end{gnuplot}

\end{document}

Sie erhalten die Meldung zwar immer noch, aber das Dokument wird korrekt kompiliert, wenn -shell-escapein der Befehlszeile angegeben wird. Für diesen Workaround benötigen Sie allerdings LuaTeX-Version >0.67.

verwandte Informationen