gnuplottex y lualatex

gnuplottex y lualatex

EDITAR:Esta pregunta cubre un error engnuplottexque se solucionará en TeXLive 2013. Si aún desea corregir el error, descargue la última versión de CTAN y compílela usted mismo.


Dejargnu.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}

Ahora estoy intentando compilar con lualatex; Desafortunadamente esto no funciona. Llamé lualatexde la manera

$ lualatex --shell-escape gnu.tex

El archivo de registro dice

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

Si compilo con pdflatexy la línea de comando

$ pdflatex --shell-escape gnu.tex

funciona bien.

Resumen:¿Es gnuplottexincompatible con lualatex?

Respuesta1

Consideraría que esto es un error en gnuplottex.sty: el paquete prueba el escape del shell escribiendo un archivo /tmpy asignándole un nombre.sinextensión. Las implementaciones de TeX pueden diferir en el tratamiento de las extensiones faltantes en los nombres de archivos, pero deberían hacer lo mismo cuando se encuentra una extensión. Entonces si la prueba es

%% 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

todo funcionará (agregué una .texextensión explícita).

Puede solucionar este error agregando su propia prueba:

\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}

Seguirá recibiendo el mensaje, pero el documento se compilará correctamente cuando -shell-escapese proporcione en la línea de comando. Sin embargo, necesita la versión LuaTeX >0.67 para esta solución.

información relacionada