Why should I be interested in ConTeXt?
- Not really any extra packages with ConTeXt - there are a few modules, but dealing with package conflicts doesn't really happen here.
- Built-in XML processor - I use this with TEI and Docbook XML. I gain the typesetting sexiness of a TeX backend, coupled with the validation features of XML is great.
- PDF-X compliance pretty much right out of the box - this is one thing LaTeX really lacks if you are doing any kind of serious publishing. There is a package for LaTeX for pdfx for latex, but I've never been able to make it work.
- along the same lines as the last one, icc color profile support pretty much out of the box.
- simplefonts package - load your system fonts like XeLaTeX
- UTF-8 support by default. important if you write a language other than english. you can use utf8 in LaTeX, but you need a package . . . again, this is the default.
I'm sure I've missed some major things. I'm still pretty new to ConTeXt after using LaTeX for some years, but so far I'm really enjoying it. Another major, but probably not "documented", feature is that ConTeXt is aimed more at general publishing, while LaTeX seems to be aimed heavily at academia.
In my opinion, the two biggest strengths of ConTeXt are:
- By design, every command is configurable using key-value options
- These options are consistent and predictable.
Lets consider an example of changing the style of various parts of a document to bold italic.
To make section headings bolditalic:
\setuphead[section][style=bolditalic]
To make page footers bolditalic:
\setupfooter[style=bolditalic]
To make contents of enumerations (which are similar to LaTeX's theorems) bolditalic:
\setupenumerations[style=bolditalic]
To make the contents of the second levels of itemizations bolditalic:
\setupitemize[2][style=bolditalic]
To make the first row and first column of a table bolditalic
\setupTABLE[row] [1][style=bolditalic] \setupTABLE[column][1][style=bolditalic]
Knowing this, can you guess how to change the style of figure and table captions
to bolditalic? (Hint: captions are set using \setupcaptions
). Now contrast
this with the corresponding commands in LaTeX.
Because of this consistency, you do not need to have multiple ConTeXt manuals open when you are tweaking the document style.
To add to Mica's list:
- The thing that attracted me to Context is support for graphical layout, through grids and layers. Context is good at organising material on a page. I have the impression that Tikz is being used more and more for this kind of thing for Latex documents, but using Tikz in this way leads to slow compile cycles.
- Beyond the fact that "packages are included," as Mica says, passing options to environments is done in a very consistent way. I generally find it much easier to remember what values to pass to which keys in environments, than remember which package does what.
- Generous functionality is given to environments: look at what can be done with framed boxes, how general and useful they are for setting off visual information.
- The possibility of naming setups for environments allows a much cleaner separation of content from typesetting.
The last point, in particular, is something I'd like the Latex 3 team to be thinking about.