Wow, that sure took a lot of work!
Well, actually most of it is automated. I wrote a little lisp program that reads the .lua file with the assignments and outputs a LaTeX document. Then I just have to insert the column and table breaks, as I haven't found a reliable and good-looking way to automate that.
Of course, I had to write the lisp program, which includes a rather simplistic (and still bug-ridden) lua-parser. But most of that I already wrote in spring, when I wanted to autogenerate profiles for the G940.
The code is actually already in a public repo at
github, so in theory anybody could use that to create tables for their
customised keyboard bindings. But as I said, it is not fully automatic yet and still has some bugs and it's not exactly straightforward to run.