由于在我的计算机上同时使用Windows和Ubuntu,我希望能够独立创建文档。我有一个徽标目录,我想在任何文档中使用它们。
我用这些命令解决了不同文件寻址的问题:
\newcommand{\winlogo}{D:/logo/}
\newcommand{\linlogo}{/media/DATA/logo/}
\includegraphics{\winlogo logo_bw}
如何提供此功能:
if(parameter==windows){adress:=D:/logo/}
elseif(parameter=linux){adress:=/media/DATA/logo}
else{error}
答案 0 :(得分:4)
我也遇到过这个问题,我发现对路径进行硬编码是一个绝对可怕的想法。此外,一旦项目开始增长,保持这些目录同步最终将成为一个问题。
我解决这个问题的方法是将所有内容都放在版本控制中(我喜欢git,你的里程可能会有所不同)。
然后我创建了一个images
文件夹,因此我的文件夹层次结构如下所示:
工作-DIR | - images / | - myfile.tex | - nextfile.tex
然后在我的文档的序言中:\usepackage{graphicx}
和\graphicspath{{images/}}
告诉latex查找名为images
的文件夹,然后在文件夹中查找图形。
然后我在comp上完成我的工作,将完成的工作推回到repo,当我切换计算机时,我只是从我的repo中拉出来。这样,无论我在哪台计算机上工作,一切都保持同步。
像源代码一样处理tex源极大地改善了我的工作流程和效率。对于处理大量乳胶来源的人,我建议采取类似措施。
修改强>:
来自:http://en.wikibooks.org/wiki/LaTeX/Importing_Graphics
图形存储
有一种方法可以告诉LaTeX在哪里 寻找图像:例如,它可以 存储图像时非常有用 集中用于许多不同的 文档。答案就在于 你提供的命令\ graphicspath 用一个给出一个名字的参数 您想要的其他目录路径 在文件使用时搜索 \ includegraphics命令,这里是 一些例子:
\graphicspath{{c:\mypict~1\camera}}
\graphicspath{{/var/lib/images/}}
\graphicspath{{./images/}}
\graphicspath{{images_folder/}{other_folder/}{third_folder/}}
请看 http://www.ctan.org/tex-archive/macros/latex/required/graphics/grfguide.pdf
你可能已经注意到,在第一个 例子我用过“安全”(MS-DOS) Windows MyPictures文件夹的形式 因为使用它是个坏主意 包含空格的目录名称。 使用绝对路径,\ graphicspath 确实使你的文件不那么便携 同时使用相对路径(如 最后一个例子),你不应该有任何 可移植性问题,但请记住 不要在文件名中使用空格。 或者,如果您正在使用 PDFLaTeX,你可以使用这个包 grffile然后允许你 在文件名中使用空格。
第三个选项应该做得很好 - 只需指定\graphicspath
的多个路径我想知道如果你只是在那里包含所有路径,LaTeX是否会优雅地失败(一个用于图像,一个用于登录linux,一个用于Windows上的徽标)?
答案 1 :(得分:0)
Mica,再次感谢你,你的建议正常!
我在前言中测试了这段代码,在.sty
文件中它不起作用:
\usepackage{graphicx}
\graphicspath{{/media/DATA/logo/}{d:/logo/}{img/}}
,其中
/media/DATA/logo/
是Linux目录中已挂载分区上的徽标的地址
d:/logo/
是Windows中同一目录的地址
img/
是实际工作目录中当前文档的图像地址
和文档中的代码:
来自\includegraphics{logo_zcu_c}
目录的 logo
来自\includegraphics{hvof}
dir`
img/