我想使用宏将图形导入到我的主要输入文件中\includegraphics
。如果文件名包含空格,则不起作用。
包含路径目录中带有空格的图像,以便使用 dvips 进行处理也讨论了这个问题,但没有解决方案。
我的编译程序是 latex->dvips->ps2pdf(因为 PSTricks)。
答案1
尝试etoolbox 包:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\Ginclude@eps}{"#1"}{#1}{}{}
\makeatother
...
\includegraphics{"file name.eps"}
该宏\Ginclude@eps
在文件 dvips.def 中定义。\special{PSfile="#1"\space ...
如果使用额外的“”,则会导致问题。我对此进行了修补,使其行为就像编写的一样PSfile=#1
,并且在使用名称和 dvips 中有空格的 eps 文件进行测试时,它对我来说是有效的。
答案2
使用包grffile
:
\usepackage{graphicx}
\usepackage[space]{grffile}
[ ... ]
\includegraphics[...]{A file with spaces}
答案3
一个更简单的解决方案是......
\includegraphics{{"../Current folder/1.This file"}.png}
(对于 Windows 用户)请注意,所有斜杠都必须是正斜杠。
答案4
由于这个问题从来没有得到充分的解答,我只想补充一点,对于需要指定文件路径的包中的一些命令,如果将空格放在引号中(即" "
),这也会起作用(当然,取决于包以及程序员如何设计包)。
例如:
% Preamble
\newcommand{\relativedir}{./../../Some/Directory/Directory" "Name}
...
...
% Within the Document
\input{\relativedir/NameOfFile.tex}
这将包括一个文件../../Some/Directory/Directory Name/NameOfFile.tex
(例如,在相对目录中:单点./
代表当前目录,双点../
代表层次结构中较高目录)。