使 \externalfigure[] 仅查看 ConTeXt 文件的当前目录的正确方法是什么?

使 \externalfigure[] 仅查看 ConTeXt 文件的当前目录的正确方法是什么?

我正在尝试如下的文档目录结构:

proj/proj.tex
proj/env.tex
proj/product/product.tex
proj/product/entries/comp1/entry.tex
proj/product/entries/comp1/image.pdf
proj/product/entries/comp2/entry.tex
proj/product/entries/comp2/image.pdf

我正在project.tex从目录内部进行编译proj/product

在中comp1/entry.tex,我想comp1/image.pdf使用\externalfigure宏引用文件,而不必指定组件的路径:

\placefigure[][]{caption}{\externalfigure[image]}

我使用以下内容来设置搜索图形的路径:

\setupexternalfigures[directory={entries/comp1}]

但请注意,我还有一个comp2文件夹,其中也有一个entry.teximage.pdf。我尝试在其中输入以下行comp2/entry.tex

\setupexternalfigures[directory={entries/comp2}]

image.pdf并期望它在文件夹中找到该文件comp2,但它却重复使用了文件夹image.pdf中的文件comp1。使用\enabletrackers[graphics.locating]确认这些目录是累积的。

那么,我该如何重置此目录列表?或者有没有更好的方法可以做到这一点,同时又避免我必须将所有文件重命名为唯一的名称?

我尝试过,\setupexternalfigures[location=local]因为文档说这会让 ConTeXt 查看“当前”目录,但“当前”似乎是指产品文件的目录,而不是组件文件的目录。


我的一个想法是定义here某种包含当前子目录的变量,我可以在每个组件中重新定义该变量。然后我就可以使用了\placefigure[][]{caption}{\externalfigure[\here/image]}。这是一个好的解决方案吗?我该怎么做?

相关内容