Programming LaTeX3: Introduction

Development of LaTeX3 has attracted interest from other TeX programmers for a while. One of the big barriers to new entrants is that programming LaTeX3 is distinct from programming LaTeX2e or plain TeX. So what is needed is a ‘Programming LaTeX3’ guide. The problem is getting one written: these things take time, and what to write is also something of a challenge.

To make a start on tackling this, I thought it would be useful to write a series of short blog posts, taking one area of LaTeX3 at a time and looking at it from the point of view of beginner in programming LaTeX3. The idea is that by keeping things short I can divide the problem into manageable chunks (both for readers and for me), and get feedback on each part before taking on the next one. If I make decent progress, I’ll then have some material to edit into something like an article for TUGBoat.

Now, to do a reasonable job I will have to cover some things I’ve looked at before: sorry if it turns out to be repetitive in places. I’m planning to start by looking at how you can actually start programming LaTeX3 today, covering the idea of ‘LaTeX3 in 2e’, for example. Then it will be on to the basics of the language, before we even get to creating any macros. Ideas for topics to cover are very welcome!

5 thoughts on “Programming LaTeX3: Introduction

  1. Now that is cool. I’ve been waiting for something like that!

    I think that, at least at some point of time, one thing might be really needed: a table with a mapping from TeX primitives/plain TeX macros to their new, l3 names. (Yes, I know that this is more or less already present in the l3 docs, but not in such concise form.) Another one might be a l3 version of macros2e.pdf (I mean the excellent pdf by Martin Scharrer).

    Also, I still think that templates deserve a good introductory article, with real-life examples.

    And AFAIK, l3 introduces some commands for some plain TeX idioms, like expandaftercsname endcsname and such (well, LaTeX2e does it too, of course); some list of them would also be appreciated, I guess.

    And I dare to write all this only because you asked for ideas (though these are more or less obvious anyway); the mere fact that you are going to write such a tutorial is just awesome, thank you!!!

  2. I too am really excited about this.

    One suggestion is to use lots of very basic, thoroughly explained, hands-on examples — things we could literally type in and see the results of.

    I’d like to know things like: which tools do you need to do the compilation, which libraries/packages do you need to have installed, what options do you pass the tools and why, and detailed examples of how to accomplish basic things with these tools.

    Of course, ideally we’d be learning how to do things with LaTeX 3 that we couldn’t do (or would have a hard time doing) with LaTeX 2e, but more important is simply learning the basics well enough to teach yourself the rest using the documentation that’s already available.

Leave a Reply