Is a successor for TeX/LaTeX in sight? [closed]

TeX/LaTeX is great, I use it in many ways. Some of its advantages are:

  • it uses text files, this way the input-files can be diffed and many tools exist to work with text
  • it is very flexible
  • it has a stable layout: if I change something at the start of the document, it doesn't affect other things at the end of the document
  • it has many extensions to reach different goals (a successor would start without extensions, but would have a good extension-system)
  • you can use standard build control tools to support complicated documents (thanks dmckee)
  • you can encapsulate solutions and copy&paste them to new documents or send them to others to learn from (thanks dmckee)

But on the other hand some little things are not so good:

  • it is hard to learn at the beginning
  • it is complicated to control position of images
  • a few things are a little counter-intuitive
  • sometimes you have to type too much (begin{itemize} ... \end{itemize})

So, does there exist a successor/alternative to LaTeX or at least is some hot candidate for an alternative in development. A real successor/good alternative would keep the advantages and fix the disadvantages, or at least some of them.


Solution 1:

There is a LaTeX3 project that has been going on for basically forever. In that sense, it is a successor to the current LaTeX2e.

You forget/ignore the primary goal for TeX when it was created -- "TeX is a new typesetting system intended for the creation of beautiful books". The goal of TeX was typesetting, and its primary concerns were things like "Breaking Paragraphs Into Lines" (Donald E. Knuth and Michael F. Plass, Software--Practice and Experience, Vol. 11, pp. 1119-1184, 1981), ligatures, kerning, beautiful fonts (Knuth worked with Hermann Zapf in creating typefaces like AMS Euler), and precise control over layout of text on a page.

LaTeX was a later set of macros built on top of TeX that introduced "document management" capabilities like automatic numbering of equations and sections, cross-referencing, and so on. It goes by "LaTeX: a document preparation system".

One can very well imagine successors to LaTeX, alternatives that offer LaTeX's document management capabilities, and perhaps do it better -- like DocBook. (Well it's based on XML, but...) But it is hard to imagine alternatives that will replace TeX, the typesetting engine itself. TeX is probably among the programs with the least number of bugs in it -- Knuth offers $327.68 for every bug found in TeX, and has done so for a long time. A lot of thought has gone into it, with Knuth's characteristic pursuit of perfection. Every aspect of it is configurable, the code is public domain (well except for the restriction that if you make modifications you must call it by some other name -- this is because of TeX's goal that the same TeX file typeset on any machine anywhere in the world should produce an exactly identical-looking document forever into the future), and books have been written about TeX: The Program itself, and also about all the bugs that were discovered in TeX.

Some of TeX's ideas have been incorporated into Adobe's Indesign (for example), and those typesetting engines too have some innovative ideas, but TeX still remains superior. [Note: Knuth didn't intend TeX to be the standard forever, only "for the next 100 years or so" until something better comes along. For all we know, one might.]

There are TeX-based alternatives to LaTeX, such as ConTeXt and LuaTeX. It is possible that there are tasks for which they are better suited.

To answer your other objections: Although LaTeX has possibly introduced more complexity than is necessary, the TeX part of the learning is unavoidable -- if you want to create beautiful books there are some things you have to know, no matter what. And it is not hard to control position of images; TeX was designed to give you control over every point on the page, but to exercise that control you may have to go beyond the simple constructs (although I've never had to...) And if you use a good editor or macros, you won't have to type too much \begin{itemize} ... \end{itemize}; that's just a lame complaint :P

Solution 2:

The short answer is 'No' as LaTeX is the incumbent and quite good at its job. It's also free, so there is relatively little commercial incentive to attempt to replace it. In fact, TeX is sufficiently good at technical publishing that the commercial market for technical publishing tools is rather squeezed between TeX at the 'geek' end and word at the 'great unwashed' end.

The longer answer is 'There are alternatives'. LaTeX and other packages suffer heavily from leaky abstraction issues and often require technical intervention to get what you want out of it. This puts you in the business of understanding how it works behind the scenes, which is actually fairly technical. Thus, you can only really use it for non-casual applications if you have access to someone with that level of technical skill. Writing a report or book is fine. Building a single-source technical documentation workflow with LaTeX is quite a different proposition - you will need access to someone with a technical skill base.

Alternatives to LaTeX

  • Commercial technical publication tools. There is really only one left standing: Framemaker. This is a mature product but somewhat stagnant. However, it does have an open document and segment interchange format called MIF, a comprehensive API and extensive support for structured documentation. It's quite widely used in aerospace circles (for example) where reference documents for aircraft run to tens of thousands of pages. Additionally, there are several also-rans in this space: Ventura Publisher, Arbortext (which is based on a TeX derived back-end IIRC), and Interleaf, which is now known as Quicksilver.
    Adobe claim to be implementing technical publishing functionality in InDesign but I have not really evaluated its capabilities for this.

  • Lout A markup language with a completely different underlying architecture to TeX. I've never worked with Lout but I believe that it is somewhat easier to work on behind the scenes than TeX.

  • Troff/Groff. Originally designed for technical documentation within AT&T during the 1970s (actually a spinoff of the UNIX R&D work), it's still quite widely used for this today. For quite a long time most if not all O'Reilly books were typeset using it.

  • DocBook. This is an XML tag based format for structure documentation, and tends to work by rendering through foreign engines. I've never used DocBook, so I can't really comment on its usage in practice.

  • Wordperfect. This is a venerable word processing system that is considerably better at documentation-in-the-large than MS-Word. Although viewed as something of an also-ran it retains several niche markets such as law offices and is reasonably good (at least significantly better than Word) for large, complex and heavily cross-referenced documents.

  • Microsoft Word. Not recommended for serious technical publication tasks due to its instability on complex documents. However, as often as not it is the only choice due to political constraints. Indexing is especially painful.

EDIT: See this Stackoverflow post for a more in-depth rundown on Framemaker and other technical documentation tools. It's an answer to a question about technical documentation tools for someone who specifically didn't want to use a markup language based system.

Solution 3:

Have you had a look at ConTeXt? It's a set of macros for TeX that can be used instead of LaTeX.

I haven't used it myself but the syntax in the example documents looks simpler than LaTeX in a number of cases.

Solution 4:

I have already published five books typeset in ConTeXt four of which were museum catalogues with high-quality colour illustrations. It is definitely production ready.

Solution 5:

TeX is actually a fairly special purpose typsetting system. It does what it does well, but there isn't a large enough need for something better. "When he designed TeX, Donald Knuth did not believe that a single typesetting system would fit everyone's needs" (wikipedia)

Most of the "newer" systems build guis and extend TeX, which I believe is the right approach.

There are very good reasons for the 'issues' you are facing, so if you want to propose that it be done differently please research those reasons first.

Second, you yourself indicate that TeX is great except for a few minor quibbles. Knuth built it expressly knowing that it wouldn't be suitable for all uses and all people, but he released the source code and built an extension API so that anyone could adapt it for their needs.

You have all the tools you need to make the changes you propose, and it will be far easier to update TeX than to start from scratch, or even adapt any other system. Truly, nothing comes close to TeX. That's not to say that it's the best, but merely to drive home the point that it would be a monumental effort to implement all the good things you mention and somehow overcome the bad (although by the time you get to the bad you may better understand why it exists).

Regardless, I hope you pursue this, even as an advocate, and get others interested in it. It would be great to see take up of TeX in other fields, but that does require modification and update for ease of use and a better support of other technical entities than mathematical equations.

-Adam