我有一个大型文档,其中包含大约 100 个较小的文件,这些文件使用子文件包一起编译。为了能够对它们使用一个通用样式文件,其相对路径应该与每个可编译文件的路径相同,我使用以下文件夹结构:
Project folder
projectstyle.sty
-- Main folder
main.tex
-- Subfolder 1
subfile1a.tex
subfile1b.tex
-- Subfolder 2
subfile2a.tex
subfile2b.tex
和写
\usepackage{../projectstyle}
在文件 main.tex 的顶部。但是,由于项目很大,包含很多 tikz 文件,编译现在需要相当长的时间。我可以使用 tikz/pgf 包中的 externalize 命令来加快主文件的编译速度,例如编写
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]
在主文件的顶部。这在编译主文件时有效,因为我将一个名为 tikz 的文件夹放在主文件夹中。但是,我也会在编译子文件本身时使其工作,因为这是使用子文件包的全部意义所在。在这里,如果我可以使用文件夹的相对路径来外部化图形,并将其放在与样式文件相同的级别,然后写入,这将是最佳的
\tikzexternalize[prefix=../tikz/]
但这似乎不起作用,因为编译器(pdflatex)抱怨说
! I can't write on file `../../tikz/main-figure0.md5'.
当我尝试编译主文件时。有什么方法可以解决这个问题吗?
我确实意识到一个解决方案是写
\tikzexternalize[prefix=tikz/]
在主文件(或样式文件中)中,然后将一个名为 tikz 的文件夹添加到所有包含可编译文档的文件夹中,但这样一来,我就会有每个图像的两个副本,这似乎相当浪费空间...
答案1
如果真的只是关于磁盘空间(如最后一段所示),您可以使用符号链接而不是 tikz 目录的真实副本。