有许多包包含图形文件。例如,rutitlepage
has logo.pdf
、hand.pdf
innotes
等等。
如果我想使用自己的logo.pdf
,我想从子文件夹加载,那么下一个示例将加载包logo.pdf
的rutitlepage
:
\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.pdf
figures/logo.pdf
~/texmf/tex
正如您所见,如果您为文件提供唯一的名称,则行为会更容易描述。myinstitution-logo.pdf
意外发现的可能性要小得多。
就我个人而言(尽管我已经写了它)我不会使用,\graphicspath
如果你使用了\includegraphcs{figures/logo}
那么rutitlepage
就不会找到它。
此外,如果文件具有更具体的名称,\includegraphcs{hair-splitter-logo}
则可以避免大多数问题。