I recall that earlier (over 10 years ago), producing a standalone compiler of LaTeX3 code was a project's goal. Today, this goal is no more articulated. Instead, the developers stress today that LaTeX is "not a stand-alone typesetting program". While there may be valid technical reasons for either decision, it is not my question here. My question is whether the goal of producing a standalone LaTeX3 compiler (which works independently of TeX/LaTeX2e) has been given up.

  • 1
    As far as I remember LaTeX3 was never intended to replace an engine (compiler) but only to be the successor of the LaTeX2e format. The developers still try to achieve the latter, i.e. producing a sensible "API" and when that is ready there shall be a format. – TeXnician Oct 16 '18 at 15:23
  • 1
    @TeXnician Last time I programmed expl3+xparse, I thought that a compiler would come in quite handy, e.g. to do all the typechecking, which was unimplemented the last time I looked into it and probably cannot be implemented in an easy way on top of TeX+LaTeX2e, except by a Turing-completeness argument (I'd be glad to be proven wrong). Another aspect which you'd get only through a standalone compiler is the speed of translating LaTeX to PDF. In fact, expected typechecking was one of the reasons for me to learn expl3. Are neither compilation speed nor mechanized typechecking among the goals? – user49915 Oct 16 '18 at 22:19
  • 2
    @user49915 TeX's speed for text is pretty good, and even if you run something like xgalley there's not an appreciable hit. The only place I ever notice performance is really big data set plotting (100k+ points), which is pretty specialised ... – Joseph Wright Oct 16 '18 at 22:39
  • 1
    @JosephWright (In fact, speed is potentially improvable if someone would ever commit to it full-time rather than in the evenings and on the week-ends. You know, running an interpreter for an interpreter (which is what latex with expl3 and xparse were the last time I looked into them) is slower than compiling directly.) Anyhow, I'm more concerned about typechecking, which I though could be a worthy goal for producing a compiler. – user49915 Oct 16 '18 at 23:04
  • 1
    That's not really the way TeX works, so you would have to set up a completely new engine that has typed primitives and does type-checking at a pre-compilation step (i.e. before the typesetting) instead of during compilation (i.e. when expanding while typesetting). That is effectively a pre-processor and you could write one even without writing a completely new engine. Then just drop in an arara rule or such to use that pre-processor before compiling. And if you are using expl3 in a package you can conveniently do type checking through tests (i.e. l3build) and as such make your code safer. – TeXnician Oct 17 '18 at 11:00

The LaTeX team are macro programmers, and the aim of LaTeX3 work has therefore always been in the form either of packages or a stand-alone TeX format. Work over many years suggests that to delivery for users today, creating code which is loadable as LaTeX2e packages is most productive. That does not mean a new format is ruled out. However, a lot of materials is likely to be added in package mode first. For example, we are currently working on tagged PDF: this needs to work now, and thus has to integrate into LaTeX2e. (This material is also going to be available in any future stand-alone format.)

It is probably more likely/easy for the team to provide 'tools' (binaries or scripts) than was the case in the past: see for example l3build. That stems from the availability of Lua in all modern TeX systems as a scripting set up.

  • Thank you. So, you are not even speaking of a standalone compiler; you are saying that nowadays even a standalone format is getting less attention than LaTeX3-as-package, right? – user49915 Oct 16 '18 at 21:34
  • 3
    @user49915 (which isn't precisely a nice name) we never spoke about a standalone compiler. To a user says "pdftex foo" in contrast to "pdflatex bar" on the command line may look as if he or she calls two different compilers, but you don't. you call the same compiler that loads a different format internally. It was never the goal to build a different TeX-like engine. I may have said in the past that certain primitive functionalities would be helpful in such an engine and I have lobbied for some of them, but adding another engine to the existing ones would not help here. – Frank Mittelbach Oct 16 '18 at 21:51
  • @FrankMittelbach (Sorry about my nickname; I think everyone talking to me here, including you, knows my real name, and there is no problem for me telling it to anyone in private communication. But I don't consider myself that important anyway - but, alas, tremendously curious.) Anyway, thank you for the explanation; now it's more clear. I might be terribly off, but I think it was one of your old papers describing the future of LaTeX3 which placed some emphasis on "standalone". – user49915 Oct 16 '18 at 22:16
  • 3
    @user49915 That's 'standalone' as-in a format independent of LaTeX2e – Joseph Wright Oct 16 '18 at 22:38
  • 1
    @FrankMittelbach Thank you, I see. Concerning nicknames: I apologize. First, if I post my real name here, my colleagues and my boss get to know me more than I wish to. I even consider anonymizing myself on certain other TeX-related sites (you definitely know) in addition. Second, of course I can understand you don't wish to talk to bots; I'd feel the same. I might close my account here (or get an unreal but nice-looking nickname which would deceive you and other great folks). Of course, by all means feel free simply to ignore questions from "usernnnn"; I'd understand that without hesitation. – user49915 Oct 17 '18 at 14:32

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.