You can use the standalone
class for this. In v0.x it used preview
internally, but for v1.x it also has an alternative crop
option, which works similar to the preview
option/package, but avoids its issues with XeTeX.
There is now (v1.0) also a tikz
class option which turns any (outer) tikzpicture
into a single tight page. This avoids issues with trailing implicit paragraphs. In addition it automatically loads the tikz
package.
% tikzpic.tex
\documentclass[crop,tikz]{standalone}% 'crop' is the default for v1.0, before it was 'preview'
%\usetikzlibrary{...}% tikz package already loaded by 'tikz' option
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (10,10); % ...
\end{tikzpicture}
\end{document}
Then compile it as usual with pdflatex
or xelatex
etc.
To include this tikzpicture
into a main document load the standalone
package there with the option mode=buildnew
. Then use \includestandalone[<options>]{<filename>}
instead of \includegraphics
. This will compile all includes standalone files automatically as graphics and build these graphics if the source file is newer than the existing graphics file. This needs -shell-escape
to be enabled to allow the main LaTeX run to call further LaTeX compilers.
See the standalone
manual for more details.
% main.tex
% compile with `pdflatex -shell-escape main` or `xelatex -shell-escape main`
\documentclass{article}
\usepackage[mode=buildnew]{standalone}% requires -shell-escape
\usepackage{tikz}
%\usetikzlibrary{...}
\begin{document}
Lorem ipsum ...
\includestandalone[width=.8\textwidth]{tikzpic}
Lorem ipsum ...
\end{document}
preview
package, which is not what you want - see the answer using TikZ'sexternal
library instead.)standalone
class option which crops atikzpicture
or similar but doesn't usepreview
. This should also avoid issues like this.