Scribus Followup

In my last blog post I mentioned how Scribus didn’t conveniently support some advanced features of OpenType, such as discretionary ligatures and alternate glyphs such as small-caps glyphs. Scribus is due to support more OpenType features in coming releases, but I needed a fix now. My immediate reaction was to start reading the Scribus source code, so I’d know where to start constructing the necessary code.

A little bit of thought gave me a much simpler, and higher-quality, workaround.

  • TeX is widely considered to be one of the most advanced typesetting programs available. There are many implementations of TeX, many (all?) of which are free and open-source software.
  • XeTeX is a version of TeX that merges in OpenType font support.
  • The fontspec package, included in XeTeX, provides a very high degree of control over application of OpenType features. (Read the linked manual; it’s quite thorough.)
  • Scribus can import vector graphics in PostScript format.

Gist of the workaround is that I do all my type work in TeX, render it out to PostScript, and insert the generated PostScript data into Scribus. (Scribus does have the ability to render TeX documents directly, but it seems to apply some really nasty rasterization filter to the output.) This means I lose the ability to edit text in Scribus, but for the vastly improved typesetting quality, I think it’s a worthwhile tradeoff.

Here’s a comparison shot. The XeTeX-generated output is on the top.
There seems to be a margin issue clipping the capital "J"’s descending stroke, but besides that, I like it a lot better.

EDIT: Actually, there is something that’s bugging me about the XeTeX output, which is that the left margin is (probably) mathematically straight but definitely doesn’t look that way. At least not to my eyes. Look at the “W” starting the second line, and compare it to the “A” in the first line.

I think the typographical term for what I really want here is optical margin alignment (i.e. making it look right vs. making it numerically “right”). There’s a TeX package out there called microtype that claims to calculate and implement, among other things, optical kerning and character protrusion (which I’m going to assume means “optical margin alignment”), but it can’t be easily ported to XeTeX. Poo.