Maybe this is expected behaviour, but it's not documented in the manual, and it certainly surprised me.
When you use the draft
class option and use the tikz
external
library, all Tikz pictures are replaced by a box with the name of the externalized graphic.
MWE:
\documentclass[draft]{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle [radius=1];
\end{tikzpicture}
\end{document}
The fact that it displays the correct filename leads me to think it's the external
library doing this, because whilst I know that pgf
itself does a similar thing with the draft
option, I wouldn't expect it to know the filename (and anyway, I haven't loaded pgf
directly, and I think it only obeys draft
when called directly.)
However, commenting out the \tikzexternalize
line gives the picture.
I'm not saying that this behaviour wouldn't often be useful! However, it's not what I'd prefer in what I'm working on, and as it isn't documented I don't know what I can do about it.
I can try and work around it, and not use draft
but it's in a big document that already does several different things depending on whether draft
is set.
What are my options?
draft
mode effect graphics that included form external files, which is what\tikzexternalize
does, and does not effect thetikzpicture
environment as it is not a graphic that is included, but rather just some code that gets typeset.pgf
to know the filenames of the externalized pictures (e.g. main-texfile-figure0), since they're generated by theexternal
library. That wasn't very clear, I'll edit it.external
does is to create the graphic in the first place. But once it is created then it is included back in via\includegraphics
and what you are seeing is the effect of thedraft
option on thegraphicx
package. However, I would say that this is definitely Not Obvious Behaviour and there's no reason why one would guess that (especially asgraphicx
is loaded viapgf
so one might not know it was being used).