
У меня есть большой документ, состоящий из ~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, компиляция теперь занимает довольно много времени. Я могу ускорить компиляцию основного файла, используя команду externalize из пакета tikz/pgf, написав, например,
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]
в верхней части основного файла. Это работает при компиляции основного файла, учитывая, что я поместил папку с именем tikz в папку Main. Однако я бы также сделал это работающим при компиляции подфайлов, поскольку в этом и заключается весь смысл использования пакета подфайлов. Здесь было бы оптимально, если бы я мог использовать относительный путь к папке, в которую нужно вынести графику, и поместить ее на тот же уровень, что и файл стилей, а затем написать
\tikzexternalize[prefix=../tikz/]
но это, похоже, не работает, так как компилятор (pdflatex) жалуется, что
! I can't write on file `../../tikz/main-figure0.md5'.
когда я пытаюсь скомпилировать основной файл. Есть ли способ обойти это?
Я понимаю, что одним из решений было бы написать
\tikzexternalize[prefix=tikz/]
в основном файле (или в файле стилей), а затем добавить папку с именем tikz во все папки, содержащие компилируемые документы, но тогда у меня будет две копии каждого изображения, что, по-моему, пустая трата места...
решение1
Если речь действительно идет только о дисковом пространстве (как указано в последнем абзаце), вы можете использовать символические ссылки вместо реальных копий каталога tikz.