Static analysis of expl3 programs (10): Expltools goes to India

Yesterday I returned from TUG 2025 in Trivandrum, Kerala (July 18–20, 2025), where I was thrilled to present my talk announcing the development of expltools to the broader TeX community.

In this post, I will try to briefly summarize my experience in the form of a travel diary while it is still fresh in my mind. I’ll concentrate on my own experiences rather than the full program details. If you’d like to explore the agenda itself, please consult the conference program and watch the YouTube recordings here: day one, part one and part two, day two, and day three.

July 16: Getting from Brno to Trivandrum

Early in the morning on July 16, I took a train from Brno to Prague.

Getting up-to-date on the current gaming news with the LEVEL magazine
Image: Getting up-to-date on the current gaming news with the LEVEL magazine

There, I boarded a flight from Prague to Abu Dhabi and then a connecting flight to Trivandrum, where I arrived early in the morning of the next day.

After getting to the hotel, I slept until shortly before the noon.

My hotel room at the Hyatt Regency hotel just before taking a rest after the flight
Image: My hotel room at the Hyatt Regency hotel just before taking a rest after the flight
A view of the city from the east-facing window of my hotel room
Image: A view of the city from the east-facing window of my hotel room

July 17: Exploring Trivandrum

This was my first time visiting India. Therefore, after I woke up, I spent the rest of the day walking around the city.

The Centre for Development of Advanced Computing
Image: The Centre for Development of Advanced Computing
The Kanakakunnu Palace
Image: The Kanakakunnu Palace
A clock tower at the entrance of the University of Kerala
Image: A clock tower at the entrance of the University of Kerala
A hindu temple near the Connemara Market
Image: A hindu temple near the Connemara Market
Electrocution waiting to happen
Image: Electrocution waiting to happen

Before returning to the hotel, I grabbed a late dinner at the FOOD TEXT restaurant in the Palayam district.

About to order chicken biriani with two chicken wings and rice
Image: About to order chicken biriani with two chicken wings and rice

The food was delicious and I spend just about 250 ₹ for the meal and a glass of ginger limeade. In Prague, I can imagine paying 250 Kč for the same meal, so the pricing seemed intuitive. At the same time, Kč (Czech koruna) currently trades for about four ₹ (Indian rupees), so the meal was extremely inexpensive from my vantage point.

I returned to the hotel in the evening and took close to 10 hours of sleep, still feeling somewhat exhausted from the long flight in addition to today’s ca 15 km walk.

July 18: The first day of the conference

The next day, I woke up early and had a breakfast at the hotel before heading to the conference room and receiving my welcome package there.

Pazhankanji, a traditional South Indian dish made from leftover rice and water
Image: Pazhankanji, a traditional South Indian dish made from leftover rice and water
A welcome package, which also included a book for LaTeX beginners
Image: A welcome package, which also included a book for LaTeX beginners

During a coffee break after the morning session of talks, I introduced myself to Ben and Mathias from Overleaf. Om Sunday, Mathias was going to give a talk titled Best-effort TeX parsing for interactive editing (slides), which I expected to be the most closely related talk to mine at this conference.

During the lunch, I introduced myself to Honza Vaněk and Hàn Thế Thành, two out of four founders of the Czech company Trivic. Trivic develops proprietary XML-based systems for copyediting, proofreading, and typesetting manuscripts, all powered by TeX as the backend. Indian firms such as STMDocs deploy these systems to fulfill orders for major publishers like Elsevier. Both Honza and Thành are alumni of the Masaryk University, like myself.

In the evening, several participants, me included, took a guided bus tour around the city. We drove almost 40 km, visiting some places that I already saw yesterday as well as more distant places such as the commercial district of Pulimoodu, the Sree Padmanabha Swamy Temple, and the coastline.

The commercial district of Pulimoodu
Image: The commercial district of Pulimoodu
Puthen Kovil Sree Bhagavathy Temple
Image: Puthen Kovil Sree Bhagavathy Temple

There was a heavy monsoon rain during the second half of the tour, which made most participants hide in the lower floor of the bus.

After returning from the tour, I went to bed early, so that I would be fresh for my morning talk about expltools.

July 19: The second day of the conference

After a light breakfast, I gave a talk titled Expltools: Development tools for expl3 programmers (slides):

Video: “TUG 2025 — Day 2 Saturday Stream” at YouTube, my talk starts at 50:23

Despite my stage fright and the initial hiccups with the microphones, I felt the talk went smoothly. During the Q&A session, the questions asked confirmed that the audience had a strong understanding of the material that I covered in my talk.

During the following coffee break, C. V. Radhakrishnan — a founding member of the Indian TeX Users Group and current STMDocs employee — offered to help secure additional funding for expltools development. This is an encouraging vote of confidence in both the tool’s usefulness and the success of my presentation!

During lunch, Mathias and I revisited topics from my talk. He showed me the grammar their (La)TeX parser used, which struck me as more elegant than expltools’ pipeline approach — tokenizing the text first, then using a rule-based parser to assemble larger structures. I pointed out, however, that while less elegant, expltools’ method is inherently more robust: it retains partial understanding of complex expl3 code that can’t be fully parsed, and uses this to reduce false positives. That exchange led me to draft a paragraph in our work-in-progress paper on expltools to highlight precisely this advantage.

After lunch, I took to the streets of Trivandrum once more, retracing on foot some of the sights from yesterday’s bus-tour.

The Methan Mani clock tower (left) and the Sree Padmanabha Swamy Temple (right) over the Padmatheertha Pond
Image: The Methan Mani clock tower (left) and the Sree Padmanabha Swamy Temple (right) over the Padmatheertha Pond
A detail of the Methan Mani clock tower
Image: A detail of the Methan Mani clock tower
A Mahatma Gandhi statue in the Gandhi Park
Image: A Mahatma Gandhi statue in the Gandhi Park
The bustling bazaar along the Chalakkambalam Road
Image: The bustling bazaar along the Chalakkambalam Road
Butter chicken with rice and fresh mango juice at the Statue restaurant (Palayam)
Image: Butter chicken with rice and fresh mango juice at the Statue restaurant (Palayam)

That evening, a group of participants, including myself, attended a sitar-and-drum recital at a nearby theatre, followed by a Kathakali dance performance.

A concert featuring sitar and drums
Image: A concert featuring sitar and drums
Audio: A concert featuring sitar and drums
A Kathakali dance performance
Image: A Kathakali dance performance
Video: A Kathakali dance performance

July 20: The third (and last) day of the conference

I woke up early and packed all my belongings for the 12 PM check-out at the hotel.

At breakfast, Erik Nijenhuis, the vice-president of TUG, taught me the Dutch word Kaaskop (cheese-head). Apparently, some Dutch speakers, such as Erik, use it to describe devoted cheese lovers, while non-Dutchers sometimes employ it as a lighthearted insult toward the Dutch.

Before lunch, I snapped photos with several attendees, caught up with Honza Vaněk and Thành about the latest news from our alma mater, and assisted Jean-Michel Hufflen in porting LaTeX2e code to LaTeX3.

T. Rishikesan Nair speaks about beauty and purpose
Image: T. Rishikesan Nair speaks about beauty and purpose

During the lunch, I spoke with Vrajaraja Govinda from the International Society for Krishna Consciousness (ISKCON) in Belagavi about the adoption of GNU/Linux and (La)TeX in India and what can be done to spread awareness.

After lunch, the TUG Annual General Meeting convened under the chairmanship of former TUG president and current board member Boris Veytsman. Financially, TUG remains in the black, with its largest expenses devoted to printing the issues of TUGboat and to accounting salaries. However, membership has been steadily declining, and this year it dropped below the 1,000-member mark.

After the last session of talks, there was a calligraphic workshop by Narayana Bhattathiri.

Calligraphy by Narayana: “Letters are Beautiful” rendered in multiple scripts
Image: Calligraphy by Narayana: “Letters are Beautiful” rendered in multiple scripts
The name Frank Mittelbach, drawn by Narayana
Image: The name Frank Mittelbach, drawn by Narayana
My GitHub handle, “witiko”, drawn by Narayana
Image: My GitHub handle, “witiko”, drawn by Narayana
Thành's request: the Vietnamese text “Nhà khủng lồ” (“a giant house”)
Image: Thành's request: the Vietnamese text “Nhà khủng lồ” (“a giant house”)

Shortly after the workshop, I said my goodbyes and left for the Trivandrum airport.

Statues of a Kathakali dancer (top) and Nandi, the sacred vehicle of Lord Shiva
Image: Statues of a Kathakali dancer (top) and Nandi, the sacred vehicle of Lord Shiva

I arrived in Prague early in the morning the next day.

Parting thoughts

Attending the conference was an unforgettable experience. Not only did I make lasting connections with fellow TeX enthusiasts, but I also had the joy of exploring India for the very first time. Along the way, I collected valuable bug reports for expltools, see issues #109, #110, and #111.

My heartfelt thanks go to the sponsors, organizers, and every participant whose passion and hard work brought this event to life. I’m especially grateful to Honza Vaněk, Erik Nijenhuis, Ben Davies, Mathias Jakobsen, and Julin S. for their camaraderie throughout the conference.

Written on July 22, 2025
Last updated on July 24, 2025