new features in pgf tikz

New features in pgf/tikz

TeX Live 2008 was finally released about a month ago. I am a member of TUG, so I should be getting a DVD of it sometime soon, but today I finally decided I couldn’t wait, and I would just download it. The main impetus came after reading a discussion in comp.text.tex, in which someone was trying to reduce his compile time. He had a bunch of pgf/tikz graphics, and they can take a long time to compile. Pgf/Tikz version 2.0, which was released in February, now includes the ability to save pgf graphics as external files, and then automatically include them using a standard \includegraphics command. So you only have to compile your graphics once, which can reduce compile time a lot. I think most LaTeX users probably compile often, especially if writing equations, since it is easy to mess those up and have your document not compile. So I can definitely appreciate the desire to speed up compile time. My most unproductive are days when I am running programs that take on the order of 30 seconds to 5 minutes to run, because I end up checking my e-mail or surfing the web while the program is running, and I usually end up spending more time doing that than the time it took for the program to run.

Anyways, so I wanted to try out this new functionality in pgf/tikz, so I downloaded the latest version from CTAN and installed it. (There is a nice tutorial on externalization in the manual (which is now 560 pages long) — search for “externalization”). Then I tried to compile a beamer presentation, and it failed. I was sort of expecting this, since I know beamer relies heavily on pgf. So I decided to just upgrade my whole texlive. By default, texlive gets installed into /usr/local/texlive/year, so I actually now have 2007 and 2008. I will keep both for awhile just to make sure I don’t have any problems. My non texlive packages are in /usr/local/texlive/texmf-local, so those did not get modified at all.

The first thing I did after installing the new texlive was to test a beamer presentation, and there were no problems, as I had expected. Then I used texdoc to check the manual for pgf and beamer to make sure that they were the newest versions, which they are. When I did so, the manuals got opened in evince. I prefer kpdf, and I had changed this in texdoc in my old version. I thought about just copying the old version over, but I decided to run a diff first, expecting to see just a few lines of output. I was quite surprised when lots and lots of changes started showing up, so then I did a word count on each. texdoc from 2007 was 206 lines long. texdoc from 2008 is 890 lines long. The old version was just a bourne shell script. The new version uses texlua. And the new version is much, much improved!! With the old version, to read the beamer manual, or the pgf manual I had to type:

texdoc beameruserguide
texdoc pgfmanual

There were quite a few other packages that had similar problems. But now in the new version, it works as one would hope.

texdoc beamer

So, I stuck with the new version of texdoc, but I did modify it give preference to kpdf over evince for viewing pdf documents. I just searched for evince, then changed the order of the two lines. Even though I don’t know lua at all, the code was very nicely formatted and easy to read.

Another nice thing about the new version of pgf is that it has a bunch more features, including easy ways to create drop shadows, and some new default shapes, like callouts. A few more of the new features are explained at this texample post