为什么 TikZ 和预览包中会出现这个错误?

为什么 TikZ 和预览包中会出现这个错误?

这个最小的例子会产生一个错误(未定义的控制序列):

% !TEX TS-program = pdflatexmk

\documentclass{article}

\usepackage{tikz}
\usepackage{preview}

\begin{document}

Hello.

\end{document}

一旦删除 tikz 包,它就可以正常编译。删除任一 usepackage 命令都可以让程序编译。此外,包括两者,但将 [active] 选项添加到预览中可以让脚本编译。

我已粘贴日志文件这里

答案1

Ulrike Fischer 指出,这是一份当前列出的错误报告这里这里。我附上了一份简短的指南,以便保留建议的解决方案。

kpsewhich pgfutil-latex.def在命令行上运行以检测 def 文件的位置。搜索针对预览包的 \AtBeginDocument 命令。将上面的代码块更改为以下内容:

\AtBeginDocument{
\@ifpackageloaded{preview}{%
% Ok, package loaded. Swap definitions of everyshi.sty's shipout
% and preview.sty's shipout:
\ifPreview
\let\shipout\@EveryShipout@Org@Shipout%This is the null version of \shipout, created by preview and saved by everyshi
\let\@EveryShipout@Org@Shipout\pr@shipout% This is the original shipout
\let\pr@shipout\@EveryShipout@Shipout%
\fi
}{}%
}

相关内容