1

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

2 回答 2

4

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

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

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

工作目录 |-- 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

您可能已经注意到,在第一个示例中,我使用了 Windows MyPictures 文件夹的“安全”(MS-DOS) 形式,因为使用包含空格的目录名称是个坏主意。使用绝对路径,\graphicspath 确实使您的文件的可移植性降低,而使用相对路径(如最后一个示例),您不应该对可移植性有任何问题,但请记住不要在文件名中使用空格。或者,如果您使用的是 PDFLaTeX,您可以使用 grffile 包,它允许您在文件名中使用空格。

第三个选项应该对你有好处 - 只需指定多个路径\graphicspath我想知道如果你只是在其中包含所有路径(一个用于图像,一个用于 Linux 上的日志,一个用于 Windows 上的徽标),LaTeX 是否会优雅地失败)?

于 2009-12-03T19:37:33.387 回答
0

云母,再次感谢您,您的建议很有效!

我已经在序言中测试了这段代码,在.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/`

于 2009-12-11T13:37:26.940 回答