# Example: The TeX work flow

Published 2006-12-02 | Author: Kjell Magne Fauske

I spotted this well-known diagram of the TeX work flow in [1], where it was used to illustrate when a step-by-step presentation technique is appropriate. With Beamer and TikZ it is quite easy to gradually draw a diagram, since the \path construct is overlay aware. Download the PDF to see it in action.

 [1] Veytsmann, B. (2006). Design of Presentations: Notes on Principles and LaTeX Implementation. The PracTeX Journal, 4

Do you have a question regarding this example, TikZ or LaTeX in general? Just ask in the LaTeX Forum.
Oder frag auf Deutsch auf TeXwelt.de. En français: TeXnique.fr.

\documentclass{beamer}

\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage{tikz}

\usepackage{verbatim}
\usetikzlibrary{arrows,shapes}

\begin{document}
\begin{frame}
\frametitle{The \TeX\ work flow}

\tikzstyle{format} = [draw, thin, fill=blue!20]
\tikzstyle{medium} = [ellipse, draw, thin, fill=green!20, minimum height=2.5em]

\begin{figure}
\begin{tikzpicture}[node distance=3cm, auto,>=latex', thick]
% We need to set at bounding box first. Otherwise the diagram
% will change position for each frame.
\path[use as bounding box] (-1,0) rectangle (10,-2);
\path[->]<1-> node[format] (tex) {.tex file};
\path[->]<2-> node[format, right of=tex] (dvi) {.dvi file}
(tex) edge node {\TeX} (dvi);
\path[->]<3-> node[format, right of=dvi] (ps) {.ps file}
node[medium, below of=dvi] (screen) {screen}
(dvi) edge node {dvips} (ps)
edge node[swap] {xdvi} (screen);
\path[->]<4-> node[format, right of=ps] (pdf) {.pdf file}
node[medium, below of=ps] (print) {printer}
(ps) edge node {ps2pdf} (pdf)
edge node[swap] {gs} (screen)
edge (print);
\path[->]<5-> (pdf) edge (screen)
edge (print);
\path[->, draw]<6-> (tex) -- +(0,1) -| node[near start] {pdf\TeX} (pdf);
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}


• #1 varu, February 2, 2012 at 3:17 a.m.

Hi, I applied this to a document instead of beamer. It produced PDF but giving me so many errors. Any suggestions. Thanks

• #2 varu, February 2, 2012 at 3:22 a.m.

The problem is solved :) Thanks though !!

• #3 Joe, June 11, 2012 at 12:01 p.m.

Thanks, example really helped me to get started!

• #4 Abdallah, July 25, 2013 at 2 p.m.

Thank you very much for this document, it really helps me. I want just to ask you how to change the distance between nodes horizontally. I tried to make a similar exercise, I want to link 3 nodes disposed vertically with a node which is situated in right of the second box. When I compile, I can't see the arrows. Any help please? Thanks.