I have an article with many TikZ pictures. In order to make the code more clear and to save compilation time, I want to remove the TikZ code from the main document. I read that this is possible with the tikzlibrary "external". (for example see this question).
But I am not sure, where to write which commands?
What do I write in the file/the files which consists only of the code for the tikz pictures?
What and where do I write in the main document in order to import the pictures?
Best Answer
There are two questions hidden in your post, they have two answers that are basically orthogonal:
Speeding up compilation by using
tikzexternalize
:You don't actually have to write them into separate files to save compilation time. You can leave your code almost unchanged, that's the beauty of it. This is the simplest possible setup with externalization
This will only run if your LaTeX is set up to run with shell escape (
pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex
, see here for example)Having tidy code, by writing TikZ code into separte files:
Of course you can also store the
\begin{tikzpicture}...\end{tikzpicture}
code in an external.tex
or.tikz
file and use\input
to include it. But that is a matter of taste and does not affect compilation performance.You could write
and into
tikzfigure1.tikz
:I tend to define my own command to include
tikz
files, instead of using\input
in order to take care of one more thing:This will make sure that the externalization is based on the file name (instead of the order) so that it doesn't get confused if you change the orders of TikZ pictures in your document.