尝试编译 TikZ 图片时出现 Windows API 错误 5:“访问被拒绝”

尝试编译 TikZ 图片时出现 Windows API 错误 5:“访问被拒绝”

我安装了 PGF 但无法编译以下文档:

\documentclass[10pt]{article}
\usepackage{pgf,tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) --(1,2);
\end{tikzpicture}
\end{document}

这是控制台输出:

initexmf.exe: Windows API error 5: Access is denied.

initexmf.exe: Data: C:\
texify.exe: The operation failed for some reason.
texify.exe: Data: C:\Program Files\MiKTeX 2.9\miktex\bin\initexmf.exe

该怎么办?

答案1

您必须授予自己在MiKTeX 2.9文件夹中读取和写入的权限。

转到Program Files并右键单击MiKTeX 2.9文件夹。然后单击属性 > 安全选项卡 > 编辑按钮。从列表中选择用户 (Bla/Bla) 并检查所有授权。

如果这还不够,请单击“安全”选项卡上的“高级”按钮。弹出一个名为“文件夹名称的高级安全设置”的窗口。然后单击“审核”选项卡 >“继续”按钮 >“添加”按钮。Users在“输入要选择的对象名称”下键入,然后单击“确定”。

或者,干脆不要把您的MiKTeX 2.9文件夹放入Program Files

答案2

这似乎是 MiKTeX 和其他软件(可能是 Adob​​e Reader)之间的某种冲突。

我四处寻找,找到了以下相关帖子,其中有一个解决方案。它是关于安装的,而不是编译的,但原因和修复应该是相同的:
http://entangled.wordpress.com/2009/09/18/installation-of-miktex-2-8-failed/

已发布可能的解决方案作为评论

我找到了真正的解决方案:)
运行regedt32.exe,然后导航到HKEY_CLASSES_ROOT\.pdf
右键单击.pdf,单击权限,并授予管理员完全权限。

答案3

我找到了另一个可能的解决方案:确保您的 TMP 环境变量指向可写的源。例如,我将 TEMP 和 TMP 环境变量(系统 -> 高级 -> 环境变量)更改为 C: 以外的驱动器,但我意外地将 TMP 实例指向 D: 驱动器而不是 E:——前者是不可写的。当我修复 TMP 路径时,MikTeX 安装/删除的 API 访问错误 5 得到解决。

希望这对某人有帮助。

答案4

我在安装 MiKTeX 时也遇到了同样的错误。为了解决这个问题,我右键单击下载的 MiKTeX 安装文件,选择“以管理员身份运行”,然后选中“为所有用户安装”框。之后一切都正常了。

相关内容