GNU Plotutils

We chose to generate graphics using GNU Plotutils because of the wide variety of output formats it could generate. In particular, because we knew that some output formats can be edited. The commercial product Adobe Illustrator can apparently read and parse any PostScript or SVG file and it certainly worked on PrIMETV output, but for us it was much more interesting to know that Plotutils can generate output in a format that the free drawing editor XFig can read work with. In addition, it seems as if there are more and more SVG editors availble. We have verified that Sodipodi and Inkscape (both free software) can read and edit the SVG output from PrIMETV.

Download

Due to deficiencies in the Plotutils published at www.gnu.org, we recommend you download and compile our edited version:
The SBC-patched GNU Plotutils.

Please note: Use the configuration flag --enable-libplotter. Without this flag, the C++ library will not be built!

The problems

The cross-platform, multi-format advantages aside, we have some problems with GNU Plotutils.
  1. "Bitrot" seems to have started. We are using the C++ interface to Plotutils, and that library does not compile without help. Others have located this problem too and help can be found on the web. What is needed is to add some static casting.
  2. Text does not come out using GhostScript or our PostScript printer. We fixed this by removing some font-related code in the PostScript header that Plotutils generates. We could not understand the utility of that particular code and everything works fine with this removal, but there is of course a risk that this breaks on some platforms.
  3. The bitmap based font/text handling does not do transformations gracfully. It is not clear to us why that is since the library on the whole handles all kinds of transformations just fine. This affects all bitmap output: An X preview window, GIF and PNG. Our fix to this is to use e.g. convert in the ImageMagick distribution to generate bitmaps from PostScript output. We might end up by-passing Plotutils' rasterization in future versions of PrIMETV by generating PostScript that is then passed through a filter without the user's assistance.

Lars Arvestad
Last modified: Thu Jan 17 18:41:06 CET 2008