如何在LaTeX中启用绝对路径

时间:2010-05-21 19:42:20

标签: latex

我在〜/ my_files / test.tex下有一个文档,想在test.tex中包含一些样式信息,可以在〜/ latex / styles / info_hypersetup.tex下找到。

当我在test.tex中包含以下语句时:

%% setting the infos for the pdf
\include{home/helex/latex/styles/info_hypersetup.tex}

运行pdflatex test.test时出现以下错误:

! I can't write on file `~/latex/styles/info_hypersetup.tex.aux'.

我将权限设置为777,但这并没有改变任何内容。如果我将info_hypersetup.tex放在test.tex所在的目录结构中,它就可以工作。但我希望将此样式信息用作我所有文档的全局设置,并且不希望将其复制到每个项目中。

感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

~不是Unix中的路径,而是Unix shell扩展到$ HOME的路径。

您可以通过几种方法解决问题:

  1. 定义一个宏\homedir,其值在Latex文件中编码为您家的绝对路径(即$ HOME的内容)。不可移植:如果您将文件移动到另一台机器,它可能无法正常工作。
  2. 使用相对路径:这就是您的解决方案所做的事情。如果你移动文件的子层次结构,并且注意它们是自包含的,那么这很有效。
  3. 使用各种目录的硬编码值创建自己的样式文件,例如thisfilesystem.sty。然后,您可以只在机器之间更改此值。这也可以从Makefile自动创建。
  4. 使用\write18运行echo $HOME并将其绑定到您\homedir宏。它是可移植的,但我不建议:你应该养成避免\write18的习惯,因为它是一个可怕的安全漏洞。
  5. 我建议#2。

答案 1 :(得分:1)

这是我的解决方案(因为很多人说不使用输入,但我想继续:)):

\newcommand{\home}{../..}
\input{\home/latex/styles/info_hypersetup}

如果你找到更好的东西,请告诉我。在texmf.conf中设置output_any = a int的提示不起作用。我正在使用ubuntu。

答案 2 :(得分:0)

<强>问题: 您忘记关闭正在创建或编译的pdf。

<强>解决方案: 只需关闭您的Adobe阅读器或您正在阅读pdf文件的任何应用程序。