Three editions, and a macro that refuses to compile

The book exists in Italian, English and Hungarian. The Italian edition is the published one, the English has reached the end of its style review, the Hungarian is fully translated and reviewed up to the halfway mark. They come from the same machinery, but they are not the same book, and the difference isn’t in the sentences.

The first thing I learned is that you don’t translate the text of a technical handbook. You translate the conventions.

The clearest case is the greatest common divisor. Italian writes MCD, English writes gcd, Hungarian writes lnko. This isn’t a language question, it’s notation: three different symbols that appear inside formulas, and a student reading the wrong abbreviation stumbles exactly where they should be gliding. So I have three separate macros, \mcd, \gcd and \lnko, one per edition, and the names are deliberately different. I could have given them all the same name and swapped the definition per edition: that would have been more elegant and far more dangerous. With different names, if I paste a piece of a proof from the Italian edition into the Hungarian one, the document doesn’t compile. The error shows up immediately, on my machine, instead of arriving in print in a reader’s hands.

A footnote for colour: in Hungarian I had to capitalise the macro for the least common multiple, because the natural name was already taken by a TeX primitive. Those are the three seconds of bewilderment a system from 1978 hands you.

Hungarian then produced a problem I hadn’t anticipated, one that forced a tool swap in the chain. The index is generated by a program that sorts entries alphabetically, and the classic one doesn’t know Unicode: on accented headwords it simply breaks. But the deeper trouble is elsewhere. In Hungarian, cs, gy, ny, sz, ty and zs are single letters, not letter pairs, and must be collated as such: entries starting with sz come after all the s ones, not in the middle. A sort using Italian rules produces an index that to a Hungarian reader just looks broken. The fix was a different generator, one that takes the language’s collation rules and applies them.

Then there are the decisions that concern the reader rather than the code. The Italian book carries on its cover an explicit reference to the Italian three-year computer science degree. In the English edition that reference survives, but stated for what it is, an Italian degree programme, because the reader needs to know where the book in their hands comes from. In the Hungarian edition I removed it entirely: that classification doesn’t exist there, and a subtitle naming a foreign university system helps nobody. I kept only the reference to the local computing degrees.

There’s one last thing I’d rather state plainly. I have no native Hungarian reviewer, and I don’t speak Hungarian. The linguistic quality of that edition rests on a corpus of reference texts and on cross-checking between different models, which is a thinner safety net than one competent human reader. I know it, it’s written in the project documents along with everything else, and it remains the most fragile point of the whole undertaking.

The funny part is that the working plans for the Hungarian edition are written in Italian. The project’s service language stays mine, even when the book no longer speaks it.


Last modified on 2026-07-15