It is a widely accepted convention today in the scientific community to write scientific papers using the TeX and LaTeX environments. The high quality, publication-style typesetting of LaTeX has made it now a de facto standard, to such an extent that some scientific journals only accept submission of papers in electronic form anymore. The portability goal of TeX has however the drawback that graphical representations are only possible in very rudimentary form (using the LaTeX picture environment or packages using a similar approach). Useful as they are, mostly they are too simple to draw complicated Feynman diagrams as needed in wide parts of theoretical nuclear and particle physics today (see ref. [1] for an introduction to the theory of Feynman diagrams).

This problem has led to the development of more sophisticated programs in the past. The UK List of TeX Frequently Asked Questions lists four possibilities to draw Feynman diagrams in conjunction with LaTeX: Michael Levine's feynman [2] bundle; Jos Vermaseren's axodraw [3] package which uses Postscript specials and is thus slightly less portable but much more powerful; Thorsten Ohl's feynmf [4] package for LaTeX2e which uses METAFONT (or MetaPost) to combine flexibility and portability; and Norman Gray's feyn package. These are all available from the CTAN archives.

Powerful as they are, all these methods have the common drawback that they require some 'hard-coding' from the user side in one or the other programming- or scripting language. There does not exist any graphical user interface (GUI), while modern day drawing programs (like xfig) do not include special options or commands that are necessary to draw Feynman diagrams with the same quality as the one achieved by TeX/LaTeX.

A rather advanced application is the Mathematica package FeynArts [5], which is also capable of producing LaTeX output (using the feynarts style package). However, it not only necessitates the huge, commercial program Mathematica, but is itself a rather sophisticated application with diagram drawing just a part of its capabilities. And it does not provide a GUI for the interactive drawing of diagrams.

There are only very few programs known to us that allow for an interactive drawing of Feynman diagrams, like A. Laina's program Xfey [6], I. Musatov's FeynmanGraph, T. Hahn and P. Lang's FeynEdit [10], or A. Santamaria's JFeynDiagram. However, all of them present one or the other shortcoming in terms of portability, usability, or output quality.

Our program JaxoDraw is an attempt to circumvent all the above mentioned drawbacks as far as possible. The main requirements that we posed on our program were that it should be easy to compile and install, easy to learn and use, produce high-quality output and be freely available (including its dependencies). Furthermore, it should be as operating system independent (or portable) and self contained as possible, with ideally no external dependencies. These requirements lead us immediately to Java as the choice of our programming language [7]. The Java technology is freely available from Sun Microsystems, it is a large-scale project that will not disappear in the near future and it is available for a variety of platforms. A working Java Runtime Environment is the only necessary requirement to run JaxoDraw.

As the name suggests, JaxoDraw was initially meant to be a graphical user interface for Jos Vermaseren's axodraw package, but it may be used independently of it. However, it is in conjunction with axodraw that JaxoDraw develops its main capabilities because of the possibility of combining the powers of TeX/LaTeX with a modern drawing program. The main design goal of JaxoDraw was convenience and ease-of-use, with respect to both compilation/installation as well as every day usage: it should be possible for anybody to draw even complicated Feynman diagrams with just a few mouse clicks, without the knowledge of any programming language. Being written in Java, JaxoDraw can be used on any platform where a Java Runtime Environment is installed. This makes it completely portable, however, some operations, like internal Latex compilation and Postscript preview, require the execution of external commands that are inherently system dependent and are currently only tested under certain operating systems.

This paper attempts to give a complete overview of JaxoDraw from installation and usage instructions to documentation issues and possible developments. The information provided in this document applies to the current version 2.0 of JaxoDraw, for up-to-date information on the program, please consult the JaxoDraw Web-page at


JaxoDraw is a program for drawing Feynman diagrams. It has a complete graphical user interface that allows all actions to be carried out via mouse point-and-click-and-drag operations. Graphs may be exported to Postscript / EPS format and can be saved in XML files to be used for later sessions. One of JaxoDraw's main features is the possibility to create LaTeX source files to draw Feynman diagrams via latex and dvips. In fact, the original motivation for writing JaxoDraw was to create a graphical user interface for J. Vermaseren's axodraw package [3].

Some of JaxoDraw's main features are:

  • Platform independent
  • Easy to compile/install, no external dependencies
  • Complete point-and-click graphical user interface
  • Pre-defined line styles for common particle representations
  • Saving and reading of graphs in XML format
  • Export to PostScript, EPS, JPG, PNG and Latex format
  • Plugin infrastructure to add custom import and export formats
  • Setting of permanent preferences
  • Internationalized: currently it comes in English, German, French, Italian and Spanish (the User Guide is only available in English)
  • Working with several graphs at a time
  • Editing groups of objects
  • Importing existing Latex files
  • Grid with customizable Size
  • Look-and-Feel: All Swing pluggable Look-and-Feels

The home of JaxoDraw sources and documentation is:, this page should contain up to date information on the program. The User Guide of a previous version (1.1) has been published in ref. [8]. The User Guide of version 2.0 has been published in ref. [9].

Prev Home Next