![gnuplottex и lualatex](https://rvso.com/image/266433/gnuplottex%20%D0%B8%20lualatex.png)
РЕДАКТИРОВАТЬ:Этот вопрос касается ошибки вgnuplottex
которая будет исправлена в TeXLive 2013. Если вы все еще хотите исправить ошибку, загрузите последнюю версию с CTAN и скомпилируйте ее самостоятельно.
Позволятьgnu.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}
Я сейчас пытаюсь скомпилировать с lualatex
; к сожалению, это не работает. Я вызвал lualatex
таким образом
$ lualatex --shell-escape gnu.tex
В файле журнала указано:
...
\write18 enabled.
...
Package gnuplottex Warning: Shell escape not enabled.
(gnuplottex) You'll need to convert the graphs yourself..
...
Если я скомпилирую с помощью pdflatex
командной строки
$ pdflatex --shell-escape gnu.tex
все работает просто отлично.
Краткое содержание:Несовместимо gnuplottex
с lualatex
?
решение1
Я бы посчитал это ошибкой gnuplottex.sty
: пакет тестирует выход из оболочки, записывая файл /tmp
и присваивая ему имя.безрасширение. Реализации TeX могут отличаться в обработке отсутствующих расширений в именах файлов, но должны делать то же самое, когда расширение найдено. Так что если тест
%% 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
все будет работать (я добавил явное .tex
расширение).
Эту ошибку можно обойти, добавив собственный тест:
\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}
Вы все равно получите сообщение, но документ будет скомпилирован правильно, если -shell-escape
задано в командной строке. Однако для этого обходного пути вам понадобится версия LuaTeX >0.67.