For most of what I write, I tend to use Google Docs. Yes, it’s Google, so I’m expecting it to be killed at any time, but the convenience of it is a tremendous advantage. Whether it’s writing up game notes, or putting together something for publishing on DriveThruRPG, being able to share with people for collaboration, or editing it whilst on my phone in the bath, are big advantages.
However, in terms of features it is quite limited. Trying to get page numbering correct, switching between two column and one column text layout, or doing anything complicated in the headers and footers was always fiddly. For what I’ve done so far, it was good enough. But I did start to struggle with my latest publication when I started including ship deck plans and wanting more complicated layouts. So I’ve started looking for alternatives.
A long time ago I used Impression Publisher, which was an awesome DTP tool. However, it only ran on RISC OS, an operating system I haven’t used for about twenty years. When I moved from RISC OS to Linux and was looking for an alternative tool, I settled on XML-FOP. The other options at the time were Star Office (the forerunner to OpenOffice), which simulated the complete MS Windows desktop (which I hated at the time, and still do) or KWord – which would randomly move text from one page to another at print time.
There was also LaTex. LaTex is a professional tool, but at the time I couldn’t find any examples of how to do anything other science articles. XML-FOP allowed much more fancy designs, so I settled on that. All my YAGS content is done in XML-FOP, and what I did 20 years ago is still compatible with what I do today. What I like about that is that the content is accessible from code, and it’s easy to render data to anything from tables to story content by encoding it all in XML. But it does require that everything gets recorded in XML.
Maybe I should take another look at LaTex when I get a chance, since people do seem to be doing more fancy stuff with it these days. The main issue I have with XML-FOP is that it’s hard to do content outside of the main story flow. If I have a two column text layout, everything has to be inside one of the two columns. I can’t have an image spanning across both columns. I really want to be able to say “stick an image across the top third of the current page”, and for it to work out how to do that.
I believe that LaTex can do this sort of thing, but it’s going to require time to take a look at it and learn it. For now, I’m taking a look at Scribus.
I know there are some more professional options out there – mostly from Adobe. But none of them run on Linux, and that’s a requirement. As I said, I don’t enjoy using either Apple or Microsoft products, and for 90% of what I do Linux (especially KDE) works best for me. I’m not changing platforms to make a small fraction of my time easier.
Scribus is… a challenge. It definitely has more flexibility than Google Docs, but user friendliness isn’t one of its features. It’s not just that features are hidden away and hard to find, it’s that the whole UI is ugly and very clunky to use. I’ve seen a lot of complaints about Scribus, but I’ve also seen complaints about the GIMP, and that’s a tool I’ve got pretty used to using.
Figuring out how to use master pages took a lot of time – and I’m still not entirely happy with what you can do with them. Frames on a master page can only have fixed content (other than page numbers/dates etc). When you add a page based on a master page, you need to add text frames yourself. New pages aren’t auto-added with new text frames on them as content grows – they need to be manually added.
Table support is poor. It doesn’t auto-resize cells based on the amount of content, and resizing the whole table resizes the cells. The recommendation seems to be to generate tables outside of the software. This is not great given that better table support was something I was wanting.
But, it does provide a lot more flexibility in terms of layout than Google Docs. Adding embedded text frames is now possible, and positioning of images is easier.
My first attempt at a document was based on a ship design for a Sidewinder small craft, which involved most of what I’m looking to try to do for now, but kept to four pages. Having a table with a column of text next to it, in a style similar to how Mongoose display ship designs, is something I couldn’t figure out how to do in Google Docs. You can have free-floating image frames, but not text frames in Google.
Having slightly more graphical headers and footers was clunky, but easier. It would probably be easier to do the fancy styles in Inkscape and then import them in, but for now I’m happy with how they are. It would be nice if I could define the styling outside of a document, so that updating the styles would update all the documents, but that doesn’t seem to be possible. That is a nice feature of XML-FOP – the content and the styling are independent of each other.
The other advantage of separating content is that it can be re-used in different ways. In YAGS, I have skill, spell and equipment lists stored in XML files. I can import them as a simple list (here’s a list of all skills, possibly filtered by genre or rarity), or in long form with full descriptions. It would be nice to be able to auto-generate a table of all spaceships, with basic attributes (tonnage, cost, thrust etc), or display details on a specific one. With a tool like Scribus, I have to do that by hand. This also means remembering to update all mentions of data if something changes.
But for now I’m going to persevere with Scribus. Along with Inkscape, Blender, Dungeondraft and the GIMP they will hopefully allow me to generate what I want.
For practice, I have started writing up some small ship designs for Traveller based on Elite. They all use the new style, and it should give me practice with Scribus. I also have a longer article almost finished for a much bigger ship (a 2,600t freighter), to see how that works. Until then though, my Ships of Elite page will start to collect some designs over the coming weeks.