3

Writting my bachelor thesis (unfortunatelly we are told to use MS Word) I am using Tikz for creating my figures. As I have several tikz-files I am using the standalone package to create a .pdf for each file.

But, when I now change for exmaple the font-size or the font-style I have to recompile every picture manually.

I kow you can compile more than one tikz-file inside the standalone, doing so results in 10 pages with one figure on each. The problem is that they are stored in one pdf-file.

Is there the possibility that the standalone can create a seperate file for each fiure? More, it would be great If I can set the name for those files to recognize them later on.

MWE:

\documentclass[tikz,multi=true]{standalone}
\begin{document}
  \begin{tikzpicture}
    \node{Picture 1};
  \end{tikzpicture}
  ## here I want to break the file to create seperate file with name=picture 2
  \begin{tikzpicture}
    \node{Picture 2};
  \end{tikzpicture}
\end{document}

Picture:

enter image description here

EDIT

After implementing the solution from Ross which seems to do what I intended to do occur in erros:

\documentclass[tikz, multi=true]{standalone}
\usetikzlibrary{external}
\tikzexternalize[prefix=figures/]
\begin{document}
\tikzsetnextfilename{importantFigure}
  \begin{tikzpicture}
   \node{Picture 1};
  \end{tikzpicture}
\tikzsetnextfilename{anotherimportantFigure}
  \begin{tikzpicture}
   \node{Picture 2};
  \end{tikzpicture}
\end{document}

My errors are:

enter image description here

However the pictures are printed and stored in one file each. But rerun the code results still in the error and the pictures are not updated.

  • You can externalise each of the pictures, like here: tex.stackexchange.com/a/1475 – Ross Mar 19 at 14:48
  • @Ross doing so result in an error I cannot resolve, however the pictures are printed, I will cahnge my original post – SRel Mar 19 at 15:34
  • Also, \includegraphics has an undocumented option [page=..], so you really don't need to use multiple files. – John Kormylo Mar 19 at 16:16
  • You need to use article class, not standalone. Compile with --shell-escape enabled. Your MWE works for me with this change. – Ross Mar 20 at 2:52
  • hm... changing to article results in one pdf with the nodes are on one huge page, not two seperate and tight crop files – SRel Mar 20 at 19:36
3

For my thesis I used the following procedure :

  1. Create a header_fig.tex file containing all packages e.g. \usepackage{...} or libraries \usetikzlibrary{...} required for my pictures or settings e.g. \tikzset{...} or \pgfplotsset{}
  2. Create one or more tikz pictures in separate .tikz files with the following format
\documentclasse[tikz]{standalone}
\usepackage{import}
\import{absolute/path/to/the/header_fig/file} 

\begin{document}
    \begin{tikzpicture}
         <All of your favorite tikz code>
    \end{tikzpicture}
\end{document}

The import package avoids relative paths if you have a complex directory tree for all of your thesis pictures

  1. If you want to modify global settings, just change them in the header_fig file
  2. If you want to recompile all your pictures use a system for-loop or an arara call see Arara rule for automatic compilation of all files in a directory tree for instance.

This procedure allows to have separate .tikz and therefore .pdf files yet with global settings for all of your pictures. And I you want to speed up compilation, you can still add very specific libraries in the preamble of the relevant pictures.

| improve this answer | |
  • thank you I will test it – SRel Mar 19 at 15:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.