I’ve decided to ditch Adobe’s Creative Cloud apps — Photoshop, InDesign, and Illustrator, mainly. I never thought I’d say that, but they’re too expensive. Instead, I’ll be using Affinity Photo, Affinity Publisher, and Affinity Designer. It’s a fairly small one-time cost instead of a dreary, never-ending, money-sucking subscription.
(If/when I need to do motion graphics or video editing in place of After Effects and Premiere, by the way, I’m planning to use the free version of DaVinci Resolve.)
So far I’ve only actually used Affinity Photo, to texture the piece I released yesterday. Worked like a charm. The live split-screen preview when applying a filter is brilliant, and the file sizes are much smaller, too. (In Photoshop I’d regularly end up with a 1–2 GB PSB file. With Affinity Photo, it’s closer to 300 MB.)
As far as typesetting goes, I still expect to use TeX (Tectonic) on projects where it makes sense — it’s what I used on the wide margin study editions since typesetting each language individually would have taken much more time — but it’s nice to have Affinity Publisher for other projects. I’m planning to use it for the book of narrative poems I’m (slowly) working on. (I’ll be setting it with Hinte, a new typeface I’m designing in FontForge. More on that soon.)
With Figma doing most of what I used to use Illustrator for, I don’t expect to use Affinity Designer all that much initially. But the raster brush textures are intriguing. We’ll see.
Tectonic is an intriguing modern TeX engine written in Rust and powered by XeTeX.
What exactly that last bit means, I’m not entirely sure. But what I do know is that Tectonic is a much smaller install than MacTeX, and my initial tests came out with no problems whatsoever. Also, by default it doesn’t write out those intermediate .aux/.log files. I’m planning to use it instead of MacTeX going forward.
Rather than starting work on Ink with the low-level typesetting engine, I’m thinking it’ll be worthwhile instead to start with a processor that goes through Ink rules and outputs TeX and/or SILE code. More to come later.
As mentioned on Twitter, I’ve decided to write my own typesetting engine, called Ink. Apparently I’m crazy.
The details are still very much in the air, but here are some quick notes:
- Written in Rust (for speed)
- Programmatic (sort of like TeX)
- Intended for use in typesetting book interiors, covers, and charts
- Possibly some kind of template/data division
- Full OpenType feature support (shaping via HarfBuzz)
- Custom PDF generation library (inkpdf)
Reasons for doing this insane thing:
- PlotDevice only runs on OS X and I want the source of my language charts to be usable on other platforms.
- I’d like to open source the books I typeset, so InDesign isn’t a great solution.
- TeX is powerful and well-seasoned and all, but it’s not exactly pleasant or easy to work with, especially for the kind of stuff I do.
- I’ll learn a lot and have fun while I’m at it.
The initial roadmap, not necessarily in order:
- Write inkpdf in Python (which I think will be a better fit for the charts anyway)
- Get familiar with HarfBuzz
- Learn Rust
- Port inkpdf to Rust
- Plan out the Ink language (I’ve started on this and it’s looking promising)
- Figure out how scripting is going to work and embed the interpreter
I’ll document the process on this blog, of course. First steps: reading the PDF spec and figuring out how to make PDFs by hand.
(For those who’ve been reading for a while, Ink was also the name of my static blog engine. That’s now ink-static, and at some point I’ll either retire it completely or change the name to something unrelated.)
As I’m now starting to get more serious about writing novels, I recently made a list of the next few books I want to write after the one I’m working on, and I ran into an unexpected side effect: knowing what the next few items in the queue are has somehow made writing a novel feel far more doable. It’s now a task that has an ending, rather than being something with no end in sight.
Sidenote: I’m not sure how much I’ll talk here about the novel in progress, at least not until I finish a full draft, but I do plan to talk about tools and process. (For example, I’ll write more about this later, but I’m using Vim with a Git repo and a post-commit hook that generates a print-ready proof PDF of the full book via TeX whenever I commit.)