186

I feel as though I have been hearing about the LaTeX3 project for a very long time.

Why is it taking so long for it to come into fruition? Are there major technical difficulties, or is it purely a lack of developers that is causing a bottleneck?

7
  • 20
    Are you offering to help? :-) Aug 4, 2010 at 3:21
  • 48
    No, but that wasn't my question. It's like if I asked "What makes the Riemann Hypothesis difficult to prove?" I am not volunteering, but I'd actually like to know what is causing the difficulty, e.g. some branch of mathematics that is underdeveloped. I realise my question sounds like a complaint though.
    – bryn
    Aug 4, 2010 at 5:40
  • 37
    A more useful rephrasing: what progress is being made in LaTeX3, what is left to do, and when is it estimated to come out? Aug 4, 2010 at 7:08
  • 12
    I don't see why this is subjective: there are definite reasons for the delays.
    – Joseph Wright
    Aug 4, 2010 at 7:26
  • 5

5 Answers 5

169

Will has written a couple of short answers, I'll add a bit of detail.

There are several things that are wrong with LaTeX2e. Most obviously to end users, the kernel is rather inflexible. As a result, to get what you want you almost always need to load quite a number of packages, or do some low-level hacks of the kernel. That is not really ideal: I think most people would be happier not having to remember 'load package X to do ...' for every document they write. So the first challenge is to write a kernel which does many of the common tasks (such as those covered by KOMA-Script or memoir) without needing add-ons. The current aim is to include 'most of The LaTeX Companion': that is a lot of material.

The second challenge is that programming LaTeX2e is a mix of TeX, documented LaTeX, undocumented LaTeX and picking up stuff from packages. That is not a good thing: what is needed is documented system for programming. That is at least partly what expl3 is about: it provides a lot of lower-level programming material, although there is still lots to do.

The next things are 'big challenges' (we know how to do the two things above, it's just lots of work, whereas here I'm talking about things we have to work out how to do). Actually providing a way to make design and coding separate is not easy. The CSS model from HTML does not answer all of the issues we have in a typesetting system, so a new model is being developed (as xtemplate). There are then questions such as a better output routine, to allow things like grid typesetting, more complex column and float placement and so on. None of this is easy.

You also cannot ignore the fact that LaTeX is written by people in their spare time. There have been periods when the various people involved have had a lot of things on outside of LaTeX. It is pretty clear that some momentum was lost due to writing The LaTeX Companion, peoples jobs, other LaTeX packages, etc.

Put together, these issues mean that the project is very challenging. Looking at it today, both Will and I are active in trying to get the work done. We've both only joined the LaTeX Project relatively recently, and are putting in the serious effort that is needed. One of the aims of releasing material to CTAN as it gets to a stable state is to demonstrate that delivery is possible. For example, both expl3 and xparse are usable and do give real benefits.

One final point. LaTeX2e was released in 1994, and since then has acquired a lot of users. Even so, some people still use LaTeX2.09 concepts (such as \documentstyle). LaTeX3 will face a much bigger 'hill' than LaTeX2e did, and it will only succeed if the benefits are big enough to get a critical mass of users. To do that, we need to deliver on a lot of the issues with LaTeX2e. (See for example the 'there is nothing to improve' answer.)

There is always more that can be done, and I am focused on delivery (I don't want to load lots of support packages any more than anyone else does). One place to help out would be to work on documentation. We have some stuff, but we know that it needs improving. Feel free to drop the Project a line with offers of assistance or send a pull request to LaTeX3 GitHub repository!

12
  • 21
    I like the sound of true separation of design and coding. I've thought for a while that journal class files really ought to just modify the design and leave the coding alone. Aug 4, 2010 at 7:52
  • 4
    I agree entirely. For that to happen, we need to provide sufficient flexibility at the coding level so that design changes don't need code alterations. At the same time, some people will still need new functions, so we also need to provide guidance that classes should only do design, with an accompanying package for code additions.
    – Joseph Wright
    Aug 4, 2010 at 7:59
  • 2
    Hey, as I was reading that page, I noticed you point people looking for information to the usenet news group comp.text.tex. You should definitely add a link to this site, I think it's much more user friendly than a news group :P Perhaps you could also add a link to the help page? :D
    – levesque
    Nov 16, 2010 at 17:01
  • 26
    "You also cannot ignore the fact that LaTeX is written by people in their spare time." Which makes me extremely sad. Many linux kernel developers today are employed and paid for that by some of the large firms that are interested in advancing its state and adding features they need. It is a system that works well: the kernel itself is free, but people are paid to work full-time on it. Similarly, there should be lot of publishers interested in investing on a better LaTeX; but what do we get from them? Just some crappy twenty-year old journal styles, incompatible with everything. Feb 15, 2013 at 19:08
  • 6
    @FedericoPoloni For publishers, the fact that their styles work is the key thing. Many of them probably have custom code that does the jobs they need, and while there's a long-term payoff in having an improved LaTeX there is not the driving force to pay for it.
    – Joseph Wright
    Feb 17, 2013 at 7:21
66

When Don Knuth wrote TeX he wanted to create "just a typesetting language" but in response to user demand the macro language grew and grew. He also said that, if at the time he wrote TeX there was "a universal simple interpretive language that was common to other systems, naturally I would have latched onto that right away".

The future in my view is to use TeX or similar as (largely) just a typesetting language, and use another language (Python is my choice), and to largely drop the TeX macro language. After all, no-one except specialists write PostScript by hand today.

The LaTeX 3 project insists on doing almost everything using TeX macros, and the long-standing delay (already over 15 years) is proof not of the difficulty of the task but of the problems in the approach.

The other problem is that to make progress one has to let go of a large amount of legacy code. But this can be done, as is proved by ConTeXt.

4
  • 3
    In my answer I've tried to highlight the problems that are not at the coding end, as well as those that are.
    – Joseph Wright
    Aug 4, 2010 at 20:52
  • 10
    I agree with your post, especially with the second paragraph.
    – topskip
    Aug 5, 2010 at 6:12
  • 10
    I agree about the need for some basis other than Tex for serious users. But the Tex language is the lingua franca for the Tex community, and I think that expl3 will have value as a pidgin, beyond its importance for Latex3. Aug 9, 2010 at 9:46
  • 1
    This answer is exactly how I feel. And there's precedent for the solution: look at PHP and HTML. In that case the coding aspects and presentation aspects are separated into two languages. Mar 16, 2018 at 19:26
17
  1. The LaTeX3 people don't need LaTeX3 to make their living. It's "just" a hobby, but it's not the final result that is inspiring them, but getting the best technique into latex3. The LaTeX3 guys are smart but technic guys (IMO, that is not meant to be negative!) So shipping in time is not a primary goal.

  2. LaTeX2 is "good enough". And for those who need more, there is always ConTeXt. So: who needs LaTeX3? (Needing something is a high motivation factor for getting things done quickly)

3
  • 14
    As I say in my answer, I don't do things without wanting to ship. The point for me is writing things that other people can use, otherwise I'm wasting my time.
    – Joseph Wright
    Aug 4, 2010 at 7:29
  • 3
    I said "shipping in time", not "shipping". Of course, every software engineer wishes to ship, but shipping in time is usually something someone else wants (marketing department, the boss, the userbase, ...). Of course we can argue what "in time" means.
    – topskip
    Aug 4, 2010 at 7:45
  • 8
    See my siunitx package, where I'm always keen to ship 'as soon as I can', and to provide some idea of when that is via my blog. For example, for LaTeX3 I hope to look at the output routine, galley model and various low-level functions by the end of the year.
    – Joseph Wright
    Aug 4, 2010 at 7:54
11

To quote a wise man:

LaTeX 3 is immune to “potentially rather large resources” because the kind of horse you can hope to complete this course with is no longer bred.

4
  • 8
    Considering the continual development of LuaTeX, ConTeXt, and numerous LaTeX packages, some of whose authors aren't really that old (including me!), implies to me that this quote should only be taken in jest and with a very large grain of salt! :) Nov 17, 2010 at 9:10
  • 7
    No, I'm not convinced. It is about TeX macro language developers, so LuaTeX does not count (that is engine development all in C, and by hard core long time TeX devotees anyway), neither ConTeXt does since most of the new development is actually getting ride of TeX code and replacing it by Lua (not as if Hans is that young TeX developer either), most new LaTeX packages does not count, merely trivial stuff that requires no deep TeX knowledge that is needed to fix the real issues LaTeX has, so this leaves us with few crazy young persons who think TeX programming is fun :p. Nov 17, 2010 at 11:20
  • 5
    Also, even that expl3 is real complex development, I'm yet to see it fixing a real issue, so I'd not count it either. So until there is a real LaTeX3 development that fixes real perceived problems, I think this quote really applies (I'm pretty sure the people who started LaTeX3 were young by then, now LaTeX3 is still nowhere and they are no longer young nor active doing it). Nov 17, 2010 at 11:24
  • 4
    thanks for the quote. :) I count myself as a crazy young person who thinks TeX programming is (lots of) fun. So I'll go and offer my help :). Jan 4, 2011 at 21:00
7

Here is an interesting talk by Frank Mittelbach: https://www.youtube.com/watch?v=zNci4lcb8Vo&feature=youtu.be

It looks like Latex development will be by evolution rather than revolution. So while Latex is indeed being developed, changing the name to Latex 3 may not happen.

1
  • 1
    That's basically it. Since the 2020-02-02, the LaTeX3 programming layer (expl3) is preloaded in LaTeX2e, and now features are actively being developed using that programming layer. The first big example is the new hook management system. Oct 3, 2020 at 16:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .