LaTex fun
Posted on April 16, 2011 with tags . See the previous or next posts.
Recently, I’ve had the pleasure of having to write many short documents in LaTex (short as in 1 to 6 pages). I haven’t written a lot in LaTex since my school time, so this was a very nice flashback to those times.
However, since then PDF is the new “standard” format, not PostScript,
so I had to do a bit of adjustement. The biggest change is that
pdflatex
doesn’t “like” EPS files for images, so what to do?
As usual, the road to enlightenment has many turns…
First, reading docs, I said simple, create a PNG file, scaled at high resolution, then include it scaled down so that it kind of loses the ugly scaled-bitmap feel.
But that’s not a nice solution: it is still bitmap, just looks like
aliased. So I wanted another solution—and threw gnuplot
’s set terminal png
and fig2dev
’s -L png
out the door.
Next was, of course, embedding PDFs, since pdflatex
supports
that. However, gnuplot’s pdfcairo
output is not as nice as I
wanted. It works, but only kind of. Issues with font consistency and
scaling, etc.
Then I remembered the nice pslatex
output from xfig, and learned
that there’s a pdftex
output. And that gnuplot
also can generate
.fig
output. So I went and redid my Makefiles and gnuplot command
files and everything, and suddenly all looked almost right. There are
still a few issues:
- if you select an invalid font in gnuplot (
set terminal fig … font "foo"
), it will simply ignore that font, without any warning - while you can tell it to set the “special” fig flag on the emmitted
text (
set terminal fig textspecial
) , you can’t give gnuplot a LaTex font name, since it only has definitions for the normal PostScript fonts; this can be worked around via giving it a PostScript font that has the same index as the desired LaTex font - the font size specified in gnuplot is not really influencing the actual fonts used in LaTex
- as xfig doesn’t know the actual font rendering box as computed by LaTex, you lose the (simple, but good) WYSIWYG features, and need to go back and forth between the created PDF and xfig to change the actual layout
- if you use a
\resizebox{}
around the inclusion of thepdf_t
file, the fonts are scaled too, which is plain wrong :(
So while this setup has some drawbacks, it works well enough. I was happy to simply have a well defined workflow.
But then I wanted to do a simple graph (of a 3-wire sorting network),
and I realised that positioning all of that using xfig will be
painful. I kept stumbling upon pgf
and tikz
during my previous
investigations, and I said I should check it out.
Wow. tikz
and pgfplot
. While you lose a bit on the graphing
capabilities, you also gain a lot. Basically one can replace both
xfig
(instead of hand-drawn diagrams you can actually write them in
code, programatically, no more guessing) and gnuplot
(so that you
have consistent fonts/scaling). I was so amazed at this excellent
combination that I’ve converted for all my new docs to this.
And now I have the problem that I keep wanting to write LaTex code in ikiwiki :)
PS:
Yes, I’ve been busy lately, so busy that my Debian work has
mostly been suspended. Should be back in about a month or so.