12

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):

  • 1
    The current version of ConTeXt is 2017.01.27 14:39 and 0.61 (which is now 0.63) is the version number for the mtx-context script. – Wolfgang Schuster Feb 9 '17 at 18:26
  • Oh, thank you for reminding; maybe because I am using TeX Live version; they often lag one and half year. – Aminopterin Feb 9 '17 at 18:30
  • 1
    I question the truth of #3, though I think every answer will be subjective in nature. But, really, since there are thousands of LaTeX packages, how often must there be conflicts for there to be conflicts 'often'? (Especially if we don't count as conflicts two packages that aim to do essentially the same thing.) On the ConTeXt side, which I do not really know, I think the danger is more that only one small group of people decide what (stays) in or out, which helps with 'conflicts', but makes it harder to get features 'in' unless either you or the development team sees the wisdom of that feature – jon Feb 9 '17 at 18:35
  • 3
    I think for #4, you will be better served (from an ease of submission point of view) by sticking with LaTeX. (And I say this as someone who writes in LaTeX and then needs to convert everything to .doc(x) for submission. It takes a certain kind of pigheadedness to insist on writing in a format that you know will not be accepted....) – jon Feb 9 '17 at 18:38
  • As for #5, consider the effort pandoc takes to be able to convert its own native format into multiple outputs. It is impressive, but it means you lose a lot of the (great) functionality that comes from writing in LaTeX or ConTeXt (or ...) natively. – jon Feb 9 '17 at 18:40
12

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.

  • @Aditya, Carlisle, thank you both; you are so knowledgeable and patient to have written this. I have chosen Aditya who answers first. – Aminopterin Feb 10 '17 at 5:11
  • 1
    @Aminopterin Aditya answered second (by 4 hours:-) but no matter, hope you find the systems useful, whichever you choose to use! – David Carlisle Feb 10 '17 at 8:31
  • Haha, I was mistaken that newer threads will be pushed up in the LIFO manner, I am new to here, sorry XDDDDD Never mind, I always wonder how people like you have so much time figuring out all the daunting details of the language.... I think I will give LuaTex and Context a try anyway. – Aminopterin Feb 10 '17 at 10:19
  • 1
    @Aminopterin since I've been using tex for 30 years If I only picked up one bit of information a week, I'd hopefully know something about it by now. – David Carlisle Feb 10 '17 at 10:36
12

I expect LuaTeX to be able to implement plain TeX, while natively allowing UTF-8 characters and arbitrary font. Is it so?

It is possible to natively use utf-8 characters with both xetex and luatex irrespective of the macro package. Both LaTeX and ConTeXt (with xetex or luatex engines) handle this seamlessly. It is also possible to use utf8 characters with pdftex engine with some jugulary. Both LaTeX and ConTeXt support this but it can bite you in unexpected ways.

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

The version 0.61 is of the context wrapper script. The macro package does not use semantic versions, rather the releases are numbered according to the release date.

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?

ConTeXt syntax has remained more or less the same for the 15 years that I have used it. There are have been a few changes (particularly with the way fonts were handled) when ConTeXt moved from pdftex as default to luatex as default (some 10 years ago). That said, it also depends on what you mean by stability. ConTeXt (in fact even LaTeX), is not as stable as Knuth TeX. But the LaTeX team and package writers make much more effort in ensuring backward compatibility than the ConTeXt developers and package writers. Part of the reason for this is that it is relatively simply to have multiple context installations in parallel and use a frozen version for tasks which require stability and use the latest version for other tasks.

Are ConTeXt packages managed by an organized team and well-tested, so that they are less likely to conflict?

No. The difference is that there is a lot more functionality implemented in ConTeXt core (which is managed by a single person, Hans Hagen, and has no conflicts) so there is a less need for using packages. But, as far as I know (and I have released 4-5 context packages), user-contributed ConTeXt packages are not managed any different from LaTeX packages.

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?

For almost all journals, articles are accepted based on their scientific merit; not how they are prepared. After an article has been accepted, authors are asked to submit the article source (either tex or Word files). I know of only one journal that accepts source files written in ConTeXt (a Dutch math journal). Most publishers who accept TeX source files only accept LaTeX.

When you think about it, it makes sense. For a journal, all articles must be typeset with a uniform style. There is no advantage of maintaining multiple style files for different macro packages. That said, these days many journals actually convert your article to some XML format (so that an online HTML version can also be generated). So, there are some journal that will accept a PDF version and retype the article (of course, this may delay the publication or may incur additional cost).

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

Note that many publishers explicitly prohibit (or strongly discourage) user defined macros. For tables, it is relatively easy to write a program that generates appropriately formatted output for LaTeX and ConTeXt; but this becomes difficult for general document markup (unless you restrict yourself to a limited subset of macros).

  • sorry I think chatting to the OP resulted in my stealing your tick:-) +1 anyway to compensate:-) – David Carlisle Feb 10 '17 at 12:30
  • 2
    ams no longer accepts plain tex articles directly into the production stream. articles are accepted (by subject editors) on scientific merit, not on how they are prepared; if an article is prepared in plain tex, and the author cannot resubmit it in latex, it will be rekeyed. – barbara beeton Feb 10 '17 at 17:23
  • @barbarabeeton: Thanks for the clarification. I rephrased the paragraph to distinguish between acceptance of the article and accepting the source code of the article. – Aditya Feb 10 '17 at 19:27
2

I shall summarize my latest impression as an answer to make it more visible. This is just some random thoughts, and I ask the reader's tolerance. Also these are just general thoughts, and I hope are not off-topic according to site rules.

Using LuaTeX purely

I consider the possibility very exciting, because, now that luatex can handle UTF-8 natively, I may implement my own functions whenever possible. This makes my source easier to maintain, and customizable in the future. Since LuaTeX released version 1.0, I am looking forward to new possibility people haven't known of. (See their website, though seemingly not updated often)

Using ConTeXt MkIV

ConTeXt is said not to have changed much in terms of syntax. At least, I find people recommend ConTeXt, an Excursion even as of late in forums, but that's almost twenty years ago. Indeed, relevant manuals found on the internet are often written more than ten years ago. But given the fact that their website are still updated, I suppose they are actively maintained (They meet every year, I suppose). I guess I will give it a try.

Fear of package-clashing

It seems to me reasonable that the fact that LaTeX packages exist in great number made them more likely to clash. If we stick to "core packages", they may be better tested through age, and there must have been threads that points out what conflicts with what (or are there official guides to avoid conflicts?).

But how do we know what package is a core package? There is an instruction on how to print all available packages. But when I find someone using some package, I just Google, and cut and paste someone's code, and TeX Live will download that package for me. There is no way to tell what is TeX Live core, and what is user submitted and manually installed later.

Writing for publication

By now I am a student and have not published. But if I will have to publish something, there will be heavy editing in any rate. Many journals in fact provide their own templates (see for example: LaTeX templates), so modification is inevitable. On the other hand, if I managed to use LuaTeX or ConTeXt well, the effort of manual converting code into pdflatex-compilable one, is negligible. After all, they have similar syntax for essential needs. (Unless some day I write a book, but that probably justifies a more sophisticated tool like ConTeXt, and I should stop daydreaming.)

I may well prepare two templates, one for my personal use, adjusted for my taste, to be compiled with LuaTeX or ConTeXt; and another a "vanilla" LaTeX, to be compiled with pdflatex, as simplified as possible. I probably will write a little parser to simplify the job of expanding \newcommand's back to their respective definitions.

I guess it boils down to what makes myself happy. I often study material I writing, looking on the screen, while calculating, and I am meticulous on details (but not everyone is). If a better tool (LuaTeX, ConTeXt, whatever) gives me pleasure and make me working more confortably, than the benefits gained from using it is probably greater than the time lost in converting it back to pdfLaTeX, especially as I said, such effort is often inevitable after all.

Such thought is sort of solace of my initial frustration with LuaTeX recently. Complete new to this, I am sure I will have something to share with you readers, but only after I have got some time to make enough solving efforts.

  • 3
    Note also that LuaTeX is, above all, an 'engine', just as pdfTeX and XeTeX are. All three can be used with the LaTeX 'format' (though some packages are designed exclusively for one engine and not the others). Thus, you can get all the benefits of the LuaTeX engine (e.g., UTF-8 fonts) in a LaTeX document (which you would compile with the command lualatex instead of pdflatex). There are also the packages ifxetex and ifluatex, which will help you create a document that can be compiled with two or more engines if you like. (Though the output likely won't be completely identical.) – jon Feb 10 '17 at 17:31
  • You might find this page on the levels of TeX enlightening. – jon Feb 10 '17 at 17:33
  • It is kind of you to point out these subtle points. I dare say I have already written, in past few years, at least some 400 pages of reports, class notes, assignments all in LaTeX and compiling with either of pdflatex, xelatex, or lualatex, and it seems I still have confusions on their exact differences. Frustrating.... – Aminopterin Feb 10 '17 at 17:38
  • The little parser to expand \newcommands already exists, in the form of de-macro. – Pont Feb 10 '17 at 17:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.