3

If I have an eps file in a subfolder and point to it with graphicspath, it can't seem to do the conversion, the log says:

(epstopdf)             Output file: </path/to/image/img-eps-converted-to.pdf>
(epstopdf)             Command: <repstopdf --outfile=/path/to/image/img-eps-converted-to.pdf /path/to/image/img.eps>
(epstopdf)             \includegraphics on input line 72.
runsystem(repstopdf --outfile=/path/to/image/img-eps-converted-to.pdf /path/to/image/img.eps)...executed safely (allowed).

Package epstopdf Info: Result file: </path/to/image/img-eps-converted-to.pdf>.

./chapters/results2.tex:72: Package pdftex.def Error: File `/path/to/image/img-eps-converted-to.pdf' not found.

If I run epstopdf --outfile=/path/to/image/img-eps-converted-to.pdf /path/to/image/img.eps it works fine. If I run the same command with repstopdf, it returns:

!!! Error: Output filename '/path/to/image/img-eps-converted-to.pdf' not allowed in restricted mode.

Running ls -ld /path/to/image returns:

drwxrwxr-x

Files for example:

test.tex:

\documentclass[maintest.tex]{subfiles}
\graphicspath{{/path/to/image/}}
\epstopdfsetup{outdir=/path/to/image/} 
\begin{document}

\begin{figure}
  \includegraphics{img.eps}
\end{figure}

\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 

maintest.tex:

\documentclass{book}
\usepackage{mystyle}

\begin{document}

\subfile{chapters/test}

\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 

mystyle.tex:

\usepackage[utf8x]{inputenc}
\usepackage{graphicx}
\usepackage{subfiles}
\usepackage{epstopdf}
2

Running external programs is a security risk. Therefore the default settings are a compromise. Some more or less secure programs (hopefully more "more") are allowed. This is called the restricted shell escape mode. epstopdf is too powerful, it can overwrite arbitrary files. Therefore, a restricted version repstopdf was created, which follows the policy of texmf.cnf, which restricts the writing of output files, from texmf.cnf of TeX Live 2015:

% Allow TeX \openin, \openout, or \input on filenames starting with `.'
% (e.g., .rhosts) or outside the current tree (e.g., /etc/passwd)?
% a (any)        : any file can be opened.
% r (restricted) : disallow opening "dotfiles".
% p (paranoid)   : as `r' and disallow going to parent directories, and
%                  restrict absolute paths to be under $TEXMFOUTPUT.
openout_any = p
openin_any = a

% Write .log/.dvi/etc. files here, if the current directory is unwritable.
%TEXMFOUTPUT = /tmp

In your case, the output file name starts with "/", thus it is an absolute file name and variable TEXMFOUTPUT is probably not set.

Possible solutions/workarounds:

  • Since the files are in sub folders of the current working directory, try relative file names instead.

  • TeX Live's epstopdf-sys.cfg as provided by the package author (me) sets the program name to repstopdf if restricted shell escape was detected. In case of full shell escape, epstopdf is used. Thus you can also run your project with pdflatex -shell-escape.

  • I should have added that the command seems to work for some directories, but not for others. – James Jun 26 '15 at 2:18
  • @James Absolute directories are forbidden (unless listed in TEXMFOUTPUT) in the default restricted shell escape mode. – Heiko Oberdiek Jun 26 '15 at 2:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.