【问题标题】:Operating system independent image addressing独立于操作系统的图像寻址
【发布时间】:2010-12-22 23:17:58
【问题描述】:

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

【问题讨论】:

    标签: image latex os-agnostic


    【解决方案1】:

    我也遇到过这个问题,我发现硬编码路径是一个绝对糟糕的主意。此外,一旦您的项目开始增长,保持这些目录同步最终将成为一个问题。

    我解决这个问题的方法是将所有内容都放在版本控制中(我喜欢 git,你的里程可能会有所不同)。

    然后我创建了一个images 文件夹,所以我的文件夹层次结构如下所示:

    工作目录 |-- 图片/ |-- 我的文件.tex |-- 下一个文件.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 指定多个路径我想知道如果你只包含所有路径(一个用于图像,一个用于 linux 上的日志,一个用于您在 Windows 上的徽标)?

    【讨论】:

    • 重点是在文档源命令\includelogo[width=2cm]{\logo name} 中,而不用关心文档在哪里以及使用什么系统。只需更改main.tex文件中的一个参数(在Win和linux之间切换)并保持.sty文件与徽标目录位置同步...我认为\graphicsparh命令会将所有\incudegraphics'地址重定向到images/目录,所以它不完全是我想要的。我会试试你的代码来缩短其他图片的使用时间,谢谢。
    • 所有的图片不能放在同一个目录下有什么原因吗?
    • 由于许多文档的徽标要相同,因此图像仅适用于一两个文档。我在研讨会作品和演示文稿的论文标题页中使用它们。是的,它们都可以在一个目录中,或者在每个工作区中。我曾经这样做过,但它充满了混乱。通过这种方式,我希望它会更有条理,更容易更新。
    • 在我的回答中添加了一点点:P
    • 把它放在你的序言中。我不确定前言/反斜杠,Windows 在文件路径方面很糟糕;)我会尝试将文件路径放在引号中。
    【解决方案2】:

    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} 来自img/ 目录`

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      相关资源
      最近更新 更多