Static analysis of expl3 programs (12): Expltools goes to Canada
Last month, I visited Canada for the second time, following my trip to Vancouver during my postgraduate studies for ACL 2017. This time, I first spent five days with my family in Banff National Park and then attended the three-day TUG 2026 conference in Calgary.
At TUG, I presented two talks. The first, titled Expltools: Two years of LaTeX3 static analysis, covered the latest developments in the expltools bundle that I have been blogging about for the past two years.
In this post, I will recount the whole week as I remember it. For more information about TUG, see also the conference program and watch the other talks in this YouTube playlist.
July 10 and 11: From Brno to Banff
On Friday, July 10, I travelled by train from Brno, Czechia, to Prague, where I spent the evening with my brother and mom at Klášterní šenk before spending the night at the Charles University dormitories.
Early the next morning, the three of us flew from Prague to Calgary, Canada, via Frankfurt. Despite roughly 14 hours of travel, we arrived in Calgary the same evening because of the time difference.
From the airport, we took a bus directly to Banff, where we checked in at the Samesun hostel in shared dormitory rooms.
July 12: Cave and Basin, Cascade of Time Garden, Bow Falls
On Sunday, we explored the town of Banff and its immediate surroundings, visiting the Cave and Basin National Historic Site, the Cascade of Time Garden, and Bow Falls.
July 13: Emerald Lake, Lake Louise, Moraine Lake, and Johnston Canyon Waterfalls
On Monday, we took a guided tour of the “big three” glacial lakes: Emerald Lake, Lake Louise, and Moraine Lake.
The tour ended at Johnston Canyon, where we left the guided group so that we would have enough time to visit both the Lower Falls and Upper Falls. Afterwards, we returned to Banff by bus.
July 14: Banff Wildlife, Sulphur Mountain
On Tuesday, we first took a morning wildlife-viewing tour.
We were lucky enough to spot a grizzly bear mother with three cubs. If only silly old me had thought to bring a long lens for my Canon EOS 80D.
In the afternoon, we took the gondola to the top of Sulphur Mountain and back.
July 15: Lake Minnewanka, Stewart Canyon, Back to Calgary
On Wednesday, we checked out of the Samesun hostel and took a bus to Lake Minnewanka, where we hiked to Stewart Canyon and back.
In the evening, we took a bus to Calgary, where we checked in at the conference hotel and venue, Alt Hotel Calgary East Village.
July 16: Calgary Public Library, City Hall, Tower, Peace Bridge, and Chinatown
On Thursday, we spent most of the day walking around Calgary.
In the evening, I attended the reception on the mezzanine of the Alt Hotel, where I greeted Erik Nijenhuis and Frank Mittelbach and met Max Chernoff, Timothy Erickson, and Aarush Bhat in person for the first time.
July 17: The first day of the conference, Calgary ZOO
The first day of the conference was heavily focused on accessibility and PDF/UA-2 compliance in LaTeX and beyond.
My brother and mom spent the day at the Calgary ZOO.
I spent the evening reading through my slides and scribbling notes on my Onyx Boox Max 2 Pro reader in preparation for my two talks scheduled for the next day.
July 18: The second day of the conference, Horseshoe Canyon, Royal Tyrrell Museum, and Willow Creek Hoodoos
The second day of the conference was much richer thematically, moving beyond accessibility to other developments in the TeX world.
In the morning, I gave my first talk, titled Expltools: Two years of LaTeX3 static analysis (see also the presentation slides), in which I discussed the latest developments in my expltools bundle.
During the coffee break after my talk, I spoke with Matthew Skala, who offers an online machine learning course and was interested in further exploring an experiment that I had presented in Section 4 of my talk.
I also spoke with Mitchell Gerrard, who was interested in the topics from the talk through our shared interest in static analysis of computer programs and later that day gave their own talk on literate programming.
In the afternoon, I gave my second talk, titled No more backtracking: Abbreviations in the Markdown package for TeX (see also the presentation slides, the preprint, and the finished article in TUGboat 47:2), in which I discussed a new feature in my markdown package for automatically formatting acronyms in Markdown documents.
After the talk, I spoke with Erik Nijenhuis and Boris Veytsman, both of whom suggested extracting the underlying algorithm and generalizing it for use in LaTeX documents more broadly. I outlined what this would entail in Section 7, titled Future work, of the TUGboat article.
At the end of the day, the TUG Annual General Meeting took place, chaired by Karl Berry. I also met Karl in person for the first time, despite having corresponded with him for well over a decade.
My brother and mom travelled to Drumheller, where they visited Horseshoe Canyon, the Royal Tyrrell Museum in Midland Provincial Park, and the Willow Creek Hoodoos.
July 19: The last day of the conference and back to Brno
On the last day of the conference, all three of us checked out at the hotel. In the morning, I attended the remaining talks while my brother and mom played pool in the hotel lobby.
attribution="Jim Tubman" %}
After the lunch, I said my goodbyes and we left for the airport.
The flight back to Prague took another 14 hours, but this time the time difference worked against us. We arrived the following morning, and I then took a train to Brno, where I arrived late that same night to my wife and son.
Parting thoughts
This summer was crazy. Starting at the end of June, I attended OSSConf in Slovakia for the first time; thanks to Erik Nijenhuis for inviting the TUG participants to OSSConf 2027 on behalf of Pavel Stříž and me! I then spent a week with my family and in-laws in Central Bohemia before heading to TUG.
Almost immediately after returning home from TUG, I headed to my first international LARP, discussed in a separate blog post, followed by cooking at a summer camp and renovating our own kitchen. Altogether, that made for almost two months of near-continuous social activity, which I found particularly exhausting.
For those reasons, I arrived at TUG 2026 more stressed than usual, and much of the conference passed in more of a blur than I would have liked. Despite that, and despite the many competing experiences, TUG 2026 was still the highlight of my summer. I thoroughly enjoyed it and am looking forward both to future TUG conferences and, perhaps, to seeing more of Canada someday.
Last updated on September 2, 2026