
我有一個大文檔,其中包含約 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 目錄的真實副本。