使用 tikz externalize + 子檔案時的相對路徑

使用 tikz externalize + 子檔案時的相對路徑

我有一個大文檔,其中包含約 100 個較小的文件,這些文件是使用 subfiles 套件編譯在一起的。為了能夠使用它們的通用樣式檔案(每個可編譯檔案的相對路徑應該相同),我使用以下資料夾結構:

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 的資料夾,這在編譯主檔案時有效。然而,我也會在自己編譯子檔案時完成這項工作,因為這就是使用 subfiles 套件的全部意義。在這裡,如果我可以使用外部化圖形的資料夾的相對路徑,並將其放在與樣式檔案相同的級別,然後編寫,那將是最佳的

\tikzexternalize[prefix=../tikz/] 

但這似乎不起作用,因為編譯器(pdflatex)抱怨說

! I can't write on file `../../tikz/main-figure0.md5'.

當我嘗試編譯主文件時。有什麼辦法可以解決這個問題嗎?

我確實意識到一種解決方案是寫

\tikzexternalize[prefix=tikz/]

在主文件(或樣式文件)中,然後將一個名為tikz 的資料夾添加到包含可編譯文檔的所有資料夾中,但隨後我將每個圖像都有兩個副本,這似乎相當浪費空間. .....

答案1

如果它確實只是關於磁碟空間(如上一段所示),您可以使用符號連結而不​​是 tikz 目錄的真實副本。

相關內容