typho log: week #5

✍️ → Written on 2022-04-17 in 590 words. Part of cs software-development digital-typesetting


In week 5, I focused on discussions with two experts from the typesetting community.

Goals and achievements

  • I talked with Marei from peitex. She is an expert on LaTeχ, its recent developments and has many customers asking for LaTeχ templates. She also teaches people in the use of LaTeχ (I think mainly academia).

  • Furthermore, I had a long discussion with Patrick Gundlach. And I asked so many questions. I have Patrick’s work on my observation list for about 10 years, because I was interested in his LuaTeχ book. But writing a book takes a lot of effort and it was never published. Patrick’s project is speedata (publisher).

    • Speedata publisher (based on LuaTeχ with an XML stack and without the macro system) which solves many usecases, I have in mind. It is very interesting software and I try to figure out why so few people use it. I hope for a larger community for speedata. But one limitation is that speedata does not support footnotes which limits the applicability of speedata in academia. And compared to my typho stack, I also want to generate EPUB (and many more) besides PDF as backend.

    • His blog is full of interesting typesetting topics, mostly in German though.

    • I want to look deeper into speedata’s layout model. It to be seems separate from CSS3 and to be a subset of Teχ’s model.

    • I came up with one exercise for myself: a real-world usecase for speedata is the generation of the schedule booklet of Grazer Linuxtage. Currently the booklet is done by one volunteer in Scribus with several automation mechanisms, but a lot of manual labor. Can we automate the generation of the booklet by reading the schedule.xml?

    • His recent effort boxesandglue is very interesting. It tries to rewrite the core Teχ algorithms (line breaking, hyphenation, badness computation, shrink/expand computations) in Go to get rid of the LuaTeχ dependency.

  • Discussions with Patrick made me start re-reading Knuth’s paper “Breaking paragraphs into lines” in more detail. I read it in ~2015, but did not bother to check the algorithmic claims. Now I do.

    • I want to spend one week in the near future to implement it in rust and run runtime experiments. I started to model the values.

    • The model made me think. I am not happy. I think it does not fit the usecases of CJK and I tweeted some random thought while thinking about it. Anyhow, a requirements analysis in context of writing systems needs to be done.


If you have a LaTeχ stack and want to migrate to a certain standard/template, please consider hiring peitex. If you want to create a product catalogue, please consider hiring speedata.

And speaking of Go… I should really go into release management mode now 😌