Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

General understanding

I know that several people have asked about how to include plots and graphics (created by tikz and pstricks) into a latex document.

Now it seems evident to ask how to handle a big number of figures. At first it seems crucial to pre-compile graphics that should enter the document to reduce the final document's compilation time.

But there are many different ways to perform that issue and actually the package standalone seems the most auspicious. By trying it, I recognized that all standalone tex-files have to be in the same folder to be compiled if changes were performed. Otherwise it would result in errors (Including pictures in subdirectories with standalone package).

Question

How do I now include graphics like the following MWE (adapted from matlab2tikz for including my macros), in order to have the same common formatting (e.g. font size and shape) for all text in my document including the figure labels?

MWE

\documentclass{article}
\input{Style/macros.tex}
\usepackage{standalone}
\standaloneconfig{mode=buildnew}

\usepackage{filecontents}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% File Style/macros.tex
\begin{filecontents*}{Style/macros.tex}
  \fontsize{10}{12}
\end{filecontents*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% File Documents/test_standalone_slave.tex
\begin{filecontents*}{Documents/test_standalone_slave.tex}
  \documentclass{standalone}
  \input{../Style/macros.tex}
  \usepackage{tikz,pgfplots}
  \pgfplotsset{compat=newest}

  \begin{document}
  \begin{tikzpicture}
  \draw (0,0) circle (2);
  \end{tikzpicture}
  \end{document}
  \endinput
\end{filecontents*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{tikz,pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
This is my MWE!
\includestandalone{Documents/test_standalone_slave}
\end{document}
share|improve this question
2  
I found this: tex.stackexchange.com/a/142479/412 workflow very useful. –  Dror Jan 5 '14 at 5:37
    
If the files are precompiled, they will contain whatever font(s) specified during the initial compilation. Therefore you will have to make sure that the precompiled graphics and the master document are configured equally. If not, you will have to recompile the precompiled graphics in order to make the font(s) match. –  eiterorm May 17 '14 at 19:16
    
@eiterorm: Could you therefore say what commands and packages have to be in the common style to ensure this? I could include the common style via \input or write a document-specific package? –  strpeter May 17 '14 at 19:21
    
@strpeter, unfortunately I don't know any automated way to do this. The font size is specified in the documentclass command, and you would need different document classes for the graphics (standalone) and for the master (article, report, book, etc.). If not, you could make a preamble file with the document class and the appropriate packages to be loaded by both the master document and the graphics documents. You would still have to recompile everything if you made any changes to the preamble definitions, though. Alas, I don't know how to externally specify the font size. –  eiterorm May 17 '14 at 19:29
    
Yes, that's exactly what I intended! So I just have to know how to write the font size (and what else should be loaded as certain packages like fontenc) into such a preamble file preamble_file.tex. –  strpeter May 19 '14 at 7:32

1 Answer 1

If I were you, I would do the following:

  1. In order to make your common settings accessible for all figures, diagrams, documents, etc, put the settings into a single package, namely, mycommon.sty. Register this package globally so you can use it throughout your projects. If you don't know how to do this, see my answer here (click).

  2. If you want your diagram or figures to be accessible for other projects, put them in a separate directory that is higher than the project directories. For example,

    <any directory>\Diagrams\
    <any directory>\Diagrams\Projects\Project-01\
    <any directory>\Diagrams\Projects\Project-02\
    
  3. To get a tight drawing for each diagram, use standalone document class as follows

    \documentclass[pstricks,border=12pt,12pt]{standalone}
    \usepackage{mycommon}
    \begin{document}
    % your drawing code goes here...
    \end{document}
    

    Also load your package for common settings.

  4. Compile each diagram with the appropriate compilers to get a PDF version. It will save a lot of your time when compiling the main input file of your projects.

  5. Import the PDF diagrams from within the main input file of your projects. And compile the main input file with pdflatex (recommended because it is fully supported by microtype package). You may also load the mycommon package if necessary.

    \includegraphics from graphicx will do the job of importing diagrams. You can set \graphicspath{{../../Diagrams/}} to shorten your path when invoking \includegraphics.

share|improve this answer
    
Could you please be more precise in step 1 on how to register a package globally. It is not obvious to me how to do this. I guess for linux it is according to wiki.archlinux.org/index.php/TeX_Live#Using_PKGBUILDs –  strpeter Dec 28 '14 at 9:43
    
The points 4 and 5 explain very well a good procedure. Each of my previous trials to work around seems ugly compared to this! –  strpeter Dec 28 '14 at 9:54
    
@strpeter: See my update in step 1. –  stalking isn't tolerated Dec 28 '14 at 10:06
    
This will work well, I guess, if you use the same fonts and the same fontsizes etc. throughout all documents which have diagrams in common. Otherwise, things will get messier as you will need multiple PDFs for the different configurations... –  cfr Dec 28 '14 at 23:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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