[Tex/LaTex] Concerns on Switching to Plain LuaTeX or ConTeXt Mark IV

contextincompatibilityluatexplain-tex

I am seriously considering to use Plain LuaTeX or ConTeXt MkIV. I will explain my expectations and worries to do so, and add several new questions. Before you mark me as duplicate, I know there are several related post, but they are relatively old, and things may have changed, so I think it is justified to stir up discussion again.

  1. The greatest attractions of LuaTeX is the complete control of low level keywords of TeX language. I expect LuaTeX to be able to implement plain TeX, while natively allowing UTF-8 characters and arbitrary font. Is it so? I don't mind the difficulty learning the syntax; what I would like to know is whether it is powerful, well-designed and systematic. Has LuaTeX lived up to expectations?

  2. The latest version of ConTeXt is Mark IV 0.61. Since the version number is less then 1, is it stable? Will syntax change greatly? Will packages persist for years to come—that is, will what there are present now, still be released by TeX Live ten years later?

  3. The danger of LaTeX is that packages often conflict, and old packages may disappear or be deprecated. This has made me tired and disappointed. Is the same true for ConTeXt? Are ConTeXt packages managed by an organized team and well-tested, so that they are less likely to conflict?

  4. If I write journal articles, is it unlikely that publishers accept ConTeXt? What about plain LuaTeX? If I submit ConTeXt or plain LuaTeX, will my article be rejected merely because of this?

  5. Or, to enhance compatibility, is it best that I wrap all functions I use, so that I may implement in both LaTeX and ConTeXt? I mean, for example if I want to make a table, then I give my own table function a name my_table. On one hand, I redirect my_table (possibly simplifying somewhat) to LaTeX package commands, and share with others, so they may compile with pdflatex. On the other hand, I implement my_table in ConTeXt, tuning it to the manner I wish, and keep a personal copy compiled with context. Do you think this is a good idea, or is it too difficult?

I am moderately familiar with basic LaTeX commands, but has know almost nothing about LuaTeX and ConTeXt. Above is what I understand by now, and I welcome corrections.

See also (not quoting full title):

Best Answer

I expect LuaTeX to be able to implement plain TeX,

that has thing backwards really, luatex implements a more or less Tex compatible engine, it does not implement plain tex, it is compatible enough that plain.tex may be processed by luatex instead of tex.

there are some places where there are documented differences in behaviour (notably around hyphenation) but mostly if you stick to classic plain tex input it will work in the same way as pdftex.

The latest version of ConTeXt is Mark IV 0.61. Since the version number is less then 1, is it stable?

I wouldn't read too much into version numbers. It is true that more or less no software is as frozen as tex itself, things change, but not in unmanagable ways.

The danger of LaTeX is that packages often conflict, and old packages may disappear or be deprecated. This has made me tired and disappointed. Is the same true for ConTeXt?

I don't think that's a latex issue really. Any system with lots of extension packages has the problem of different extensions. LaTex has many many more users than Context. You could stick to the core latex release you don't have to load every contributed package on ctan,

If I write journal articles, is it unlikely that publishers accept ConTeXt? What about plain LuaTeX? If I submit ConTeXt or plain LuaTeX, will my article be rejected merely because of this?

as far as I know essentially no journals will accept plain or context sources.

Or, to enhance compatibility, is it best that I wrap all functions I use, so that I may implement in both LaTeX and ConTeXt?

While that's possible in theory in some simple cases the two systems are sufficiently different that this is going to make things vastly more complicated and in practice limit you to a subset of features that are easily available in both systems. I really wouldn't recommend this.

It's different at low level programming level, expl3, pgf etc work just above the level of tex primitives and work in latex and context, but for any higher level document structure things diverge rather more.