![使 \externalfigure[] 仅查看 ConTeXt 文件的当前目录的正确方法是什么?](https://linux22.com/image/303832/%E4%BD%BF%20%5Cexternalfigure%5B%5D%20%E4%BB%85%E6%9F%A5%E7%9C%8B%20ConTeXt%20%E6%96%87%E4%BB%B6%E7%9A%84%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我正在尝试如下的文档目录结构:
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.tex
和image.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]}
。这是一个好的解决方案吗?我该怎么做?