此代码:
\documentclass[11pt,openright]{book}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[british]{babel}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix={"C:/Users/MyName MySurname/Documents/LaTeX/Figures/"}]
%\tikzexternalize[prefix={Figures/}]
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1cm);
\end{tikzpicture}
\end{document}
给了我错误:
!我无法在文件“C:/Users/MyName MySurname/Documents/LaTeX/Figures/MyMWE-figure0.md5”上写入。
我正在使用 Windows 10、MiKTeX 2.9 发行版。
按照 Tarass 在该问题的评论中给我的建议:pgf 外部化的绝对路径如下表所示:http://docs.miktex.org/manual/localadditions.html我已经注册了一个用户管理的 TEXMF 目录,但仍然出现同样的错误。
一切\tikzexternalize[prefix={Figures/}]
运行正常,但是由于我使用的是 LyX,文件存储在 LyX 临时目录中,因此当我关闭程序时它们会丢失(使外部化无用),所以我需要使用绝对路径。
答案1
正如您链接的问题中的评论中提到的那样,可以通过创建环境变量来允许 miktex 写入绝对路径
MIKTEX_ALLOWUNSAFEOUTPUTFILES
并将其设置为值1
。
然后,如果我避免使用带有空格的路径,那么外部化到绝对路径对我来说就可以了。
但我不建议这样做。这非常不安全,您允许 miktex 在任何地方写入,这意味着它可以在没有任何警告的情况下破坏其他文件夹中的数据。
设置TEXINPUTS
或创建一些本地 texmf 树是没用的——您的问题在于写入而不是读取。