Scribus is an excellent open source DTP program that’s currently under heavy development, new features being added all the time. The developers have a high level of ambition and their product is constantly gaining in popularity. I’ve installed the 1.3.5 version - aka “scribus-ng” - on my Ubuntu desktop and the little “Τεχ” icon in the toolbar immediately caught my attention. That’s right: The text frame is dead, long live the TeX frame!
Most people associate TeX with mathematic typesetting, but it can be used to typeset any kind of document. My favorite TeX typesetting engine is the Unicode-aware XeTeX. Like Scribus, XeTeX is free software and available on most major platforms. Unlike Scribus, XeTeX supports the advanced typographic features of OpenType.
So, what if we could use some of the power of XeTeX to overcome the shortcomings of Scribus? For that, we will need a nice OpenType font to experiment with - I suggest the freely (as in freedom) available Linux Libertine font. Linux Libertine can be viewed as a replacement for the Times New Roman cliché, with added support for some nice features such as historical ct an st ligatures. My purpose in this tutorial is to do the following in Scribus:

As said, Scribus’ old traditional text frames can’t do that at the current stage of development. But XeTeX can, and if XeTeX does it, so does Scribus. Let’s do this together, step by step:
- Set XeTeX as the default typesetting engine for TeX frames. Go to File, Properties, External Tools and under Render Frames locate LaTeX. Click on Change Command and change the default to this:
xelatex --interaction=nonstopmode - Add a new TeX frame.
- Edit the source of the frame, and replace the default code with:
\fontspec[Ligatures=Historical, SizeFeatures={{Size=50}}]{Linux Libertine O} Acts of the Apostles
- Inside the code editor, click on the Fonts/Headers tab and replace the defaults with the following:
\usepackage{fontspec} \usepackage{xunicode} \usepackage{xltxtra}
Done!… But wait a minute, doesn’t the output look a little bit grainy? It does, because the output of XeTeX has been rasterized, and that’s how Scribus renders TeX frames - rasterization. There’s certainly an option allowing you to set the rasterization resolution higher, but at 600 DPI the image still doesn’t look good to me and at 1200 DPI it takes ages to render… And why rasterize anyway? XeTeX renders OpenType fonts as vectors in PDF, and Scribus is certainly vector-aware. Rasterization seems like re-inventing the wheel in this case.
To get a clear picture of what I’m talking about, download this PDF and view it with Adobe Reader. The file was produced in Scribus, and includes the TeX frame produced with the above procedure, as well the same XeTeX output imported in EPS vector format. Check how the samples scale and print and you will notice the difference at once.
The process of producing the vector sample is little more complicated, but definitely worth discussing:
- Open up your favorite TeX IDE, let’s say Kile, and copy-paste the following:
\documentclass[a4paper]{article} \usepackage[landscape,vmargin=12pt,hmargin=12pt]{geometry} \usepackage{fontspec} \usepackage{xunicode} \usepackage{xltxtra} \begin{document} \pagestyle{empty} \fontspec[Ligatures=Historical, SizeFeatures={{Size=50}}]{Linux Libertine O} Acts of the Apostles \end{document}
- Save the above as
acts.tex. - At your Linux command line, create a PDF from your TeX file:
xelatex acts.tex - Use GhostScript’s
pdf2psto convert the PDF to PostScript:pdf2ps acts.pdf - With another GhostScript tool, the
eps2eps2PostScript “distiller”, grab only the type discarding the whitespace:eps2eps acts.ps acts.eps - Now in Scribus, go to File, Import, Get Vector File and select
acts.eps. Place it in your document.
What’s the point of doing the above? That’s certainly a good question. In my opinion, the above demonstrates that:
- There’s good quality open source DTP and typesetting software available, right here right now.
- Using them creatively can help you overcome their apparent shortcomings - if the above is not convincing enough, see what this guy has done typesetting Arabic texts in XeTeX/Scribus.
- The potential of a closer integration between *TeX and Scribus, bringing the best of two worlds together, is simply amazing.
I certainly hope the Scribus developers value my last point as much as I do, starting by making TeX frames embeddable in vector format!
Update Mar 6, 2010: There seems to be a better way to do this within Scribus, without ever using the command line. You will need the latest version of scribus-ng and the PoDoFo library installed. When exporting to PDF, choose the Embed EPS & PDF files experimental option. This will properly embed the font and its meta-information without resorting to outlining. As this is still an experimental option, you may encounter some quirks regarding e.g. colorspaces. Nevertheless, it has worked perfectly for me and for what I’ve intended to do. Thanks to the Scribus developers for bringing this to my attention.
The above is licensed under the terms of the Creative Commons Attribution-Share Alike 3.0 license.
The author encourages attribution on the web by linking to the source article.


