这个最小的例子会产生一个错误(未定义的控制序列):
% !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
}{}%
}