Learning Scribus


6 minutes


I’m currently producing a sourcebook for a tabletop roleplaying game. Since I’m poor, stubborn and probably more than a little stupid, I decided I would rather spend all my entire budget on artwork and teach myself how to do literally everything else. Print layout? That’s basically the same as what I do already in HTML, right? Vector illustration for logos, that’s just drawing some lines, right? Editing, that’s just writing, but for stuff you’ve already written…

Wrong. Very, very wrong.

While I’ve got the writing down, and the editing to a certain degree (with lots of proofreading and suggestions from writer friends I’ve managed to cajole into helping me, or who have kindly offered because they are awesome), I’ve literally never done vector art nor desktop publishing. I can build a website and lay that out quite easily, and I’ve even written some crazy hacks for generating PDFs with HTML that do automatic text flowing with javascript and the like, but as I soon learned, that is nothing at all like doing layout for print with a DTP program.

For logo illustration, I went with Inkscape because I run Linux and the aforementioned poorness. Free is my favourite cost, and I’d rather support open source and libre software wherever possible. As it turned out, I actually managed to teach myself enough skills in Inkscape through pure brute force and some use of license-free public assets as a reference to build myself what I wanted. High on my own success, I figured this layout stuff was going to be easy.

Actually, kind of yes.

I’d known about Scribus for years, an open source, libre software desktop publishing application available for most major operating systems, which suits me just fine here on Linux. I’d tried using it once or twice years ago for the odd thing here and there, and after many bitter tears were shed in frustration, decided only a fool would choose to lay something out themselves.

Today, I became that fool by trying to teach myself layout in Scribus, from scratch, by laying out a complete 170+ page tabletop roleplaying game sourcebook.

Before I began, I looked for some tutorials and templates, but most things I found were for posters, or simple ebooks, nothing as complicated and varied as an RPG book. However, I did find the extremely helpful publisher advice and Scribus templates from DriveThruRPG. This had a wealth of information in it that allowed me to make a start with the minimum of fuss and had info about things such as colour profiles which are apparently important for making sure what you see is what you get (in terms of colour accuracy) from the printers. I’m using their templates as a basis, but I’ve obviously tweaked things for my own needs.

Master pages - magical things that are kind of like templates for other pages, but whose elements aren’t editable on those new pages - so basically use them for common elements that will always appear on a page.

Paragraph and character styles. I was trying to figure out how to set the default font, font size, line spacing and alignment, etc and came across “styles” which I assumed were similar to the sorts of “styles” you get in Google Docs, where you can apply a known set of attributes to a body of text (usually for headers of varying sizes, etc). From a text frame though there wasn’t a way to set them/edit them, so it took me a while of digging through menus to find the style editor.

The text I was working with used tabs to indent paragraphs, but I couldn’t find anything to control that. However, I discovered the ‘story editor’ you can access by using the ‘Edit text’ context menu on a text frame and damn son, that made life easier - I’d apply a normal paragraph style to the first paragraph, then apply a first-line indented one I made to the others and it just worked.

Making tables is a pain in the arse. Scribus basically doesn’t support tables from what I could see, its idea of them being essentially a very basic wizard for generating a crap-ton of text frames and grouping them together for you. However, a group of text frames sucks, because you can’t easily change where columns are split so you need to ungroup them all, select a column by drag selecting all the text frame sin that column then resizing, then doing the same to the remaining columns to make them join up again as one big pseudo-table. It’s an awful user experience and fiddly as hell.

It crashes. This shouldn’t really be a surprise for any piece of software that does complex things, but it is annoying when autosave/recovery doesn’t work. Scribus managed to crash on me and locked my entire X server up - I needed to kill it from a console before I could access anything else on my desktop. Killing it resulted in 3 hours of work being lost - annoying to say the least - so save regularly!

Snapping is not great. I’d love for Scribus to be more intelligent and helpful with alignment. Snapping to margins, to guides, to the grid (and having the grid easily editable with live preview, on a per-page/per-master-page basis) would be super helpful. Snapping in its current form is mostly more of a burden than a help half the time. Having new elements automatically snap to align with the edges of existing ones when you are dragging out their boxes would be super useful as well. Maybe there is a way to enable this, but I’ve yet to discover it.

Speaking of alignment, it would be useful if the grid was aligned from the outer edge of the page, rather than always from the left side. When working on a project with facing pages, having the grid always offset from the top left makes no sense, because the alignment is always off on the opposite page unless your margins happen to sit exactly on the grid. Being able to use the outer (or inner, just as long as it’s consistent) page edge as the 0-point for alignment would be nice.

I’m using 1.4.X stable for my work, though I’ve toyed with 1.5.x and trunk as well. 1.5 performs a lot faster on my system and generally feels a lot nicer, but I found it to be a bit less stable. Trunk crashes for me at random when selecting text, which happens a lot, so I haven’t really been able to use it.

Conclusions

All in all, Scribus has been a really powerful tool and for the most part easy to learn. It’s not always been very intuitive and I still don’t understand a whole lot about what I’m doing, but I’ve managed to make good progress with no help or tuition from anyone, which can only speak volumes for how easy it is to just explore things and try stuff in the program. The future of Scribus looks even better from the glimpses I’ve seen through testing out the 1.5 and trunk branches. Don’t trust it to be perfect though. Make sure you save and backup your work regularly.

Would I recommend it? Definitely. It’s a great piece of software and being libre and open source, it’s so much easier for it to get better, because anyone can help by writing documentation, tutorials, doing bug testing and crash reports or writing code.