RE: https://dice.camp/@FictionFirstSystems/116460149499883863

So, the short-story version of where I landed in my quest for a way to manage my #TTRPG #writing is that I landed on #LaTeX (using LuaTeX — https://www.luatex.org/ — instead of the base LaTeX). There are several reasons why other options didn’t pan out for me, and I’ll walk through them as I go along here.

A major consideration for me was #indexing. Given the structure of what I’m working on, I need to index various parts or my writing in fairly complicated ways. The setting I’m working on is a fantasy-genre world, and there are several setting-level elements that I had specific indexing wants/needs for. Countries and their likely or expected “children” are a good example, I think:

Countries
   Country Name, #–#

Country Name, #–#
   City Name, #
   Organization Name, #

(#indexing continued)

Ultimately, this example is really focused on one thing: Providing cross-references in the index, so that someone looking for a country in the setting can look under “Countries” to find the name they’re looking for, then go find that name as a main entry in the index, and look for whatever was relevant under that.

#LibreOffice was my original default consideration. It’s free, it’s open-source, and in general I’ve been pretty happy with its capabilities in the past.

(#LibreOffice continued)

Where LibreOffice Writer failed me was in its #indexing. The program does provide index capabilities, but they are really focused on single-term values. By that I mean that it’s easy enough to set up a single index entry for, say, the “Country Name” in my example above, but managing the “children” elements — the “City Name” and “Organization Name” in that example is… painful.

(#LibreOffice continued)

The UI for index entries is the main thing that I found painful and frustrating. I did make an effort to see if I could come up with a way to deal with indexing in LibreOffice using their “Concordance File” feature (https://help.libreoffice.org/latest/he/text/swriter/01/04120250.html), in combination with hidden-text blocks that it could (theoretically) latch on to. That was also painful, just in a different way.

Edit Concordance File

(#LibreOffice continued)

Digging in to scripting and automation possibilities, while they exist, didn't help much. The UNO library that’s the backbone for those kinds of efforts seems cumbersome and clunky. Even that would’ve been manageable if there wasn’t something goofy going on in the document structure itself. I couldn't get a macro/script to reliably find those hidden text blocks.

(#LibreOffice continued)

Near as I can tell, the reason for that was that the inner workings of the program don’t make any effort to merge contiguous XML blocks of the same type. Any time I made a change to a hidden text block, it apparently stored that change by adding a new XML tag with my new text in the document’s data, even if that change was a single character, and the “new” tag was identical to the one the new text was being inserted into.

(#LibreOffice continued)

Over and above that, the supported version of #LibreOffice for my OS of choice, #LinuxMint, is at least one major version behind. While there’s a #flatpak available that’s much more current, that had its own issues, like having its own dedicated file-system location for things like macros. A flatpak installation for general use is probably fine, but the sort of power-user stuff I was concerned with made it untenable.

I looked (very briefly) at #typst, but the main blocker there was that I didn't feel like taking the time to learn a completely new system from the ground up. It looks promising, to be sure, but there’s just too much new stuff to learn that’d interfere with me actually getting writing done.
I also considered buying a copy of #NisusWriterPro. I used to own a copy of #Nisus, back when I was using Macs regularly, and I recalled that it was a very capable and full-featured word processor even back then. Looking at the feature set online, it looked very much like it was going to do everything I wanted to: #indexing , tables, multi-document support for long documents like books, it was all there.

(#Nisus continued)

Unfortunately, though it’s still possible to use their website to download the program, and to buy a license for it, that license will never be delivered, apparently — as far as I can tell, #Nisus has gone out of business.

(I’m currently working with my credit-card company to get a refund for the $65 I spent making the attempt.)

#QuarkXPress (https://www.quark.com/products/quarkxpress) was another option. I’ve used Quark, though not recently, and I remember it being very capable. Moreover, it’s possible to buy it outright, rather than having to deal with the kind of subscription-service thing that Adobe is doing with #InDesign. Like Nisus, it supported all the book-related functionality I felt I needed: #indexing, #tables, multi-document support.
QuarkXPress | Desktop Publishing Software & Page Layout Software

Try QuarkXPress, the leading desktop publishing software for page layouts, print and digital publishing creative tasks.

Quark

(#QuarkXPress continued)

Here, my reluctance was simply based on the price — $700 isn’t bad for this kind of program, and there was a discount that took the “Perpetual License” cost down to $524 when I looked last — but I simply didn’t feel like dropping that kind of money, and tying myself to Apple hardware or a Windows OS in the process was also a non-starter for me.

That took me back to Markdown (using #ObsidianMD) and some variation of #LaTeX.

While writing with Obsidian in Markdown is easy enough, there are just certain things that I know I want to do that would require some automation to convert into LaTeX anyway. My thought there is that if I’m gonna have to go down that road anyway, I might as well just stick to LaTeX from the start, and be done with it.

…and that took me back to LaTeX

As a result, I’ve spent my last several weekends building out some LaTeX macros to handle various things that I knew I’d want:

“Generic” typeset elements that appear commonly in TTRPG materials, without being TTRPG elements themselves;

TTRPG Elements, independent of the game-system(s) in play; and

Various Fate elements, both common across all Fate rules, and specific to Core and Accelerated variants.

I'll list/link the packages I’ve come up with, and what they provide.

ffs-ttrpg-typography-latex-package (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-typography-latex-package), a LaTeX package for typesetting non-TTRPG entities commonly used in TTRPG documents:

• “Almanac” macros for sidebar info for TTRPG entities like countries.
• Various types of “callouts” (warnings, examples, notes, tips, and the like.
• Rules references.

Currently at version 0.1.0 (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-typography-latex-package/tags).

ffs-ttrpg-entities-latex-package (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-entities-latex-package), a LaTeX package for typesetting rules-system-agnostic TTRPG entities:

• Countries
• Locations
• Organizations
• Population Centers
• Non-human Species

Currently at version 0.1.0 (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-entities-latex-package/tags).

ffs-ttrpg-fate-latex-package (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-fate-latex-package), a LaTeX package for typesetting TTRPG entities common to all Fate rules, including:

• Actions
• Adversaries (Fate Adversary Toolkit)
• Aspects
• Consequences
• Stress

Currently at version 0.1.0 (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-fate-latex-package/tags).

ffs-ttrpg-fate-core-latex-package (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-fate-core-latex-package), a LaTeX package for typesetting TTRPG entities specific to Fate Core:

• Extras (that use skills)
• Skills
• Stunts (Fate Core handles them differently than Accelerated does)

Currently at version 0.1.0 (https://codeberg.org/Fiction-First-Systems/ffs-ttrpg-fate-core-latex-package/tags).

I’m at least tentatively planning to throw a “metapackage” style repo out there to gather all of these packages. While that’s in the foreseeable future, it won’t be in the *near* future — I’ve got writing to catch up on now.

At some foreseeable-but-not-soon point I’m also thinking I need to do the same sort of thing for #MotW and #FateAccelerated content.