操作系统独立的图像寻址

时间:2009-12-03 19:18:21

标签: image latex os-agnostic

由于在我的计算机上同时使用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}

2 个答案:

答案 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/