使用 tikz externalize + 子文件时的相对路径

使用 tikz externalize + 子文件时的相对路径

我有一个大型文档,其中包含大约 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 目录的真实副本。

相关内容