[Tex/LaTex] Why this error in the TikZ and preview package

previewtikz-pgf

This minimal example produces an error (undefined control sequences):

% !TEX TS-program = pdflatexmk

\documentclass{article}

\usepackage{tikz}
\usepackage{preview}

\begin{document}

Hello.

\end{document}

Once the tikz package is removed, it compiles fine. Removing either usepackage commands allows the program to compile. Moreover, including both, but adding the [active] option to preview allows the script to compile.

I've pasted the log file here.

Best Answer

Ulrike Fischer has noted that this is a current bug report listed here and here. I include a short guide so as to preserve the suggested solution.

Run kpsewhich pgfutil-latex.def on the command line to detect the location of the def file. Search for an \AtBeginDocument command that addresses the preview package. Change the previous codeblock to the following:

\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
}{}%
}