客观的
我想创建一个命令,使我能够将以逗号分隔的列表形式将路径集合添加到我的图形路径中,旁边是我不会包含的每个路径的一堆其他指令。为了附加图形路径,我使用了 @egreg 编写的代码,请参阅关联。结果是\setDependentPaths
,请参见下面的 MWE。
问题
在 MWE 中,我将图像放在image.png
相对文件夹中mypath/Resources/Images
。因此,我想将其添加mypath
为“依赖路径”。如果我使用\includegraphics
注释掉的命令编译文档,则不会产生错误。当我不注释掉它时,它会产生以下错误:
! Undefined control sequence.
\p ->\@nil
我怀疑循环变量\p
是按字面意思使用的,例如\p/Resources/Images
将 用作图形路径而不是mypath/Resources/Images
。但是,我不确定,即使是这样,我也不知道如何解决它。
有人有任何线索吗?
平均能量损失
\documentclass{book}
% Load packages
\usepackage{graphicx}
% Set graphics path
\graphicspath{
{Resources/Images/}
}
% Enable appending to graphics path
\makeatletter
\newcommand{\appendGraphicsPath}[1]{%
\g@addto@macro\Ginput@path{#1}%
}
\makeatother
% This command loops over a comma-separated list to add graphics paths
\makeatletter
\newcommand{\setDependentPaths}[1]{%
\@for\p:=#1\do{%
\appendGraphicsPath{{\p/Resources/Images/}}%
}%
}
\makeatother
% Set the paths that my document depends on
\setDependentPaths{mypath,anotherpath}
\begin{document}
A title
\includegraphics{image.png}
\end{document}
答案1
你需要\p
扩展
\expandafter\appendGraphicsPath\expandafter{\expandafter{\p