使用绝对路径和 MiKTeX 分发的 TikZ 外部化

使用绝对路径和 MiKTeX 分发的 TikZ 外部化

此代码:

\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 树是没用的——您的问题在于写入而不是读取。

相关内容