LaTeX 不会包含来自其他目录的内容

LaTeX 不会包含来自其他目录的内容

我使用的是 Mac、OS X 10.10.1、TeXLive,所有软件包都是最新的。MacTeX-2014 发行版。

该文档基于该moderncv包并使用multibib。我可以在该文件上运行 LaTeX,它会生成所需的三个.aux文件,每个参考书目一个。

然后我尝试在终端窗口中使用bibtex以下命令对每个文件进行运行.aux

bibtex /Users/mbc/Desktop/moderncv/examples/book.aux 

bibtex返回以下错误

bibtex: Not writing to /Users/mbc/Desktop/moderncv/examples/book.blg (openout_any = p).
I couldn't open file name `/Users/mbc/Desktop/moderncv/examples/book.blg'

我尝试使用相同的命令运行sudo- 出现与上述相同的错误。搜索解决方案建议texmf.cnf编辑文件以更改openout_any = popenout_any = a,但我根本无法texmf.cnf在我的计算机上找到。

我怀疑 MacTeX-2014 发行版中的配置处理方式有所不同。

任何指点都将不胜感激。

答案1

根据TeX 常见问题解答,评论中引用:

LaTeX 不会包含来自其他目录的内容

你想这样做\include{../bar/xyz.tex},但 LaTeX 说:

latex: Not writing to ../bar/xyz.aux (openout_any = p).
! I can't write on file `../bar/xyz.aux'.

该错误源自 TeX 的保护,即禁止写入非文档所在目录的子目录。(该限制可防止因使用 LaTeX 处理他人的恶意或损坏的文档而引起的问题。如果此类文档覆盖了您想要保留的内容,则显然可能会造成严重破坏。)

可能导致此问题的文档目录结构看起来像虚构的我的书

./base/mybook.tex
./preface/Preface.tex
./preface/***
./chapter1/Intro.tex
...

有了这样的结构,任何文档目录(除了所在的目录mybook.tex)似乎都位于基目录的“上方”。(对此类文件的引用将如下所示 \include{../preface/Preface}:“..”是提示。)

但它为什么想要写呢?——“我发生了什么事 \include\include通过.aux 为每个\included 文件编写一个文件来 解释工作原理。

解决这个问题的方法往往是激烈的:

重新构建保存文档的目录,以便主文件位于树的根目录:

./mybook.tex
./mybook/preface/Preface.tex
./mybook/preface/***
./mybook/chapter1/Intro.tex
...

等等。

您真的需要\include? — 如果不需要,您可以用 替换\include 整个\input过程。(这仅在您不需要 时才有效 \includeonly。)您可以修补您的系统texmf.cnf— 如果您知道自己在做什么,错误消息应该足以提示您;绝对不建议执行此操作,这留给那些在这方面可以“自助”的人。

答案2

很多时候,不需要修补/编辑 texmf.cnf。而是从主 tex 文件的根目录创建一个符号链接,指向执行 \include 或 \includeonly 的目录(\input 不需要符号链接)。

相关内容