Differences between LuaTeX, ConTeXt and XeTeX











up vote
406
down vote

favorite
206












I’m interested in the differences and commonalities between the “new” (La)TeX processors:





  • LuaTeX,


  • XeTeX, and


  • ConTeXt.


Personally, I’ve only used XeTeX so far and without having the time to try out all three systems, I’m having a surprisingly hard time setting them off from one each other.



As I understand it, these systems are actually very different in some regards. So I’m explicitly asking for strengths and weaknesses in every-day use (whatever that is), rather than very special scenarios.



(I’ve already asked a similar question on Super User some time ago.)










share|improve this question




















  • 6




    I love XeTeX just because I can add unicode characters in my editor, instead of having to /command all of them.
    – machinaut
    Jul 26 '10 at 19:40






  • 8




    @ajray: Xetex wins the usability contest, I think. Fonts just work.
    – Charles Stewart
    Aug 12 '10 at 13:21






  • 4




    @ajray if it's just unicode characters you want, wouldn't usepackage[utf8]{inputenc} work?
    – Seamus
    Nov 18 '10 at 17:57






  • 5




    @Seamus: The inputenc package unfortunately is very incomplete and in some circumstances it doesn’t work at all (e.g. in combination with fancyvrb, since their verbatim parsing somehow disables UTF-8 character code parsing).
    – Konrad Rudolph
    Nov 18 '10 at 20:11






  • 4




    @CharlesStewart: With LuaLaTeX they also just work. Same with ConTeXt MkIV.
    – Martin Schröder
    Sep 28 '11 at 12:12















up vote
406
down vote

favorite
206












I’m interested in the differences and commonalities between the “new” (La)TeX processors:





  • LuaTeX,


  • XeTeX, and


  • ConTeXt.


Personally, I’ve only used XeTeX so far and without having the time to try out all three systems, I’m having a surprisingly hard time setting them off from one each other.



As I understand it, these systems are actually very different in some regards. So I’m explicitly asking for strengths and weaknesses in every-day use (whatever that is), rather than very special scenarios.



(I’ve already asked a similar question on Super User some time ago.)










share|improve this question




















  • 6




    I love XeTeX just because I can add unicode characters in my editor, instead of having to /command all of them.
    – machinaut
    Jul 26 '10 at 19:40






  • 8




    @ajray: Xetex wins the usability contest, I think. Fonts just work.
    – Charles Stewart
    Aug 12 '10 at 13:21






  • 4




    @ajray if it's just unicode characters you want, wouldn't usepackage[utf8]{inputenc} work?
    – Seamus
    Nov 18 '10 at 17:57






  • 5




    @Seamus: The inputenc package unfortunately is very incomplete and in some circumstances it doesn’t work at all (e.g. in combination with fancyvrb, since their verbatim parsing somehow disables UTF-8 character code parsing).
    – Konrad Rudolph
    Nov 18 '10 at 20:11






  • 4




    @CharlesStewart: With LuaLaTeX they also just work. Same with ConTeXt MkIV.
    – Martin Schröder
    Sep 28 '11 at 12:12













up vote
406
down vote

favorite
206









up vote
406
down vote

favorite
206






206





I’m interested in the differences and commonalities between the “new” (La)TeX processors:





  • LuaTeX,


  • XeTeX, and


  • ConTeXt.


Personally, I’ve only used XeTeX so far and without having the time to try out all three systems, I’m having a surprisingly hard time setting them off from one each other.



As I understand it, these systems are actually very different in some regards. So I’m explicitly asking for strengths and weaknesses in every-day use (whatever that is), rather than very special scenarios.



(I’ve already asked a similar question on Super User some time ago.)










share|improve this question















I’m interested in the differences and commonalities between the “new” (La)TeX processors:





  • LuaTeX,


  • XeTeX, and


  • ConTeXt.


Personally, I’ve only used XeTeX so far and without having the time to try out all three systems, I’m having a surprisingly hard time setting them off from one each other.



As I understand it, these systems are actually very different in some regards. So I’m explicitly asking for strengths and weaknesses in every-day use (whatever that is), rather than very special scenarios.



(I’ve already asked a similar question on Super User some time ago.)







xetex luatex context






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 20 '17 at 10:18









Community

1




1










asked Jul 26 '10 at 19:39









Konrad Rudolph

26.3k1785139




26.3k1785139








  • 6




    I love XeTeX just because I can add unicode characters in my editor, instead of having to /command all of them.
    – machinaut
    Jul 26 '10 at 19:40






  • 8




    @ajray: Xetex wins the usability contest, I think. Fonts just work.
    – Charles Stewart
    Aug 12 '10 at 13:21






  • 4




    @ajray if it's just unicode characters you want, wouldn't usepackage[utf8]{inputenc} work?
    – Seamus
    Nov 18 '10 at 17:57






  • 5




    @Seamus: The inputenc package unfortunately is very incomplete and in some circumstances it doesn’t work at all (e.g. in combination with fancyvrb, since their verbatim parsing somehow disables UTF-8 character code parsing).
    – Konrad Rudolph
    Nov 18 '10 at 20:11






  • 4




    @CharlesStewart: With LuaLaTeX they also just work. Same with ConTeXt MkIV.
    – Martin Schröder
    Sep 28 '11 at 12:12














  • 6




    I love XeTeX just because I can add unicode characters in my editor, instead of having to /command all of them.
    – machinaut
    Jul 26 '10 at 19:40






  • 8




    @ajray: Xetex wins the usability contest, I think. Fonts just work.
    – Charles Stewart
    Aug 12 '10 at 13:21






  • 4




    @ajray if it's just unicode characters you want, wouldn't usepackage[utf8]{inputenc} work?
    – Seamus
    Nov 18 '10 at 17:57






  • 5




    @Seamus: The inputenc package unfortunately is very incomplete and in some circumstances it doesn’t work at all (e.g. in combination with fancyvrb, since their verbatim parsing somehow disables UTF-8 character code parsing).
    – Konrad Rudolph
    Nov 18 '10 at 20:11






  • 4




    @CharlesStewart: With LuaLaTeX they also just work. Same with ConTeXt MkIV.
    – Martin Schröder
    Sep 28 '11 at 12:12








6




6




I love XeTeX just because I can add unicode characters in my editor, instead of having to /command all of them.
– machinaut
Jul 26 '10 at 19:40




I love XeTeX just because I can add unicode characters in my editor, instead of having to /command all of them.
– machinaut
Jul 26 '10 at 19:40




8




8




@ajray: Xetex wins the usability contest, I think. Fonts just work.
– Charles Stewart
Aug 12 '10 at 13:21




@ajray: Xetex wins the usability contest, I think. Fonts just work.
– Charles Stewart
Aug 12 '10 at 13:21




4




4




@ajray if it's just unicode characters you want, wouldn't usepackage[utf8]{inputenc} work?
– Seamus
Nov 18 '10 at 17:57




@ajray if it's just unicode characters you want, wouldn't usepackage[utf8]{inputenc} work?
– Seamus
Nov 18 '10 at 17:57




5




5




@Seamus: The inputenc package unfortunately is very incomplete and in some circumstances it doesn’t work at all (e.g. in combination with fancyvrb, since their verbatim parsing somehow disables UTF-8 character code parsing).
– Konrad Rudolph
Nov 18 '10 at 20:11




@Seamus: The inputenc package unfortunately is very incomplete and in some circumstances it doesn’t work at all (e.g. in combination with fancyvrb, since their verbatim parsing somehow disables UTF-8 character code parsing).
– Konrad Rudolph
Nov 18 '10 at 20:11




4




4




@CharlesStewart: With LuaLaTeX they also just work. Same with ConTeXt MkIV.
– Martin Schröder
Sep 28 '11 at 12:12




@CharlesStewart: With LuaLaTeX they also just work. Same with ConTeXt MkIV.
– Martin Schröder
Sep 28 '11 at 12:12










5 Answers
5






active

oldest

votes

















up vote
329
down vote



accepted










Both LuaTeX and XeTeX are UTF-8 engines for processing TeX documents. This means that the input (.tex files) can contain characters that with pdfTeX are difficult to use directly. Both can also use system fonts, again in contrast to pdfTeX. However, the two are very different in approach.



XeTeX uses system-specific libraries to work. This means that it is very easy to use 'out of the box' for loading system fonts and other UTF-8 tasks. Indeed, it was written for this purpose: supporting languages, etc., that traditional TeX struggles with. This makes for an easy to use engine for end users, particularly if you use the fontspec package on LaTeX. However, because things are 'farmed out' to the OS, there is a trade-off in flexibility terms.



In contrast, LuaTeX has bigger aims. The idea is to add a scripting language (Lua) to TeX, and to open up the internals of TeX to this language. The result is that a lot is possible, but it has to be programmed in. There is growing LaTeX support for LuaTeX: fontspec v2 supports it, and new packages are being written to use more of the new features.



At the moment, I'd use XeTeX for UTF-8 and font support, unless I was after particular effects that only LuaTeX does well (Arabic typography is a particular challenge). The choice btween XeTeX and LuaTeX is 'tight': both have advantages depending on your exact requirements. (I'm on the LaTeX kernel team, so as a programmer I'm very keen on exploiting LuaTeX.)



ConTeXt is not an engine, and so is in a slightly different place here. ConTeXt is a format for TeX, like LaTeX, but is newer and much larger. ConTeXt Mark IV is a LuaTeX-only implementation. The people behind ConTeXt are very active in developing LuaTeX, and are using the new features to extend TeX and what ConTeXt can do. I've already pointed out that I'm working on LaTeX, so of course I'd like to see new features in LaTeX do the same. This is something I and the other members of the LaTeX project are working on.






share|improve this answer



















  • 1




    Well, most ConTeXt users use texexec, which is a bit more than just a TeX format. However, you are right that ConTeXt MkII can be used in that way.
    – Joseph Wright
    Jul 27 '10 at 13:13






  • 4




    You're right, but texexec is a bit like a make file. BTW, texexec is Context-2 only: Context-4 is invoked with context which is another name for luatex. Luatex handles everything that texexec used to. I'm guessing that, by now, most Context users use MkIV.
    – Charles Stewart
    Aug 9 '10 at 9:20






  • 21




    Here is a nice explanation of the levels of TeX.
    – Martin Schröder
    Sep 28 '11 at 12:13






  • 3




    This answer is now three years old. Have things changed?
    – Raphael
    Aug 12 '13 at 14:06






  • 4




    @Raphael Not really in a substantive way. LuaTeX is still formally beta (v0.76) and XeTeX has improved in terms of its font shaper (the part that allows for complex font operations). For many 'end user' applications XeTeX and LuaTeX are both suitable.
    – Joseph Wright
    Aug 12 '13 at 15:34


















up vote
88
down vote













XeTeX basically offers two improvements over the default LaTeX, and has one drawback.



The improvements are:




  • XeTeX supports UTF-8 encoded input by default. In fact, this is the only supported encoding.

  • XeTeX supports TrueType/OpenType fonts directly. This can be harnessed by the powerful fontspec package which makes loading and using installed fonts really easy.

  • Font support goes much further than what most (even professional) editors support. For example, it easily allows access to special font features such as rare ligatures, glyph variants and old style (text style) numbers.


The drawback is:




  • XeTeX does not (yet) support the full feature set of the microtype package, as pdfTeX does. However, the main feature, protrusion, works well.


Furthermore, XeTeX has PDF ouput only; no DVI or PS. I’m not sure if this can be counted as a drawback but YMMV.






share|improve this answer



















  • 3




    Luatex supports fontspec, although it's not trouble free yet.
    – Charles Stewart
    Jul 27 '10 at 8:52






  • 2




    Another drawback: if you prefer to work with Postscript specials, you are forced to work with XDVI rather than DVI, which has much poorer tool support. Some people do prefer the DVI toolchain, e.g., Norman Ramsey, stackoverflow.com/questions/414179/…
    – Charles Stewart
    Aug 12 '10 at 13:26










  • Is there any indication of when we can expect LuaTeX to have full microtypography? Any time now/years/possibly someday? i.e. is it worth waiting for before getting used to one engine?
    – Canageek
    Sep 27 '11 at 22:15








  • 1




    @Canageek LuaTeX is a different matter entirely. It has supported the major features of microtype for some time now. Even XeTeX now supports the main feature, protrusion.
    – Konrad Rudolph
    Sep 28 '11 at 7:58


















up vote
55
down vote













Joseph Wright's answer sums up the differences very well, I just want to add that luatex is also a scripting language in its own right: when you run the luatex executable as texlua
(or alternatively, run luatex --luaonly) it will behave as a lua script interpreter with a few library additions.



In this mode, no typesetting can be done, but that does not mean it is not useful. For example, as far as I know, this is the only script interpreter with a built-in kpathsea interface. None of the typesetting-related features are exposed, but the other lua functionality in luatex is available to scripts:





  • kpse, for file searching


  • fontloader, to investigate font files


  • mplib, for creating metapost graphics


  • epdf, to investigate pdf files (still experimental)


Also, some useful lua libraries from the internet have been added:





  • luamd5, for checksum calculations


  • luasocket, for network i/o


  • luafilesystem, for disk i/o


  • slnunicode, for unicode string processing


  • luazip, for zipfile input


  • lpeg, for writing parsers


This scripting capability of luatex is used for some of the scripts in TeXLive 2010, and hopefully this more scripts can be replaced in the future.






share|improve this answer





















  • If want to use HTTP for fetching images (for instance using Pachube's parametrised graphs) - can I import an HTTP library and output the image into a file, the do includegraphics on that file? or may be I'll have to use the luasocket and talk raw HTTP to it?
    – errordeveloper
    Jan 17 '12 at 20:10






  • 2




    luasocket has an easy interface for downloading http files, see w3.impa.br/~diego/software/luasocket/http.html . I do not know how to connect that to includegraphics , but it should not be that hard
    – Taco Hoekwater
    Jan 27 '12 at 8:31


















up vote
47
down vote













The choice is slightly wrong. First two are TeX engines while ConTeXt is a macro package and as such should be compared with LaTeX (in fact you can use both XeTeX and luatex in ConTeXt, although using luatex is definitely preferred). The best comparison of differences between LaTeX and ConTeXt can be found in the article by Berend de Boer LaTeX in proper ConTeXt. To put it in rather simplistic terms: ConTeXt attempts at giving cleaner interface to control typography of the document while retaining LaTeX's structure-oriented approach.






share|improve this answer



















  • 4




    +1 for the link. I have been curious about ConTeXt for a while- this paper looks like good reading.
    – Sharpie
    Aug 3 '10 at 21:53






  • 10




    It's worth noting that the Xetex, Pdftex, and Luatex engines, are not children, but grandchildren of Knuth's Tex program, all being descended from the Web2c translation of Knuth's Tex. Actually, I guess that Luatex is a great-grandchild, being a child of Pdftex. I wonder if some TUG-boat article has a nice family tree in it?
    – Charles Stewart
    Aug 12 '10 at 13:16






  • 6




    @CharlesStewart: I just came across this question and saw your comment here. I actually just made a family tree a couple days ago... [tex.stackexchange.com/questions/42594/…
    – Todd Lehman
    Jan 30 '12 at 3:40


















up vote
23
down vote













Each of them is variation/implementation of TeX. LuaTeX is really just like Knuth's original TeX system (with LaTeX) but is implemented in Lua, which some find to be easier to handle and extend. I believe TeXLive is officially switching to use LuaTeX from now on.



XeTeX has especially useful font capabilities. It is essentially standard TeX but the ability to use OpenType and TrueType (instead of Type 1) fonts instead of the confusing setup in standard TeX. If you've ever had to install a font with standard TeX, or even make your own, you know it's a pain, even with fontinst.



ConTeXt is a different approach to TeX. ConTeXt is like LaTeX, but with different ideas of how thing should work. ConTeXt attempts to make things easier, especially typographical issues. Colors, figures, and changing document structure is more straightforward in this system.



Disclaimer: I am no expert on these systems. I personally use just standard LaTeX.






share|improve this answer























  • I think you mean OpenType/TrueType fonts instead of Type 1, which is what TeX is normally using, right?
    – Konrad Rudolph
    Jul 26 '10 at 19:50






  • 1




    @Konrad Rudolph: Yes, you are correct. I was thinking of purely bitmapped fonts which is what METAFONT generates, and Type1 can be bitmap. I'll correct.
    – Quadrescence
    Jul 26 '10 at 20:19






  • 7




    I thought LuaTeX was implemented in C (as opposed to the original Pascal implementation of TeX). The Lua functionality comes from having the Lua interpreter embedded within the program.
    – Sharpie
    Aug 3 '10 at 21:52






  • 2




    @Sharpie: Right. What Luatex provides is a family of hooks into the Tex engine that can be leveraged in format files to provide functionality that the Tex primitives can't.
    – Charles Stewart
    Aug 12 '10 at 13:19






  • 9




    TeX Live is not switching to use LuaTeX right now, and it's not sure it ever will. TeX Live provides pdfTeX, XeTeX and LuaTeX, but for the foreseeable future, the "latex" command will continue to invoke the pdfTeX engine.
    – mpg
    Oct 31 '10 at 1:30











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f36%2fdifferences-between-luatex-context-and-xetex%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























5 Answers
5






active

oldest

votes








5 Answers
5






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
329
down vote



accepted










Both LuaTeX and XeTeX are UTF-8 engines for processing TeX documents. This means that the input (.tex files) can contain characters that with pdfTeX are difficult to use directly. Both can also use system fonts, again in contrast to pdfTeX. However, the two are very different in approach.



XeTeX uses system-specific libraries to work. This means that it is very easy to use 'out of the box' for loading system fonts and other UTF-8 tasks. Indeed, it was written for this purpose: supporting languages, etc., that traditional TeX struggles with. This makes for an easy to use engine for end users, particularly if you use the fontspec package on LaTeX. However, because things are 'farmed out' to the OS, there is a trade-off in flexibility terms.



In contrast, LuaTeX has bigger aims. The idea is to add a scripting language (Lua) to TeX, and to open up the internals of TeX to this language. The result is that a lot is possible, but it has to be programmed in. There is growing LaTeX support for LuaTeX: fontspec v2 supports it, and new packages are being written to use more of the new features.



At the moment, I'd use XeTeX for UTF-8 and font support, unless I was after particular effects that only LuaTeX does well (Arabic typography is a particular challenge). The choice btween XeTeX and LuaTeX is 'tight': both have advantages depending on your exact requirements. (I'm on the LaTeX kernel team, so as a programmer I'm very keen on exploiting LuaTeX.)



ConTeXt is not an engine, and so is in a slightly different place here. ConTeXt is a format for TeX, like LaTeX, but is newer and much larger. ConTeXt Mark IV is a LuaTeX-only implementation. The people behind ConTeXt are very active in developing LuaTeX, and are using the new features to extend TeX and what ConTeXt can do. I've already pointed out that I'm working on LaTeX, so of course I'd like to see new features in LaTeX do the same. This is something I and the other members of the LaTeX project are working on.






share|improve this answer



















  • 1




    Well, most ConTeXt users use texexec, which is a bit more than just a TeX format. However, you are right that ConTeXt MkII can be used in that way.
    – Joseph Wright
    Jul 27 '10 at 13:13






  • 4




    You're right, but texexec is a bit like a make file. BTW, texexec is Context-2 only: Context-4 is invoked with context which is another name for luatex. Luatex handles everything that texexec used to. I'm guessing that, by now, most Context users use MkIV.
    – Charles Stewart
    Aug 9 '10 at 9:20






  • 21




    Here is a nice explanation of the levels of TeX.
    – Martin Schröder
    Sep 28 '11 at 12:13






  • 3




    This answer is now three years old. Have things changed?
    – Raphael
    Aug 12 '13 at 14:06






  • 4




    @Raphael Not really in a substantive way. LuaTeX is still formally beta (v0.76) and XeTeX has improved in terms of its font shaper (the part that allows for complex font operations). For many 'end user' applications XeTeX and LuaTeX are both suitable.
    – Joseph Wright
    Aug 12 '13 at 15:34















up vote
329
down vote



accepted










Both LuaTeX and XeTeX are UTF-8 engines for processing TeX documents. This means that the input (.tex files) can contain characters that with pdfTeX are difficult to use directly. Both can also use system fonts, again in contrast to pdfTeX. However, the two are very different in approach.



XeTeX uses system-specific libraries to work. This means that it is very easy to use 'out of the box' for loading system fonts and other UTF-8 tasks. Indeed, it was written for this purpose: supporting languages, etc., that traditional TeX struggles with. This makes for an easy to use engine for end users, particularly if you use the fontspec package on LaTeX. However, because things are 'farmed out' to the OS, there is a trade-off in flexibility terms.



In contrast, LuaTeX has bigger aims. The idea is to add a scripting language (Lua) to TeX, and to open up the internals of TeX to this language. The result is that a lot is possible, but it has to be programmed in. There is growing LaTeX support for LuaTeX: fontspec v2 supports it, and new packages are being written to use more of the new features.



At the moment, I'd use XeTeX for UTF-8 and font support, unless I was after particular effects that only LuaTeX does well (Arabic typography is a particular challenge). The choice btween XeTeX and LuaTeX is 'tight': both have advantages depending on your exact requirements. (I'm on the LaTeX kernel team, so as a programmer I'm very keen on exploiting LuaTeX.)



ConTeXt is not an engine, and so is in a slightly different place here. ConTeXt is a format for TeX, like LaTeX, but is newer and much larger. ConTeXt Mark IV is a LuaTeX-only implementation. The people behind ConTeXt are very active in developing LuaTeX, and are using the new features to extend TeX and what ConTeXt can do. I've already pointed out that I'm working on LaTeX, so of course I'd like to see new features in LaTeX do the same. This is something I and the other members of the LaTeX project are working on.






share|improve this answer



















  • 1




    Well, most ConTeXt users use texexec, which is a bit more than just a TeX format. However, you are right that ConTeXt MkII can be used in that way.
    – Joseph Wright
    Jul 27 '10 at 13:13






  • 4




    You're right, but texexec is a bit like a make file. BTW, texexec is Context-2 only: Context-4 is invoked with context which is another name for luatex. Luatex handles everything that texexec used to. I'm guessing that, by now, most Context users use MkIV.
    – Charles Stewart
    Aug 9 '10 at 9:20






  • 21




    Here is a nice explanation of the levels of TeX.
    – Martin Schröder
    Sep 28 '11 at 12:13






  • 3




    This answer is now three years old. Have things changed?
    – Raphael
    Aug 12 '13 at 14:06






  • 4




    @Raphael Not really in a substantive way. LuaTeX is still formally beta (v0.76) and XeTeX has improved in terms of its font shaper (the part that allows for complex font operations). For many 'end user' applications XeTeX and LuaTeX are both suitable.
    – Joseph Wright
    Aug 12 '13 at 15:34













up vote
329
down vote



accepted







up vote
329
down vote



accepted






Both LuaTeX and XeTeX are UTF-8 engines for processing TeX documents. This means that the input (.tex files) can contain characters that with pdfTeX are difficult to use directly. Both can also use system fonts, again in contrast to pdfTeX. However, the two are very different in approach.



XeTeX uses system-specific libraries to work. This means that it is very easy to use 'out of the box' for loading system fonts and other UTF-8 tasks. Indeed, it was written for this purpose: supporting languages, etc., that traditional TeX struggles with. This makes for an easy to use engine for end users, particularly if you use the fontspec package on LaTeX. However, because things are 'farmed out' to the OS, there is a trade-off in flexibility terms.



In contrast, LuaTeX has bigger aims. The idea is to add a scripting language (Lua) to TeX, and to open up the internals of TeX to this language. The result is that a lot is possible, but it has to be programmed in. There is growing LaTeX support for LuaTeX: fontspec v2 supports it, and new packages are being written to use more of the new features.



At the moment, I'd use XeTeX for UTF-8 and font support, unless I was after particular effects that only LuaTeX does well (Arabic typography is a particular challenge). The choice btween XeTeX and LuaTeX is 'tight': both have advantages depending on your exact requirements. (I'm on the LaTeX kernel team, so as a programmer I'm very keen on exploiting LuaTeX.)



ConTeXt is not an engine, and so is in a slightly different place here. ConTeXt is a format for TeX, like LaTeX, but is newer and much larger. ConTeXt Mark IV is a LuaTeX-only implementation. The people behind ConTeXt are very active in developing LuaTeX, and are using the new features to extend TeX and what ConTeXt can do. I've already pointed out that I'm working on LaTeX, so of course I'd like to see new features in LaTeX do the same. This is something I and the other members of the LaTeX project are working on.






share|improve this answer














Both LuaTeX and XeTeX are UTF-8 engines for processing TeX documents. This means that the input (.tex files) can contain characters that with pdfTeX are difficult to use directly. Both can also use system fonts, again in contrast to pdfTeX. However, the two are very different in approach.



XeTeX uses system-specific libraries to work. This means that it is very easy to use 'out of the box' for loading system fonts and other UTF-8 tasks. Indeed, it was written for this purpose: supporting languages, etc., that traditional TeX struggles with. This makes for an easy to use engine for end users, particularly if you use the fontspec package on LaTeX. However, because things are 'farmed out' to the OS, there is a trade-off in flexibility terms.



In contrast, LuaTeX has bigger aims. The idea is to add a scripting language (Lua) to TeX, and to open up the internals of TeX to this language. The result is that a lot is possible, but it has to be programmed in. There is growing LaTeX support for LuaTeX: fontspec v2 supports it, and new packages are being written to use more of the new features.



At the moment, I'd use XeTeX for UTF-8 and font support, unless I was after particular effects that only LuaTeX does well (Arabic typography is a particular challenge). The choice btween XeTeX and LuaTeX is 'tight': both have advantages depending on your exact requirements. (I'm on the LaTeX kernel team, so as a programmer I'm very keen on exploiting LuaTeX.)



ConTeXt is not an engine, and so is in a slightly different place here. ConTeXt is a format for TeX, like LaTeX, but is newer and much larger. ConTeXt Mark IV is a LuaTeX-only implementation. The people behind ConTeXt are very active in developing LuaTeX, and are using the new features to extend TeX and what ConTeXt can do. I've already pointed out that I'm working on LaTeX, so of course I'd like to see new features in LaTeX do the same. This is something I and the other members of the LaTeX project are working on.







share|improve this answer














share|improve this answer



share|improve this answer








edited Aug 25 '15 at 14:05

























answered Jul 26 '10 at 19:54









Joseph Wright

201k21552878




201k21552878








  • 1




    Well, most ConTeXt users use texexec, which is a bit more than just a TeX format. However, you are right that ConTeXt MkII can be used in that way.
    – Joseph Wright
    Jul 27 '10 at 13:13






  • 4




    You're right, but texexec is a bit like a make file. BTW, texexec is Context-2 only: Context-4 is invoked with context which is another name for luatex. Luatex handles everything that texexec used to. I'm guessing that, by now, most Context users use MkIV.
    – Charles Stewart
    Aug 9 '10 at 9:20






  • 21




    Here is a nice explanation of the levels of TeX.
    – Martin Schröder
    Sep 28 '11 at 12:13






  • 3




    This answer is now three years old. Have things changed?
    – Raphael
    Aug 12 '13 at 14:06






  • 4




    @Raphael Not really in a substantive way. LuaTeX is still formally beta (v0.76) and XeTeX has improved in terms of its font shaper (the part that allows for complex font operations). For many 'end user' applications XeTeX and LuaTeX are both suitable.
    – Joseph Wright
    Aug 12 '13 at 15:34














  • 1




    Well, most ConTeXt users use texexec, which is a bit more than just a TeX format. However, you are right that ConTeXt MkII can be used in that way.
    – Joseph Wright
    Jul 27 '10 at 13:13






  • 4




    You're right, but texexec is a bit like a make file. BTW, texexec is Context-2 only: Context-4 is invoked with context which is another name for luatex. Luatex handles everything that texexec used to. I'm guessing that, by now, most Context users use MkIV.
    – Charles Stewart
    Aug 9 '10 at 9:20






  • 21




    Here is a nice explanation of the levels of TeX.
    – Martin Schröder
    Sep 28 '11 at 12:13






  • 3




    This answer is now three years old. Have things changed?
    – Raphael
    Aug 12 '13 at 14:06






  • 4




    @Raphael Not really in a substantive way. LuaTeX is still formally beta (v0.76) and XeTeX has improved in terms of its font shaper (the part that allows for complex font operations). For many 'end user' applications XeTeX and LuaTeX are both suitable.
    – Joseph Wright
    Aug 12 '13 at 15:34








1




1




Well, most ConTeXt users use texexec, which is a bit more than just a TeX format. However, you are right that ConTeXt MkII can be used in that way.
– Joseph Wright
Jul 27 '10 at 13:13




Well, most ConTeXt users use texexec, which is a bit more than just a TeX format. However, you are right that ConTeXt MkII can be used in that way.
– Joseph Wright
Jul 27 '10 at 13:13




4




4




You're right, but texexec is a bit like a make file. BTW, texexec is Context-2 only: Context-4 is invoked with context which is another name for luatex. Luatex handles everything that texexec used to. I'm guessing that, by now, most Context users use MkIV.
– Charles Stewart
Aug 9 '10 at 9:20




You're right, but texexec is a bit like a make file. BTW, texexec is Context-2 only: Context-4 is invoked with context which is another name for luatex. Luatex handles everything that texexec used to. I'm guessing that, by now, most Context users use MkIV.
– Charles Stewart
Aug 9 '10 at 9:20




21




21




Here is a nice explanation of the levels of TeX.
– Martin Schröder
Sep 28 '11 at 12:13




Here is a nice explanation of the levels of TeX.
– Martin Schröder
Sep 28 '11 at 12:13




3




3




This answer is now three years old. Have things changed?
– Raphael
Aug 12 '13 at 14:06




This answer is now three years old. Have things changed?
– Raphael
Aug 12 '13 at 14:06




4




4




@Raphael Not really in a substantive way. LuaTeX is still formally beta (v0.76) and XeTeX has improved in terms of its font shaper (the part that allows for complex font operations). For many 'end user' applications XeTeX and LuaTeX are both suitable.
– Joseph Wright
Aug 12 '13 at 15:34




@Raphael Not really in a substantive way. LuaTeX is still formally beta (v0.76) and XeTeX has improved in terms of its font shaper (the part that allows for complex font operations). For many 'end user' applications XeTeX and LuaTeX are both suitable.
– Joseph Wright
Aug 12 '13 at 15:34










up vote
88
down vote













XeTeX basically offers two improvements over the default LaTeX, and has one drawback.



The improvements are:




  • XeTeX supports UTF-8 encoded input by default. In fact, this is the only supported encoding.

  • XeTeX supports TrueType/OpenType fonts directly. This can be harnessed by the powerful fontspec package which makes loading and using installed fonts really easy.

  • Font support goes much further than what most (even professional) editors support. For example, it easily allows access to special font features such as rare ligatures, glyph variants and old style (text style) numbers.


The drawback is:




  • XeTeX does not (yet) support the full feature set of the microtype package, as pdfTeX does. However, the main feature, protrusion, works well.


Furthermore, XeTeX has PDF ouput only; no DVI or PS. I’m not sure if this can be counted as a drawback but YMMV.






share|improve this answer



















  • 3




    Luatex supports fontspec, although it's not trouble free yet.
    – Charles Stewart
    Jul 27 '10 at 8:52






  • 2




    Another drawback: if you prefer to work with Postscript specials, you are forced to work with XDVI rather than DVI, which has much poorer tool support. Some people do prefer the DVI toolchain, e.g., Norman Ramsey, stackoverflow.com/questions/414179/…
    – Charles Stewart
    Aug 12 '10 at 13:26










  • Is there any indication of when we can expect LuaTeX to have full microtypography? Any time now/years/possibly someday? i.e. is it worth waiting for before getting used to one engine?
    – Canageek
    Sep 27 '11 at 22:15








  • 1




    @Canageek LuaTeX is a different matter entirely. It has supported the major features of microtype for some time now. Even XeTeX now supports the main feature, protrusion.
    – Konrad Rudolph
    Sep 28 '11 at 7:58















up vote
88
down vote













XeTeX basically offers two improvements over the default LaTeX, and has one drawback.



The improvements are:




  • XeTeX supports UTF-8 encoded input by default. In fact, this is the only supported encoding.

  • XeTeX supports TrueType/OpenType fonts directly. This can be harnessed by the powerful fontspec package which makes loading and using installed fonts really easy.

  • Font support goes much further than what most (even professional) editors support. For example, it easily allows access to special font features such as rare ligatures, glyph variants and old style (text style) numbers.


The drawback is:




  • XeTeX does not (yet) support the full feature set of the microtype package, as pdfTeX does. However, the main feature, protrusion, works well.


Furthermore, XeTeX has PDF ouput only; no DVI or PS. I’m not sure if this can be counted as a drawback but YMMV.






share|improve this answer



















  • 3




    Luatex supports fontspec, although it's not trouble free yet.
    – Charles Stewart
    Jul 27 '10 at 8:52






  • 2




    Another drawback: if you prefer to work with Postscript specials, you are forced to work with XDVI rather than DVI, which has much poorer tool support. Some people do prefer the DVI toolchain, e.g., Norman Ramsey, stackoverflow.com/questions/414179/…
    – Charles Stewart
    Aug 12 '10 at 13:26










  • Is there any indication of when we can expect LuaTeX to have full microtypography? Any time now/years/possibly someday? i.e. is it worth waiting for before getting used to one engine?
    – Canageek
    Sep 27 '11 at 22:15








  • 1




    @Canageek LuaTeX is a different matter entirely. It has supported the major features of microtype for some time now. Even XeTeX now supports the main feature, protrusion.
    – Konrad Rudolph
    Sep 28 '11 at 7:58













up vote
88
down vote










up vote
88
down vote









XeTeX basically offers two improvements over the default LaTeX, and has one drawback.



The improvements are:




  • XeTeX supports UTF-8 encoded input by default. In fact, this is the only supported encoding.

  • XeTeX supports TrueType/OpenType fonts directly. This can be harnessed by the powerful fontspec package which makes loading and using installed fonts really easy.

  • Font support goes much further than what most (even professional) editors support. For example, it easily allows access to special font features such as rare ligatures, glyph variants and old style (text style) numbers.


The drawback is:




  • XeTeX does not (yet) support the full feature set of the microtype package, as pdfTeX does. However, the main feature, protrusion, works well.


Furthermore, XeTeX has PDF ouput only; no DVI or PS. I’m not sure if this can be counted as a drawback but YMMV.






share|improve this answer














XeTeX basically offers two improvements over the default LaTeX, and has one drawback.



The improvements are:




  • XeTeX supports UTF-8 encoded input by default. In fact, this is the only supported encoding.

  • XeTeX supports TrueType/OpenType fonts directly. This can be harnessed by the powerful fontspec package which makes loading and using installed fonts really easy.

  • Font support goes much further than what most (even professional) editors support. For example, it easily allows access to special font features such as rare ligatures, glyph variants and old style (text style) numbers.


The drawback is:




  • XeTeX does not (yet) support the full feature set of the microtype package, as pdfTeX does. However, the main feature, protrusion, works well.


Furthermore, XeTeX has PDF ouput only; no DVI or PS. I’m not sure if this can be counted as a drawback but YMMV.







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 9 '13 at 12:05

























answered Jul 26 '10 at 19:55









Konrad Rudolph

26.3k1785139




26.3k1785139








  • 3




    Luatex supports fontspec, although it's not trouble free yet.
    – Charles Stewart
    Jul 27 '10 at 8:52






  • 2




    Another drawback: if you prefer to work with Postscript specials, you are forced to work with XDVI rather than DVI, which has much poorer tool support. Some people do prefer the DVI toolchain, e.g., Norman Ramsey, stackoverflow.com/questions/414179/…
    – Charles Stewart
    Aug 12 '10 at 13:26










  • Is there any indication of when we can expect LuaTeX to have full microtypography? Any time now/years/possibly someday? i.e. is it worth waiting for before getting used to one engine?
    – Canageek
    Sep 27 '11 at 22:15








  • 1




    @Canageek LuaTeX is a different matter entirely. It has supported the major features of microtype for some time now. Even XeTeX now supports the main feature, protrusion.
    – Konrad Rudolph
    Sep 28 '11 at 7:58














  • 3




    Luatex supports fontspec, although it's not trouble free yet.
    – Charles Stewart
    Jul 27 '10 at 8:52






  • 2




    Another drawback: if you prefer to work with Postscript specials, you are forced to work with XDVI rather than DVI, which has much poorer tool support. Some people do prefer the DVI toolchain, e.g., Norman Ramsey, stackoverflow.com/questions/414179/…
    – Charles Stewart
    Aug 12 '10 at 13:26










  • Is there any indication of when we can expect LuaTeX to have full microtypography? Any time now/years/possibly someday? i.e. is it worth waiting for before getting used to one engine?
    – Canageek
    Sep 27 '11 at 22:15








  • 1




    @Canageek LuaTeX is a different matter entirely. It has supported the major features of microtype for some time now. Even XeTeX now supports the main feature, protrusion.
    – Konrad Rudolph
    Sep 28 '11 at 7:58








3




3




Luatex supports fontspec, although it's not trouble free yet.
– Charles Stewart
Jul 27 '10 at 8:52




Luatex supports fontspec, although it's not trouble free yet.
– Charles Stewart
Jul 27 '10 at 8:52




2




2




Another drawback: if you prefer to work with Postscript specials, you are forced to work with XDVI rather than DVI, which has much poorer tool support. Some people do prefer the DVI toolchain, e.g., Norman Ramsey, stackoverflow.com/questions/414179/…
– Charles Stewart
Aug 12 '10 at 13:26




Another drawback: if you prefer to work with Postscript specials, you are forced to work with XDVI rather than DVI, which has much poorer tool support. Some people do prefer the DVI toolchain, e.g., Norman Ramsey, stackoverflow.com/questions/414179/…
– Charles Stewart
Aug 12 '10 at 13:26












Is there any indication of when we can expect LuaTeX to have full microtypography? Any time now/years/possibly someday? i.e. is it worth waiting for before getting used to one engine?
– Canageek
Sep 27 '11 at 22:15






Is there any indication of when we can expect LuaTeX to have full microtypography? Any time now/years/possibly someday? i.e. is it worth waiting for before getting used to one engine?
– Canageek
Sep 27 '11 at 22:15






1




1




@Canageek LuaTeX is a different matter entirely. It has supported the major features of microtype for some time now. Even XeTeX now supports the main feature, protrusion.
– Konrad Rudolph
Sep 28 '11 at 7:58




@Canageek LuaTeX is a different matter entirely. It has supported the major features of microtype for some time now. Even XeTeX now supports the main feature, protrusion.
– Konrad Rudolph
Sep 28 '11 at 7:58










up vote
55
down vote













Joseph Wright's answer sums up the differences very well, I just want to add that luatex is also a scripting language in its own right: when you run the luatex executable as texlua
(or alternatively, run luatex --luaonly) it will behave as a lua script interpreter with a few library additions.



In this mode, no typesetting can be done, but that does not mean it is not useful. For example, as far as I know, this is the only script interpreter with a built-in kpathsea interface. None of the typesetting-related features are exposed, but the other lua functionality in luatex is available to scripts:





  • kpse, for file searching


  • fontloader, to investigate font files


  • mplib, for creating metapost graphics


  • epdf, to investigate pdf files (still experimental)


Also, some useful lua libraries from the internet have been added:





  • luamd5, for checksum calculations


  • luasocket, for network i/o


  • luafilesystem, for disk i/o


  • slnunicode, for unicode string processing


  • luazip, for zipfile input


  • lpeg, for writing parsers


This scripting capability of luatex is used for some of the scripts in TeXLive 2010, and hopefully this more scripts can be replaced in the future.






share|improve this answer





















  • If want to use HTTP for fetching images (for instance using Pachube's parametrised graphs) - can I import an HTTP library and output the image into a file, the do includegraphics on that file? or may be I'll have to use the luasocket and talk raw HTTP to it?
    – errordeveloper
    Jan 17 '12 at 20:10






  • 2




    luasocket has an easy interface for downloading http files, see w3.impa.br/~diego/software/luasocket/http.html . I do not know how to connect that to includegraphics , but it should not be that hard
    – Taco Hoekwater
    Jan 27 '12 at 8:31















up vote
55
down vote













Joseph Wright's answer sums up the differences very well, I just want to add that luatex is also a scripting language in its own right: when you run the luatex executable as texlua
(or alternatively, run luatex --luaonly) it will behave as a lua script interpreter with a few library additions.



In this mode, no typesetting can be done, but that does not mean it is not useful. For example, as far as I know, this is the only script interpreter with a built-in kpathsea interface. None of the typesetting-related features are exposed, but the other lua functionality in luatex is available to scripts:





  • kpse, for file searching


  • fontloader, to investigate font files


  • mplib, for creating metapost graphics


  • epdf, to investigate pdf files (still experimental)


Also, some useful lua libraries from the internet have been added:





  • luamd5, for checksum calculations


  • luasocket, for network i/o


  • luafilesystem, for disk i/o


  • slnunicode, for unicode string processing


  • luazip, for zipfile input


  • lpeg, for writing parsers


This scripting capability of luatex is used for some of the scripts in TeXLive 2010, and hopefully this more scripts can be replaced in the future.






share|improve this answer





















  • If want to use HTTP for fetching images (for instance using Pachube's parametrised graphs) - can I import an HTTP library and output the image into a file, the do includegraphics on that file? or may be I'll have to use the luasocket and talk raw HTTP to it?
    – errordeveloper
    Jan 17 '12 at 20:10






  • 2




    luasocket has an easy interface for downloading http files, see w3.impa.br/~diego/software/luasocket/http.html . I do not know how to connect that to includegraphics , but it should not be that hard
    – Taco Hoekwater
    Jan 27 '12 at 8:31













up vote
55
down vote










up vote
55
down vote









Joseph Wright's answer sums up the differences very well, I just want to add that luatex is also a scripting language in its own right: when you run the luatex executable as texlua
(or alternatively, run luatex --luaonly) it will behave as a lua script interpreter with a few library additions.



In this mode, no typesetting can be done, but that does not mean it is not useful. For example, as far as I know, this is the only script interpreter with a built-in kpathsea interface. None of the typesetting-related features are exposed, but the other lua functionality in luatex is available to scripts:





  • kpse, for file searching


  • fontloader, to investigate font files


  • mplib, for creating metapost graphics


  • epdf, to investigate pdf files (still experimental)


Also, some useful lua libraries from the internet have been added:





  • luamd5, for checksum calculations


  • luasocket, for network i/o


  • luafilesystem, for disk i/o


  • slnunicode, for unicode string processing


  • luazip, for zipfile input


  • lpeg, for writing parsers


This scripting capability of luatex is used for some of the scripts in TeXLive 2010, and hopefully this more scripts can be replaced in the future.






share|improve this answer












Joseph Wright's answer sums up the differences very well, I just want to add that luatex is also a scripting language in its own right: when you run the luatex executable as texlua
(or alternatively, run luatex --luaonly) it will behave as a lua script interpreter with a few library additions.



In this mode, no typesetting can be done, but that does not mean it is not useful. For example, as far as I know, this is the only script interpreter with a built-in kpathsea interface. None of the typesetting-related features are exposed, but the other lua functionality in luatex is available to scripts:





  • kpse, for file searching


  • fontloader, to investigate font files


  • mplib, for creating metapost graphics


  • epdf, to investigate pdf files (still experimental)


Also, some useful lua libraries from the internet have been added:





  • luamd5, for checksum calculations


  • luasocket, for network i/o


  • luafilesystem, for disk i/o


  • slnunicode, for unicode string processing


  • luazip, for zipfile input


  • lpeg, for writing parsers


This scripting capability of luatex is used for some of the scripts in TeXLive 2010, and hopefully this more scripts can be replaced in the future.







share|improve this answer












share|improve this answer



share|improve this answer










answered Aug 15 '10 at 19:37









Taco Hoekwater

12.8k3365




12.8k3365












  • If want to use HTTP for fetching images (for instance using Pachube's parametrised graphs) - can I import an HTTP library and output the image into a file, the do includegraphics on that file? or may be I'll have to use the luasocket and talk raw HTTP to it?
    – errordeveloper
    Jan 17 '12 at 20:10






  • 2




    luasocket has an easy interface for downloading http files, see w3.impa.br/~diego/software/luasocket/http.html . I do not know how to connect that to includegraphics , but it should not be that hard
    – Taco Hoekwater
    Jan 27 '12 at 8:31


















  • If want to use HTTP for fetching images (for instance using Pachube's parametrised graphs) - can I import an HTTP library and output the image into a file, the do includegraphics on that file? or may be I'll have to use the luasocket and talk raw HTTP to it?
    – errordeveloper
    Jan 17 '12 at 20:10






  • 2




    luasocket has an easy interface for downloading http files, see w3.impa.br/~diego/software/luasocket/http.html . I do not know how to connect that to includegraphics , but it should not be that hard
    – Taco Hoekwater
    Jan 27 '12 at 8:31
















If want to use HTTP for fetching images (for instance using Pachube's parametrised graphs) - can I import an HTTP library and output the image into a file, the do includegraphics on that file? or may be I'll have to use the luasocket and talk raw HTTP to it?
– errordeveloper
Jan 17 '12 at 20:10




If want to use HTTP for fetching images (for instance using Pachube's parametrised graphs) - can I import an HTTP library and output the image into a file, the do includegraphics on that file? or may be I'll have to use the luasocket and talk raw HTTP to it?
– errordeveloper
Jan 17 '12 at 20:10




2




2




luasocket has an easy interface for downloading http files, see w3.impa.br/~diego/software/luasocket/http.html . I do not know how to connect that to includegraphics , but it should not be that hard
– Taco Hoekwater
Jan 27 '12 at 8:31




luasocket has an easy interface for downloading http files, see w3.impa.br/~diego/software/luasocket/http.html . I do not know how to connect that to includegraphics , but it should not be that hard
– Taco Hoekwater
Jan 27 '12 at 8:31










up vote
47
down vote













The choice is slightly wrong. First two are TeX engines while ConTeXt is a macro package and as such should be compared with LaTeX (in fact you can use both XeTeX and luatex in ConTeXt, although using luatex is definitely preferred). The best comparison of differences between LaTeX and ConTeXt can be found in the article by Berend de Boer LaTeX in proper ConTeXt. To put it in rather simplistic terms: ConTeXt attempts at giving cleaner interface to control typography of the document while retaining LaTeX's structure-oriented approach.






share|improve this answer



















  • 4




    +1 for the link. I have been curious about ConTeXt for a while- this paper looks like good reading.
    – Sharpie
    Aug 3 '10 at 21:53






  • 10




    It's worth noting that the Xetex, Pdftex, and Luatex engines, are not children, but grandchildren of Knuth's Tex program, all being descended from the Web2c translation of Knuth's Tex. Actually, I guess that Luatex is a great-grandchild, being a child of Pdftex. I wonder if some TUG-boat article has a nice family tree in it?
    – Charles Stewart
    Aug 12 '10 at 13:16






  • 6




    @CharlesStewart: I just came across this question and saw your comment here. I actually just made a family tree a couple days ago... [tex.stackexchange.com/questions/42594/…
    – Todd Lehman
    Jan 30 '12 at 3:40















up vote
47
down vote













The choice is slightly wrong. First two are TeX engines while ConTeXt is a macro package and as such should be compared with LaTeX (in fact you can use both XeTeX and luatex in ConTeXt, although using luatex is definitely preferred). The best comparison of differences between LaTeX and ConTeXt can be found in the article by Berend de Boer LaTeX in proper ConTeXt. To put it in rather simplistic terms: ConTeXt attempts at giving cleaner interface to control typography of the document while retaining LaTeX's structure-oriented approach.






share|improve this answer



















  • 4




    +1 for the link. I have been curious about ConTeXt for a while- this paper looks like good reading.
    – Sharpie
    Aug 3 '10 at 21:53






  • 10




    It's worth noting that the Xetex, Pdftex, and Luatex engines, are not children, but grandchildren of Knuth's Tex program, all being descended from the Web2c translation of Knuth's Tex. Actually, I guess that Luatex is a great-grandchild, being a child of Pdftex. I wonder if some TUG-boat article has a nice family tree in it?
    – Charles Stewart
    Aug 12 '10 at 13:16






  • 6




    @CharlesStewart: I just came across this question and saw your comment here. I actually just made a family tree a couple days ago... [tex.stackexchange.com/questions/42594/…
    – Todd Lehman
    Jan 30 '12 at 3:40













up vote
47
down vote










up vote
47
down vote









The choice is slightly wrong. First two are TeX engines while ConTeXt is a macro package and as such should be compared with LaTeX (in fact you can use both XeTeX and luatex in ConTeXt, although using luatex is definitely preferred). The best comparison of differences between LaTeX and ConTeXt can be found in the article by Berend de Boer LaTeX in proper ConTeXt. To put it in rather simplistic terms: ConTeXt attempts at giving cleaner interface to control typography of the document while retaining LaTeX's structure-oriented approach.






share|improve this answer














The choice is slightly wrong. First two are TeX engines while ConTeXt is a macro package and as such should be compared with LaTeX (in fact you can use both XeTeX and luatex in ConTeXt, although using luatex is definitely preferred). The best comparison of differences between LaTeX and ConTeXt can be found in the article by Berend de Boer LaTeX in proper ConTeXt. To put it in rather simplistic terms: ConTeXt attempts at giving cleaner interface to control typography of the document while retaining LaTeX's structure-oriented approach.







share|improve this answer














share|improve this answer



share|improve this answer








edited Aug 5 '10 at 7:24

























answered Aug 3 '10 at 21:39









helcim

1,3291014




1,3291014








  • 4




    +1 for the link. I have been curious about ConTeXt for a while- this paper looks like good reading.
    – Sharpie
    Aug 3 '10 at 21:53






  • 10




    It's worth noting that the Xetex, Pdftex, and Luatex engines, are not children, but grandchildren of Knuth's Tex program, all being descended from the Web2c translation of Knuth's Tex. Actually, I guess that Luatex is a great-grandchild, being a child of Pdftex. I wonder if some TUG-boat article has a nice family tree in it?
    – Charles Stewart
    Aug 12 '10 at 13:16






  • 6




    @CharlesStewart: I just came across this question and saw your comment here. I actually just made a family tree a couple days ago... [tex.stackexchange.com/questions/42594/…
    – Todd Lehman
    Jan 30 '12 at 3:40














  • 4




    +1 for the link. I have been curious about ConTeXt for a while- this paper looks like good reading.
    – Sharpie
    Aug 3 '10 at 21:53






  • 10




    It's worth noting that the Xetex, Pdftex, and Luatex engines, are not children, but grandchildren of Knuth's Tex program, all being descended from the Web2c translation of Knuth's Tex. Actually, I guess that Luatex is a great-grandchild, being a child of Pdftex. I wonder if some TUG-boat article has a nice family tree in it?
    – Charles Stewart
    Aug 12 '10 at 13:16






  • 6




    @CharlesStewart: I just came across this question and saw your comment here. I actually just made a family tree a couple days ago... [tex.stackexchange.com/questions/42594/…
    – Todd Lehman
    Jan 30 '12 at 3:40








4




4




+1 for the link. I have been curious about ConTeXt for a while- this paper looks like good reading.
– Sharpie
Aug 3 '10 at 21:53




+1 for the link. I have been curious about ConTeXt for a while- this paper looks like good reading.
– Sharpie
Aug 3 '10 at 21:53




10




10




It's worth noting that the Xetex, Pdftex, and Luatex engines, are not children, but grandchildren of Knuth's Tex program, all being descended from the Web2c translation of Knuth's Tex. Actually, I guess that Luatex is a great-grandchild, being a child of Pdftex. I wonder if some TUG-boat article has a nice family tree in it?
– Charles Stewart
Aug 12 '10 at 13:16




It's worth noting that the Xetex, Pdftex, and Luatex engines, are not children, but grandchildren of Knuth's Tex program, all being descended from the Web2c translation of Knuth's Tex. Actually, I guess that Luatex is a great-grandchild, being a child of Pdftex. I wonder if some TUG-boat article has a nice family tree in it?
– Charles Stewart
Aug 12 '10 at 13:16




6




6




@CharlesStewart: I just came across this question and saw your comment here. I actually just made a family tree a couple days ago... [tex.stackexchange.com/questions/42594/…
– Todd Lehman
Jan 30 '12 at 3:40




@CharlesStewart: I just came across this question and saw your comment here. I actually just made a family tree a couple days ago... [tex.stackexchange.com/questions/42594/…
– Todd Lehman
Jan 30 '12 at 3:40










up vote
23
down vote













Each of them is variation/implementation of TeX. LuaTeX is really just like Knuth's original TeX system (with LaTeX) but is implemented in Lua, which some find to be easier to handle and extend. I believe TeXLive is officially switching to use LuaTeX from now on.



XeTeX has especially useful font capabilities. It is essentially standard TeX but the ability to use OpenType and TrueType (instead of Type 1) fonts instead of the confusing setup in standard TeX. If you've ever had to install a font with standard TeX, or even make your own, you know it's a pain, even with fontinst.



ConTeXt is a different approach to TeX. ConTeXt is like LaTeX, but with different ideas of how thing should work. ConTeXt attempts to make things easier, especially typographical issues. Colors, figures, and changing document structure is more straightforward in this system.



Disclaimer: I am no expert on these systems. I personally use just standard LaTeX.






share|improve this answer























  • I think you mean OpenType/TrueType fonts instead of Type 1, which is what TeX is normally using, right?
    – Konrad Rudolph
    Jul 26 '10 at 19:50






  • 1




    @Konrad Rudolph: Yes, you are correct. I was thinking of purely bitmapped fonts which is what METAFONT generates, and Type1 can be bitmap. I'll correct.
    – Quadrescence
    Jul 26 '10 at 20:19






  • 7




    I thought LuaTeX was implemented in C (as opposed to the original Pascal implementation of TeX). The Lua functionality comes from having the Lua interpreter embedded within the program.
    – Sharpie
    Aug 3 '10 at 21:52






  • 2




    @Sharpie: Right. What Luatex provides is a family of hooks into the Tex engine that can be leveraged in format files to provide functionality that the Tex primitives can't.
    – Charles Stewart
    Aug 12 '10 at 13:19






  • 9




    TeX Live is not switching to use LuaTeX right now, and it's not sure it ever will. TeX Live provides pdfTeX, XeTeX and LuaTeX, but for the foreseeable future, the "latex" command will continue to invoke the pdfTeX engine.
    – mpg
    Oct 31 '10 at 1:30















up vote
23
down vote













Each of them is variation/implementation of TeX. LuaTeX is really just like Knuth's original TeX system (with LaTeX) but is implemented in Lua, which some find to be easier to handle and extend. I believe TeXLive is officially switching to use LuaTeX from now on.



XeTeX has especially useful font capabilities. It is essentially standard TeX but the ability to use OpenType and TrueType (instead of Type 1) fonts instead of the confusing setup in standard TeX. If you've ever had to install a font with standard TeX, or even make your own, you know it's a pain, even with fontinst.



ConTeXt is a different approach to TeX. ConTeXt is like LaTeX, but with different ideas of how thing should work. ConTeXt attempts to make things easier, especially typographical issues. Colors, figures, and changing document structure is more straightforward in this system.



Disclaimer: I am no expert on these systems. I personally use just standard LaTeX.






share|improve this answer























  • I think you mean OpenType/TrueType fonts instead of Type 1, which is what TeX is normally using, right?
    – Konrad Rudolph
    Jul 26 '10 at 19:50






  • 1




    @Konrad Rudolph: Yes, you are correct. I was thinking of purely bitmapped fonts which is what METAFONT generates, and Type1 can be bitmap. I'll correct.
    – Quadrescence
    Jul 26 '10 at 20:19






  • 7




    I thought LuaTeX was implemented in C (as opposed to the original Pascal implementation of TeX). The Lua functionality comes from having the Lua interpreter embedded within the program.
    – Sharpie
    Aug 3 '10 at 21:52






  • 2




    @Sharpie: Right. What Luatex provides is a family of hooks into the Tex engine that can be leveraged in format files to provide functionality that the Tex primitives can't.
    – Charles Stewart
    Aug 12 '10 at 13:19






  • 9




    TeX Live is not switching to use LuaTeX right now, and it's not sure it ever will. TeX Live provides pdfTeX, XeTeX and LuaTeX, but for the foreseeable future, the "latex" command will continue to invoke the pdfTeX engine.
    – mpg
    Oct 31 '10 at 1:30













up vote
23
down vote










up vote
23
down vote









Each of them is variation/implementation of TeX. LuaTeX is really just like Knuth's original TeX system (with LaTeX) but is implemented in Lua, which some find to be easier to handle and extend. I believe TeXLive is officially switching to use LuaTeX from now on.



XeTeX has especially useful font capabilities. It is essentially standard TeX but the ability to use OpenType and TrueType (instead of Type 1) fonts instead of the confusing setup in standard TeX. If you've ever had to install a font with standard TeX, or even make your own, you know it's a pain, even with fontinst.



ConTeXt is a different approach to TeX. ConTeXt is like LaTeX, but with different ideas of how thing should work. ConTeXt attempts to make things easier, especially typographical issues. Colors, figures, and changing document structure is more straightforward in this system.



Disclaimer: I am no expert on these systems. I personally use just standard LaTeX.






share|improve this answer














Each of them is variation/implementation of TeX. LuaTeX is really just like Knuth's original TeX system (with LaTeX) but is implemented in Lua, which some find to be easier to handle and extend. I believe TeXLive is officially switching to use LuaTeX from now on.



XeTeX has especially useful font capabilities. It is essentially standard TeX but the ability to use OpenType and TrueType (instead of Type 1) fonts instead of the confusing setup in standard TeX. If you've ever had to install a font with standard TeX, or even make your own, you know it's a pain, even with fontinst.



ConTeXt is a different approach to TeX. ConTeXt is like LaTeX, but with different ideas of how thing should work. ConTeXt attempts to make things easier, especially typographical issues. Colors, figures, and changing document structure is more straightforward in this system.



Disclaimer: I am no expert on these systems. I personally use just standard LaTeX.







share|improve this answer














share|improve this answer



share|improve this answer








edited Jul 26 '10 at 20:20

























answered Jul 26 '10 at 19:47









Quadrescence

1,422109




1,422109












  • I think you mean OpenType/TrueType fonts instead of Type 1, which is what TeX is normally using, right?
    – Konrad Rudolph
    Jul 26 '10 at 19:50






  • 1




    @Konrad Rudolph: Yes, you are correct. I was thinking of purely bitmapped fonts which is what METAFONT generates, and Type1 can be bitmap. I'll correct.
    – Quadrescence
    Jul 26 '10 at 20:19






  • 7




    I thought LuaTeX was implemented in C (as opposed to the original Pascal implementation of TeX). The Lua functionality comes from having the Lua interpreter embedded within the program.
    – Sharpie
    Aug 3 '10 at 21:52






  • 2




    @Sharpie: Right. What Luatex provides is a family of hooks into the Tex engine that can be leveraged in format files to provide functionality that the Tex primitives can't.
    – Charles Stewart
    Aug 12 '10 at 13:19






  • 9




    TeX Live is not switching to use LuaTeX right now, and it's not sure it ever will. TeX Live provides pdfTeX, XeTeX and LuaTeX, but for the foreseeable future, the "latex" command will continue to invoke the pdfTeX engine.
    – mpg
    Oct 31 '10 at 1:30


















  • I think you mean OpenType/TrueType fonts instead of Type 1, which is what TeX is normally using, right?
    – Konrad Rudolph
    Jul 26 '10 at 19:50






  • 1




    @Konrad Rudolph: Yes, you are correct. I was thinking of purely bitmapped fonts which is what METAFONT generates, and Type1 can be bitmap. I'll correct.
    – Quadrescence
    Jul 26 '10 at 20:19






  • 7




    I thought LuaTeX was implemented in C (as opposed to the original Pascal implementation of TeX). The Lua functionality comes from having the Lua interpreter embedded within the program.
    – Sharpie
    Aug 3 '10 at 21:52






  • 2




    @Sharpie: Right. What Luatex provides is a family of hooks into the Tex engine that can be leveraged in format files to provide functionality that the Tex primitives can't.
    – Charles Stewart
    Aug 12 '10 at 13:19






  • 9




    TeX Live is not switching to use LuaTeX right now, and it's not sure it ever will. TeX Live provides pdfTeX, XeTeX and LuaTeX, but for the foreseeable future, the "latex" command will continue to invoke the pdfTeX engine.
    – mpg
    Oct 31 '10 at 1:30
















I think you mean OpenType/TrueType fonts instead of Type 1, which is what TeX is normally using, right?
– Konrad Rudolph
Jul 26 '10 at 19:50




I think you mean OpenType/TrueType fonts instead of Type 1, which is what TeX is normally using, right?
– Konrad Rudolph
Jul 26 '10 at 19:50




1




1




@Konrad Rudolph: Yes, you are correct. I was thinking of purely bitmapped fonts which is what METAFONT generates, and Type1 can be bitmap. I'll correct.
– Quadrescence
Jul 26 '10 at 20:19




@Konrad Rudolph: Yes, you are correct. I was thinking of purely bitmapped fonts which is what METAFONT generates, and Type1 can be bitmap. I'll correct.
– Quadrescence
Jul 26 '10 at 20:19




7




7




I thought LuaTeX was implemented in C (as opposed to the original Pascal implementation of TeX). The Lua functionality comes from having the Lua interpreter embedded within the program.
– Sharpie
Aug 3 '10 at 21:52




I thought LuaTeX was implemented in C (as opposed to the original Pascal implementation of TeX). The Lua functionality comes from having the Lua interpreter embedded within the program.
– Sharpie
Aug 3 '10 at 21:52




2




2




@Sharpie: Right. What Luatex provides is a family of hooks into the Tex engine that can be leveraged in format files to provide functionality that the Tex primitives can't.
– Charles Stewart
Aug 12 '10 at 13:19




@Sharpie: Right. What Luatex provides is a family of hooks into the Tex engine that can be leveraged in format files to provide functionality that the Tex primitives can't.
– Charles Stewart
Aug 12 '10 at 13:19




9




9




TeX Live is not switching to use LuaTeX right now, and it's not sure it ever will. TeX Live provides pdfTeX, XeTeX and LuaTeX, but for the foreseeable future, the "latex" command will continue to invoke the pdfTeX engine.
– mpg
Oct 31 '10 at 1:30




TeX Live is not switching to use LuaTeX right now, and it's not sure it ever will. TeX Live provides pdfTeX, XeTeX and LuaTeX, but for the foreseeable future, the "latex" command will continue to invoke the pdfTeX engine.
– mpg
Oct 31 '10 at 1:30


















draft saved

draft discarded




















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f36%2fdifferences-between-luatex-context-and-xetex%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to change which sound is reproduced for terminal bell?

Can I use Tabulator js library in my java Spring + Thymeleaf project?

Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents