After a very long pause since the last release, Compositor 1.25 is finally available, with one innocent-looking feature addition, fueled by some bigger improvements under the hood.
But first of all, sorry once again to keep you all waiting for so long. The main reason for the long hiatus was that in 2023 I had three major house renovation projects going on, and that consumed a lot of my time and energy. Preparation for the first project started in early February last year, and the last project was only completed in late October.
So work on a new release only started in earnest in early Winter 2023. My goal for this release was to finally get support for URLs working over the winter. What sounds like a very modest goal had previously presented itself as quite a challenge.
My first (failed) attempt at adding support for the \url
command was back in 2019
(would you believe it!). A slightly frustrated Karl leaves
this comment
on the ticket back then:
What looked like a straightforward command to add (on the surface similar in shape to, say, \emph{}
)
turned out to be much more involved. And it became more and more obvious
that my understanding of the inner workings of TeX was still lacking – a lot. I didn’t really
understand what was going on.
So back to the documentation I went. I was reading the Texbook while drinking my morning coffee, stared at the TeX source code during lunch breaks, and was reading TeX by Topic in the evenings on the couch, over and over again, for many weeks.
And slowly I understood what was missing. One of the problems highlighted by the \url.sty
macros
was that I had been ignoring TeX’s token list conversion functions (e.g., \string
, or \meaning
) up until now.
Also, the url
macros send their arguments through repeated transforms, and it turned out Compositor’s token
list node tracking code had lots of holes in it, so the source position information got lost along the way.
Assured by his newly-gained knowledge, a much more cheerful Karl leaves another comment on the ticket:
And, a few weeks later, victory is proclaimed:
My hope is that the internal improvements I made in the course of adding support for URL formatting will make many of the upcoming features a lot easier and quicker to implement. That’s why I did not want to give up on what looks like a minor feature addition from the outside.
Ok, end of story time.
Here’s what’s new in this release. As usual, the complete list of fixed bugs and new features can also be found on Github.
Improvements
Add “Insert / URL” and “Format / URL” menu items #397
There’s finally support for URL formatting via two new menu items:
Insert / URL | Format / URL |
The former inserts a placeholder URL at the caret location, while the latter wraps
the current selection in a \url
command:
Note that the \url
command is provided by the url
package. I chose the
url
package over hyperref
, because the latter is really big and complex.
Maybe there will be support for hyperref
in the future.
Other
Next Up
Release 1.26 will focus on a new source editor UI.