我试图将序言链接到页眉中使用的一些图片。我的问题是我在多个文档中使用了相同的序言。
假设序言和所需的图片位于顶部文件夹中,并且我有两个不同的主文件用于两个不同的报告,每个文件位于自己的子文件夹中。
当我调用序言时,我收到一个错误,告诉我图片的路径不正确。据我所知,似乎我需要两个序言,其中包含从包含文件夹到序言图片的路径。(这有点剥夺了序言的概念)
文件夹结构:
work
preamble
pics
project1
main.tex
project2
main.tex
我希望在我的序言中我能做到这一点
\includegraphics[scale=0.5]{pics/image.png}
我已经尝试设置这个命令main.tex
\newcommand{\folder}{/path/to/pic}
\includegraphics[scale=0.5]{\folder/pics/image.png}
但那也不起作用。
有人知道如何解决这个问题吗?(我希望我已经把问题说清楚了)
答案1
您可以使用以下方式定义搜索路径\graphicspath
我想你可以在序言中写一些类似的东西:
\graphicspath{{./}{/path/to/pic/}}
\includegraphics
将首先在当前目录中搜索 ( ./
),然后在/path/to/pic
这样你的图片就可以用作:
\includegraphics[scale=.5]{pics/image}
将image.png
首先搜索为./pics/image.png
,如果没有找到,则搜索为/path/to/pic/pics/image.png
提示:你不应该添加'.png':image
而是写image.png
其他可能性:
您必须将您的“序言”转换为 TeX 包,方法是将所有序言文件夹移动到您的个人 TEXMF 树中(或者,如果您在 Linux 上工作,则创建符号链接)或在您的序言文件夹中进行 TeX 分发搜索。
第三种选择:
在聪明的操作系统,您可以创建符号链接指向前导文件夹,并使用相对路径访问图片。如果您移动主文件夹,则只需调整此链接即可。
在 Linux 上,名为“文件夹”的符号链接创建如下:
ln -s /path/to/target/folder folder
答案2
如果您添加\RequirePackage{currfile}
到每个main.tex
文件中,那么如何使用类似于\let\preamblepath\currfiledir
序言中的内容,然后您可以这样做\includegraphics{\preamblepath/pics/image.png}
?
或者,不带currfile
,在每个中main.tex
,做
\def\preamblepath{../preamble}
\input{\preamblepath/preamble.tex}
\preamblepath
然后你仍然可以用同样的方式参考。
答案3
我确实找到了解决方案,CyberSingularity 的答案为我指明了正确的方向。
这实际上非常简单。
如果我在 documentclass 之前定义 newcommand \folder 它就可以工作。:)