如何使用 \IfFileExist{FileName}{}{} 并在 FileName 中使用空格

如何使用 \IfFileExist{FileName}{}{} 并在 FileName 中使用空格

有谁知道我如何使用\IfFileExist{}{}{}带空格的文件名?

fe 没有起作用

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

工作

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

我能做什么?谢谢

答案1

从 2019-10-01 版本开始,LaTeX 会"在后台自动使用引用功能,因此所有这些都应该可以正常工作,而用户不需要任何明确的引用

\IfFileExists{space name.foo}{yes}{no}

\input{my tex file}

\includegraphics{my picture}

\includegraphics{my picture.png}

尽管添加了此功能,但仍然建议用户不要在文件名中添加空格。


原始答案

大多数 TeX 发行版使用的 kpathsea 文件库允许"使用引号来引用包含空格等不良字符的文件名,因此

 "\runI/LaTeXFile.png"

应该可以工作,\IfFileExists但是正如 jfbu 指出的那样,\includegraphics宏会将其视为未知扩​​展,.png"因此\includegraphics您需要

 "\runI/LaTeXFile".png

引用空格,同时保持.png扩展名可见。

相关内容