The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE

The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE

pragma.ade.nl
from pragma.ade.nl More from this publisher
29.05.2014 Views

• TEX primitives Access to and control over most TEX primitives (and related mechanisms) as well as all registers. Especially box handling has to be reinvented. This is an ongoing effort. • pdf backend Open up most backend related features, like annotations and object management. The rst code will show up at the end of 2008. • math Open up the math engine parallel to the development of the TEX Gyre math fonts. Work on this will start during 2008 and we hope that it will be nished by early 2009. • cweb Convert the TEX Pascal source into cweb and start using Lua as glue language for components. This will be tested on mplib rst. This is on the long term agenda, so maybe around 2010 you will see the rst signs. In addition to the mentioned functionality we have a couple of ideas that we will implement along the road. The rst formal beta was released at tug 2007 in San Diego (usa). The rst formal release will be at tug 2008 in Cork (Ireland). The production version will be released at EuroTEX in the Netherlands (2009). Eventually LuaTEX will be the successor to pdfTEX (informally we talk of pdfTEX version 2). It can already be used as a drop-in for Aleph (the stable variant of Omega). It provides a scripting engine without the need to install a specic scripting environment. These factors are among the reasons why distributors have added the binaries to the collections. Norbert Preining maintains the linux packages, Akira Kakuto provides Windows binaries as part of his distribution, Arthur Reutenauer takes care of MacOSX and Christian Schenk recently added LuaTEX to MikTEX. The LuaTEX and mplib projects are hosted at Supelec by Fabrice Popineau (one of our technical consultants). And with Karl Berry being one of our motivating supporters, you can be sure that the binaries will end up someplace in TEXLive this year. 178 The luacation of TEX and ConTEXt

XXII The MetaPost Library This chapter is written by Taco and Hans around the time that mplib was integrated into LuaTEX. It is part of our torture test. introduction If MetaPost support had not been as tightly integrated into ConTEXt as it is, at least half of the projects Pragma ADE has been doing in the last decade could not have been done at all. Take for instance backgrounds behind text or graphic markers alongside text. These are probably the most complex mechanisms in ConTEXt: positions are stored, and positional information is passed on to MetaPost, where intersections between the text areas and the running text are converted into graphics that are then positioned in the background of the text. Underlining of text (sometimes used in the educational documents that we typeset) and change bars (in the margins) are implemented using the same mechanism because those are basically a background with only one of the frame sides drawn. You can probably imagine that a 300 page document with several such graphics per page takes a while to process. A nice example of such integrated graphics is the LuaTEX reference manual, that has an unique graphic at each page: a stylized image of a revolving moon. Most of the running time integrating such graphics seemed to be caused by the mechanics of the process: starting the separate MetaPost interpreter and having to deal with a number of temporary les. Therefore our expectations were high with regards to integrating MetaPost more tightly into LuaTEX. Besides the speed gain, it also true that the simpler the process of using such use of graphics becomes, the more modern a TEX runs looks and the less problems new users will have with understanding how all the processes cooperate. This article will not discuss the application interface of the mplib library in detail, for that there is the LuaTEX manual. In short, using the embedded MetaPost interpreter in LuaTEX boils down to the following: The MetaPost Library 179

XXII<br />

<strong>The</strong> MetaPost Library<br />

This chapter is written by Taco and Hans around the time that mplib was integrated into<br />

LuaTEX. It is part <strong>of</strong> our torture test.<br />

introduction<br />

If MetaPost support had not been as tightly integrated into ConTEXt as it is, at least half <strong>of</strong><br />

the projects <strong>Pragma</strong> <strong>ADE</strong> has been doing in the last decade could not have been done at<br />

all. Take for instance backgrounds behind text or graphic markers alongside text. <strong>The</strong>se<br />

are probably the most complex mechanisms in ConTEXt: positions are stored, and positional<br />

information is passed on to MetaPost, where intersections between the text areas<br />

and the running text are converted into graphics that are then positioned in the background<br />

<strong>of</strong> the text. Underlining <strong>of</strong> text (sometimes used in the educational documents<br />

that we typeset) and change bars (in the margins) are implemented using the same mechanism<br />

because those are basically a background with only one <strong>of</strong> the frame sides drawn.<br />

You can probably imagine that a 300 page document with several such graphics per page<br />

takes a while to process. A nice example <strong>of</strong> such integrated graphics is the LuaTEX reference<br />

manual, that has an unique graphic at each page: a stylized image <strong>of</strong> a revolving<br />

moon.<br />

Most <strong>of</strong> the running time integrating such graphics seemed to be caused by the mechanics<br />

<strong>of</strong> the process: starting the separate MetaPost interpreter and having to deal with a<br />

number <strong>of</strong> temporary les. <strong>The</strong>refore our expectations were high with regards to integrating<br />

MetaPost more tightly into LuaTEX. Besides the speed gain, it also true that the<br />

simpler the process <strong>of</strong> using such use <strong>of</strong> graphics becomes, the more modern a TEX runs<br />

looks and the less problems new users will have with understanding how all the processes<br />

cooperate.<br />

This article will not discuss the application interface <strong>of</strong> the mplib library in detail, for that<br />

there is the LuaTEX manual. In short, using the embedded MetaPost interpreter in LuaTEX<br />

boils down to the following:<br />

<strong>The</strong> MetaPost Library 179

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!