The TeX extension "sTeXme" allows to manipulate TeX internals using the Scheme programming language. sTeXme = TeX + Scheme.


Download: from SourceForge.

The [La]TeX macro language was a great development when it appeared, but now it is too out-of-date. Programming in TeX is a fun, but more often it is a pain.

As it seems for me, only very few people can write [La]TeX macros, but a lot of people would like doing it (like me, for example). This is the problem.

One of the solutions is to provide another scripting language for TeX. That's what is the goal of the sTeXme project. It should provide the Scheme programming language as a TeX scripting language.

At the moment I've done a proof of concept. I've tested that Scheme code can be executed from TeX and that Scheme code can access TeX internals (getting a string from the TeX string pool, getting a macro definition as the Scheme list).

Even in it's early state you can find sTeXme useful. I've written a Scheme procedure which recursively dumps a macro definition. For example:

(print-cmd-rec "@ifundefined")  ====>
\@ifundefined = (match endmatch "expandafter" "ifx" "csname"
  (param 1) "endcsname" "relax" "expandafter" "@firstoftwo" "else"
  "expandafter" "@secondoftwo" "fi")
\@firstoftwo = (match match endmatch (param 1))
\@secondoftwo = (match match endmatch (param 2))

I wish I had it before, as some time ago I was digging in the LaTeX code!

sTeXme at SourceForge | Author: Oleg Paraschenko Logo