我在〜/ 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所在的目录结构中,它就可以工作。但我希望将此样式信息用作我所有文档的全局设置,并且不希望将其复制到每个项目中。
感谢您的帮助。
答案 0 :(得分:5)
~
不是Unix中的路径,而是Unix shell扩展到$ HOME的路径。
您可以通过几种方法解决问题:
\homedir
,其值在Latex文件中编码为您家的绝对路径(即$ HOME的内容)。不可移植:如果您将文件移动到另一台机器,它可能无法正常工作。thisfilesystem.sty
。然后,您可以只在机器之间更改此值。这也可以从Makefile自动创建。 \write18
运行echo $HOME
并将其绑定到您\homedir
宏。它是可移植的,但我不建议:你应该养成避免\write18
的习惯,因为它是一个可怕的安全漏洞。我建议#2。
答案 1 :(得分:1)
这是我的脏解决方案(因为很多人说不使用输入,但我想继续:)):
\newcommand{\home}{../..}
\input{\home/latex/styles/info_hypersetup}
如果你找到更好的东西,请告诉我。在texmf.conf中设置output_any = a int的提示不起作用。我正在使用ubuntu。
答案 2 :(得分:0)
<强>问题:强> 您忘记关闭正在创建或编译的pdf。
<强>解决方案:强> 只需关闭您的Adobe阅读器或您正在阅读pdf文件的任何应用程序。