Graphicspath 和 standalone

Graphicspath 和 standalone

我有一个具有以下文件结构的独立设置

A
├── A.tex
└── sections
    ├── B
    │   ├── Bimages
    │   │   └── cat.png
    │   └── B.tex
    └── C
        ├── Cimages
        └── C.tex

我有一个名为 A 的主 tex 文件和两个子文件 B 和 C,其中 A 的内容是标题页,然后是 B 和 C 连接在一起。B 有自己的图像目录,在 B.tex 中使用引用\graphicspath{ {./Bimages/} },C 类似地有 ./Cimages/。B 和 C 可以单独编译得很好,但是,当我编译 A 时,我得到LaTeX Warning: File Bimages/cat.png not found on input line 89.

这是独立版的预期行为吗?它不会考虑子目录中的相对文件路径吗?如果是这样,有没有办法解决这个问题,以便我可以将图像组织到单独的文件夹中(最好不必\graphicspath{ {./sections/B/Bimages} {./sections/C/Cimages} }在 A.tex 中这样做,因为将来我可能会有更多类似的目录。

答案1

因为你的问题很有趣,而且有人在使用 OpTeX 时可能会遇到类似的问题,所以我在这里给出了 OpTeX 解决方案。请注意,OpTeX 不是 LaTeX,如果你使用的是 LaTeX,那么我的答案不适合您。

OpTeX 声明包含图形的令牌寄存器\picdir,当然,还有一个等效的控制序列\_picdir,它是相同的令牌寄存器。假设您在文件\picdir{Bimages/}B.tex和文件\picdir{Cimages/}中都有。然后您可以在或独立C.tex运行 OpTeX 。B.texC.tex

在主文件中A.tex,您可以停用\picdir并仅使用\_picdir。 的一部分A.tex可能如下所示:

\let\picdir=\ignoreit
\_picdir{B/Bimages/}
\input B/B.tex
\_picdir{C/Cimages/}
\input C/C.tex
\bye

答案2

您可能需要更改导入子文件的方式

\input只需在编译之前将 B.tex 的文本内容复制到 A.tex 中即可。
这会让 A 在其主目录(即 /A/)中查找图形路径

\include(我认为)为每个子文件创建辅助文件,因此可能能够找到正确的子路径(例如 /A/B/Bimages/)

我没有测试过这个!

以供参考


如果这不起作用,那么您可以切换到使用图像的全局路径
(例如,"~/foo/bar/A/B/Bimages/"而不是"./B/Bimages/")。

相关内容