1

Have anyone an idea how i can use \IfFileExist{}{}{} for file names with spaces?

f.e. didn't work

\newcommand{\runI}{D:/Test/run1 - T2}
\newcommand\IG[2][]{\IfFileExists{#2}{\includegraphics[#1]{#2}}{\fbox{File #2 doesn't exist}}}

\begin{figure}[htbp]
\centering
\IG[trim = 40mm 10mm 40mm 2mm,clip = true, width=0.4\textwidth]{\runI/LatexTestFig2.png}
\caption{run 1}
\label{overflow}
\end{figure}

f.e. work

\newcommand{\runII}{D:/Test/run1-T2-Kopie}
\newcommand\IG[2][]{\IfFileExists{#2}{\includegraphics[#1]{#2}}{\fbox{File #2 doesn't exist}}}

\begin{figure}[htbp]
\centering
\IG[trim = 40mm 10mm 40mm 2mm,clip = true, width=0.4\textwidth]{\runII/LatexTestFig2.png}
\caption{run 1}
\label{overflow}
\end{figure}

what can I do? THX

  • 1
    Completely untested and just an idea: have you checked out the grffile package? ctan.mirrorcatalogs.com/macros/latex/contrib/oberdiek/… – bonanza May 27 '14 at 7:31
  • As graphics will give a warning here anyway, is there a reason you are adding a test by hand? – Joseph Wright May 27 '14 at 7:42
  • grffile would have been my first guess as well, but remember: spaces in filenames are evil chat.stackexchange.com/transcript/message/13311129#13311129 – Johannes_B May 27 '14 at 7:42
  • 1
    The kpathsea file library used by most TeX distributions allows " to be used to quote a filename containing bad characters like spaces so "\runI/LaTeXFile.png" should work – David Carlisle May 27 '14 at 8:28
  • @DavidCarlisle I made a test and needed the analog of "\runI/LaTeXFile".png. But this is on TL2010, if it matters. – user4686 May 27 '14 at 14:03
2

The kpathsea file library used by most TeX distributions allows " to be used to quote a filename containing bad characters like spaces so

 "\runI/LaTeXFile.png"

should work for \IfFileExists however as pointed out by jfbu the \includegraphics macro would see that as an unknown extension .png" so for \includegraphics you would want

 "\runI/LaTeXFile".png

To quote the spaces while leaving the .png extension visible.

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.