图形文件的搜索顺序

图形文件的搜索顺序

有许多包包含图形文件。例如,rutitlepagehas logo.pdfhand.pdfinnotes等等。

如果我想使用自己的logo.pdf,我想从子文件夹加载,那么下一个示例将加载包logo.pdfrutitlepage

\documentclass{article}
\usepackage{graphicx}
\graphicspath{{figures/}}
\begin{document}
\includegraphics[width=5cm]{logo}
\end{document}

能否解决这个问题,即编译器首先在当前目录中搜索图形文件,然后在图形路径中搜索,最后在包中搜索?

答案1

该包首先搜索无前缀的名称,然后搜索以图形路径中的每个段为前缀的名称,因此首先查找,logo.pdf如果失败,则查找figures/logo.pdf

假设基于 web2c 的 TeX 在每次尝试中使用 kpathsea(miktex、texlive 等),将搜索 TEXINPUTS 路径,但路径中以 !! 为前缀的 tex 输入树的部分将仅通过预先计算的 ls-R 文件数据库进行搜索。

因此通常它会首先在当前目录中查找,然后在其下的任何位置查找~/texmf/tex(在查找时logo.pdf),然后它会(在我的系统上)在标准搜索目录中找到 它,然后如果没有找到该文件,它会在当前目录下/usr/local/texlive/2018/texmf-dist/tex/latex/rutitlepage/logo.pdf 查找,然后在标准搜索中预先索引的任何位置 查找。figures/logo.pdffigures/logo.pdf~/texmf/tex

正如您所见,如果您为文件提供唯一的名称,则行为会更容易描述。myinstitution-logo.pdf意外发现的可能性要小得多。


就我个人而言(尽管我已经写了它)我不会使用,\graphicspath如果你使用了\includegraphcs{figures/logo}那么rutitlepage就不会找到它。

此外,如果文件具有更具体的名称,\includegraphcs{hair-splitter-logo}则可以避免大多数问题。

相关内容