我知道我可以用 检查文件是否存在\IfFileExists{}{}{}
。是否也可以获取找到的文件的绝对路径?
我之所以问这个问题,是因为我有一个自定义的 documentclass,它有一个 images 子文件夹,里面有一些 SVG 文件。我不想将这些文件复制到所有使用该 documentclass 的项目中。为了包含我拥有的 SVG,请执行以下操作:
\newcommand{\includesvg}[2]{%
\ifx\svgwidth\undefined%
\def\svgwidth{\linewidth}%
\fi%
\filemodCmp{#1#2.svg}{\the\output@directory/#2.pdf}{%
\ShellEscape{inkscape -z -D --file=#1#2.svg --export-pdf=\the\output@directory/#2.pdf --export-latex}%
\input{#2.pdf_tex}%
}{%
\input{#2.pdf_tex}%
}%
}
然后像这样使用:\includesvg{images/animals/}{cat}
。但是中的参数inkscape --file=#1#2.svg
是相对于当前目录的。所以我需要添加正确的绝对路径。有什么想法吗?
我正在使用 LuaLaTeX,所以如果我需要使用 Lua,那也可以。
如果不可能的话,我可能会尝试将图像复制到\output@directory
,但随后我将不得不处理扁平的目录树,而我现在宁愿不这样做。