ConTeXt

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Not to be confused with ConTEXT. ‹See Tfd›
ConTeXt
The Unofficial ConTeXt logo (contextgarden.net logo)
Original author(s) Mainly Hans Hagen and Pragma ADE
Developer(s) Mainly Hans Hagen, Taco Hoekwater,[1] Aditya Mahajan, Mojca Miklavec, Wolfgang Schuster
Stable release Mark II/Mark IV / May 18, 2011 (2011-05-18)[2][3][4]
Operating system Multiplatform (TeX)
Type Document processor, Document markup language
License Program code under GPLv2 and Documentation under CC BY-NC-SA 3.0[5]
Website contextgarden

ConTeXt is a general-purpose document processor. It is especially suited for structured documents, automated document production, very fine typography, and multi-lingual typesetting. It is based in part on the TeX typesetting system, and uses a document markup language for manuscript preparation. The typographical and automated capabilities of ConTeXt are extensive, including interfaces for handling microtypography, multiple footnotes and footnote classes, and manipulating OpenType fonts and features. Moreover, it offers extensive support for colors, backgrounds, hyperlinks, presentations, figure-text integration, and conditional compilation. It gives the user extensive control over formatting while making it easy to create new layouts and styles without learning the low-level TeX macro language.

ConTeXt may be compared and contrasted with LaTeX, but the primary thrust of the two are rather distinct. ConTeXt from the ground up is a typography and typesetting system meant to provide users easy and consistent access to advanced typographical control—important for general-purpose typesetting tasks. The original vision of LaTeX is to insulate the user from typographical decisions—a useful approach for submitting, say, articles for a scientific journal. LaTeX has evolved from that original vision; at the same time, ConTeXt’s unified design avoids the package clashes that can happen with LaTeX.[6][7]

ConTeXt provides a multi-lingual user interface with support for markup in English, Dutch, German, French, and Italian and support for output in many languages including western European, eastern European, Arabic-script, Chinese, Japanese, and Korean. It also allows the user to use different TeX engines like pdfTeX, XeTeX, and LuaTeX without changing the user interface.[7]

As its native drawing engine, ConTeXt integrates a superset of MetaPost called MetaFun,[7] which allows the users to use the drawing abilities of MetaPost for page backgrounds and ornaments. Metafun can also be used with stand alone MetaPost. ConTeXt also supports the use of other external drawing engines, like PGF/TikZ[8] and PSTricks.[9]

ConTeXt also provides a macro package for typesetting chemical structure diagrams with TeX called PPCHTeX,[10] as well as many other modules.[9][11][12] This package can also be used with plain TeX and LaTeX.

Originally entitled pragmatex, ConTeXt was given its name around 1996.[13] by Hans Hagen from PRAGMA Advanced Document Engineering (Pragma ADE), a Netherlands-based company.

License[edit]

ConTeXt is free software: the program code (i.e. anything not under the /doc subtree) is distributed under the GNU GPL; the documentation is provided under Creative Commons Attribution NonCommercial ShareAlike license.[14]

The ConTeXt official manual(2001) and ConTeXt official mini tutorial (1999) are documents copyrighted by Pragma, but there is a repository of the future new manual[15] released under the GNU Free Documentation License.[16][17] As of April 2009 there is an up-to-date version of the fonts and typography chapters.[18]

Versions[edit]

Mark IV (abbreviated MKIV) is the current version of ConTeXt. It's a development version and new features are being added constantly, although it is fully usable. There is also a frozen version called Mark II (abbreviated MKII) which is still maintained. The main difference between MKII and MKIV is that MKIV is based on the LuaTeX engine[19] and MKII is based on pdfTeX and XeTeX[20] (although one could select the TeX engine used in ConTeXt[21]). There are some documents describing the necessity of this change,[22] how the process is being carried out, and its benefits.[23] There are other minor differences between MKII and MKIV.[24]

Apart from the new features of MKIV, the changes between the code of MKII and MKIV are not visible in the user interface (in syntax document level). Both MKIV and MKII were released at the same time[25]

The oldest version of ConTeXt is Mark I, in which all the low-level code is written in Dutch. It is unmaintained.

History[edit]

ConTeXt was created by Hans Hagen[26] and Ton Otten of Pragma ADE in the Netherlands[27] around 1991[28][29] due to the need for educational typesetting material.

Around 1996, Hans Hagen coined the name ConTeXt meaning "text with tex" (con-tex-t; "con" is a Latin preposition meaning "together with").[26] Before 1996 ConTeXt was used only within Pragma ADE, but in 1996 it began to be adopted by a wider audience. The first users outside Pragma were Taco Hoekwater, Berend de Boer and Gilbert van den Dobbelsteen, and the first user outside the Netherlands was Tobias Burnus.[26]

In July 2004, contextgarden.net wiki page was created.[28][30]

ConTeXt low-level code was originally written in Dutch. Around 2005, the ConTeXt developers began translating this to English, resulting in the version known as MKII, which is now stable and frozen[citation needed].

In August 2007, Hans Hagen presented the MKIV version,[29][31] and the first public beta was released later that year.[32]

During the ConTeXt User Meeting 2008, Mojca Miklavec presented[33] ConTeXt Minimals, a distribution of ConTeXt containing the latest binaries and intended to have a small memory footprint, thus demanding less bandwidth for updates.[34] In August 2008, this distribution was registered as a project in launchpad web site.[35]

In June 2008, Patrick Gundlach wrote the first post[36] in ConTeXt blog.

In July 2009, ConTeXt started git repository.[37]

In November 2010, the ConTeXt Group was created.[38]

Example of code[edit]

Making ConTeXt documents is simple: one makes a plain text file (typically with .tex extension), and compiles it with the texexec script.[39] The result of this process is a PDF file (ConTeXt also can generate a DVI file). An example is shown below.

% This line is a comment because % precedes it.
% It specifies the format of head named 'title'
% Specifically the style of the font: sans serif
% + bold + big font.
 
\setuphead[title][style={\ss\bfd},
    before={\begingroup},
    after={John Doe, the author\smallskip%
           \currentdate\bigskip\endgroup}]
 
\starttext
 
\title{\CONTEXT}
 
\section{Text}
\CONTEXT\ is a document preparation system for the 
\TEX\ typesetting program. It offers programmable 
desktop publishing features and extensive 
facilities for automating most aspects of 
typesetting and desktop publishing, including 
numbering and cross-referencing (for example to 
equation \in[eqn:famous-emc]), tables and figures, 
page layout, bibliographies, and much more.
 
It was originally written around 1990 by Hans 
Hagen. It could be an alternative or complement 
to \LATEX.
 
\section{Maths}
With \CONTEXT\ we could write maths. Equations 
can be automatically numbered.
 
\placeformula[eqn:famous-emc]
\startformula
    E = mc^2
\stopformula
with
\placeformula[eqn:def-m]
\startformula
    m = \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}
\stopformula
 
\stoptext
ConTeXt document

See also[edit]

References[edit]

  1. ^ Dave Walden interview with Taco Hoekwater. TeX User Group 2006.
  2. ^ Release notes of ConTeXt at contextgarden
  3. ^ List of releases of ConTeXt
  4. ^ ConTeXt files in Supelec
  5. ^ Read Me (license of ConTeXt code and documentation)
  6. ^ FAQ of the UK TeX Archive
  7. ^ a b c "What is ConTeXt" page at contextgarden
  8. ^ PGF/TikZ official manual. Version 2.0. Section 9.1.3 "Using the ConTeXt Format". p. 88
  9. ^ a b List of ConTeXt modules at contextgarden
  10. ^ PPCHTeX Module for ConTeXt reference page at contextgarden
  11. ^ List of ConTeXt modules (static page)
  12. ^ List of ConTeXt modules in web server for downloading
  13. ^ Hans Hagen Interview, 2006
  14. ^ Hagen, Hans (2005-11-24). "Read Me". Retrieved 2010-07-13. 
  15. ^ Repository of new reference manual[dead link]
  16. ^ License notice of new official manual[dead link]
  17. ^ Part of thread about context manual where Taco Hoekwater recognises that new manual is licensed under the GFDL and he should put license note on the current directory of manual
  18. ^ Up-to-date chapters of manual: Fonts and Typography. April 2009.
  19. ^ MKIV reference manual. (page 7)
  20. ^ LuaTeX support page. In this page there is a comment that MKII is based on pdfTeX and XeTeX while MKIV is based on LuaTeX.
  21. ^ TeX processors in ConTeXt
  22. ^ Hans Hagen "ConTEXt MkIV: Going UTF". TUGboat, Volume 28 (2007), No. 3 — Proceedings of the 2007 Annual Meeting. p314-316 (pdf)
  23. ^ Hans Hagen "MKII-MKIV". MAPS journal 34. p. 9-21 (pdf)
  24. ^ MKIV differences at context wiki
  25. ^ FAQ of ConTeXt
  26. ^ a b c Dave Walden interview Hans Hagen. TeX User Group 2006.
  27. ^ "Ask Nelly ..." PracTeX Journal. TeX User Group. 2005. Includes an example of ConTeXt document with source code.
  28. ^ a b Taco Hoekwater "A short History of $2^4$ parts". ConTeXt User Meeting 2007 (march 24)
  29. ^ a b Programme of the ConTeXt User Meeting 2007
  30. ^ contextgarden 5th birthday on 24 July 2009
  31. ^ Hans Hagen The Road to MKIV. ConTeXt User Meeting 2007.
  32. ^ MKIV at contextgarden
  33. ^ ConTeXt User Meeting 2008 web page
  34. ^ ConTeXt Minimals web page
  35. ^ ConTeXt at Launchpad.net
  36. ^ First ConTeXt blog post
  37. ^ Post of announce of git repository
  38. ^ Official announcement of ConTeXt Group registration
  39. ^ "TeXEXEC explained" manual. Pragma ADE.

External links[edit]

Official pages[edit]

Manuals and tutorials[edit]

Comparison between ConTeXt and LaTeX[edit]