Begin main content

Embedding GraphViz in LaTeX documents

I have to say I'm loving using LaTeX for my Uni papers. It is so delightfully straightforward and powerful.

I am embedding some GraphViz diagrams in my documents, but I didn't want a round trip to a different editor buffer and the shell to edit/compile/insert the diagram.

Based on graphviz.tex code by Derek Rayside I have created a custom LaTeX function that will automatically compile and embed inline GraphViz code (man those wacky capitilisations are getting boring!)

You embed a graph like so:

   \digraph[scale=0.5]{MyGraph}{rankdir=LR; a->b; b->c}
Be careful not to have any double newlines or your dot file will have some bogus \par comments in it (which I should replace with newlines in the function...). Another possible enhancement would be to add a dynamic dot command to set the maximum diagram height & width to the current page/column dimensions.

You need my graphviz.sty and you need the following in your document preamble:

Remember to run texhash if you install the style in a system-wide location. Note this assumes pdflatex. Modifying the command for regular latex is an exercise left for the reader. Update: Derek now has an updated version available on GitHub (which didn't exist in 2007 :).

08:09 AM, 25 Mar 2007 by Mark Aufflick Permalink


Change this style to use the excellent dot2tex:

by Mark Aufflick on 05/21/07


Awesome! This was very useful for me.

by Unregistered Visitor on 02/13/09

Thank you

I really like this, and I fiddled around with dot2tex as suggested in your comment to yourself. Here are my results. I've never written a latex sty file before, so please feel free to improve it.

% graphviz.sty
% by Mark Aufflick
% 2006-03-25
% based on graphviz.tex by Derek Rayside 2003

% add the following lines to your preamble:

% \usepackage[pdftex]{graphicx}
% \usepackage{graphviz}

% parameters to \digraph:
% 1 - parameters for \includegraphics (optional; default value is "scale=1")
% 2 - name of the digraph
% 3 - body of the digraph

% assumes pdflatex. to modify this command for regular latex,
% replace all .pdf with .ps, and the command becomes simply:
% dot -Tps


  \immediate\write\dotfile{digraph #1 {\string#2}} 
  \write18{bash -c "`which neato` -Txdot | `which dot2tex` -tmath --figonly --usepdflatex -ftikz --tikzedgelabels --styleonly -o #1tikz.tex"}  
  % the tex exists: include it 
  { \include{#1tikz} } 
  % the tex was not created - show a hint
  { \fbox{ \begin{tabular}{l} 
        The file \texttt{#1tikz.tex} hasn't been created from 
        \texttt{} yet. \\
        We attempted to create it with:\\
        `\texttt{neato -Txdot | dot2tex  --figonly --usepdflatex -ftikz --tikzedgelabels --styleonly -o #1tikz.tex}` \\
        but that seems not to have worked. You need to execute `\texttt{pdflatex}` with \\
        the `\texttt{-shell-escape}` option.

by Unregistered Visitor on 04/02/09

Something to be wary of

You should not have the \newwrite directive in your \newcommand. If you do and use it a lot you will exhaust the write buffers available. Just move that command out of the \newcommand block. Like: \newwrite\dotfile \newcommand{\digraph}[4][scale=1]{ \immediate\openout\ etc.

by Unregistered Visitor on 10/06/10

Updated version on Github

For an updated version of GraphViz.sty see Mike Prentice's Github version:

by Mark Aufflick on 02/23/11

Filenames with hyphens

If you want filenames with hyphens in them, put quotes around #2 in the following line: \immediate\write\dotfile{digraph #2 {\string#3}}

by Unregistered Visitor on 04/02/13

Accents and labels with spaces

Very nice functionality! But how do you prevent PDFLaTeX from introducing strange codes when using spaces and accented characters in, e.g. label? Example: try the following \digraph[scale=0.5]{MyGraph}{rankdir=LR; a [label="This is A"]; a->b; b->c} If I drop the double quotes there will be three nodes instead of one, and any replacement of the quotes by single quotes or braces, will result in strange nodes labeled with LaTeX items from when it processes the box; just like when the label string contains accented characters. Solving this would, for my use, make graphviz.sty full featured. Best regards, Morten Lind.

by Unregistered Visitor on 06/27/13

Updated version on Github

I just uploaded a newer version of this to Github: cheers, Derek.

by Unregistered Visitor on 08/15/13


The relationship developed by all understudies as they mutually do their school studies keeps them spurred and - essay writing service the members have a tendency to have more chances to impart as they create improve their abilities.

by Unregistered Visitor on 10/22/14


See several online business blogs regularly from the se like msn, yahoo or simply bing, read up to date post, and prepare a comment about that. Make certainly your provide feedback is bond with their blog as well as an ad in your business. How you'll get more customers? Leave your blog or website during the comment You simply will not believe any traffic you can generate using the simple theory. Commenting regarding other online business blogs is quick and easy. wetakecareofbusiness

by Unregistered Visitor on 10/23/14


Lake say That i tried most of the not suitable tips on how to make money via the internet, I lead to it. I did the webpage with Adsense, used Click Loan provider with online info training books, Amazon's affiliate marketing, and other. I assume if others were definitely prospering for doing experiencing results it was going to be easy for me that will copy. I at all times knew That i needed any adaptability and way of living that the webs business be ready to provide however , I was initially still working for others. treefinance

by Unregistered Visitor on 10/23/14


The main advantages of franchising into the franchisor happen to be that franchisee will have to buy license within the franchisor to exercise the business. To shop for this driver's license, the franchisee pays huge amount into the franchisor, together with besides the, pays a good monthly bill for holding that identity. Moreover, a franchised online business can grow quicker than if ever the owner might possibly be responsible that will finance most of the outlets. At the same time, the process might possibly be cumbersome. iutcfinance

by Unregistered Visitor on 10/23/14


Own your history ready when trying to find a life insurance policy, because patiently waiting may be a hassle for just anyone. You recognize that they will request your history, and except when you've kept track of it all by yourself, the hospital's reports system might take weeks or simply months to build it to your. riversourceinsurance

by Unregistered Visitor on 10/23/14


What is more, in component to valuables insuranc policy, there are definitely covers available so that you can seriously think of when two hundred thousand dollar motor 18 wheeler cargo insurance. Refrigerator braking system down, generated freight coverage, loading together with unloading policy, and larceny coverage would definitely be a few a single article. However, it is your job whether so as to add these even more optional coverage towards your truck cargo insurance for one small portion for additional superior. Anyway, you might want to make the selection carefully in an effort to maximize an individual's scope for cover. insurancelikeitshoulbe

by Unregistered Visitor on 10/23/14

Add comment