% language=us runpath=texruns:manuals/metafun \startcomponent metafun-document \environment metafun-environment \startchapter[title={This document}] \startintro This document is produced in \CONTEXT\ and can serve as an example of how to integrate \METAPOST\ graphics into \TEX. In this appendix we will discuss some details of producing this document. \stopintro We did not use any special tricks, so most of the examples you have seen are coded just as shown. We used buffers to ensure that the code used to produce the accompanying graphic is identical to the typeset code in the document. Here is an example. \starttyping \startbuffer[dummy] draw fullcircle xscaled 3cm yscaled 2cm rotatedaround(origin,30) withcolor .625red ; \stopbuffer \stoptyping Instead of using \type {\getbuffer}, we used the following command: \starttyping \startlinecorrection[blank] \processMPbuffer[dummy] \stoplinecorrection \stoptyping The line correction commands take care of proper spacing around the graphic. If you want to process more buffers at once, you can pass their names as a comma separated list. Alternatively, we could have said: \starttyping \startuseMPgraphic{dummy} draw fullcircle xscaled 3cm yscaled 2cm rotatedaround(origin,30) withcolor .625red ; \stopuseMPgraphic \stoptyping When including this graphic, we again take care of spacing. \starttyping \startlinecorrection[blank] \useMPgraphic{dummy} \stoplinecorrection \stoptyping The first version of this manual was produced with \PDFTEX\ and call|-|outs to \METAPOST. Because the number of graphics is large, we processed that version using the \type {--automp} directive (at that moment we were using \TEXEXEC). And even then runtime was so unconveniently long that updating this manual became less and less fun. The current version is produced with \LUATEX\ and \CONTEXT\ \MKIV, which brings down the runtime (including runtime calls to independent \CONTEXT\ runs for the outline examples) to some 45 seconds on a 2.2 Gig Dell M90. Given that (at the time of writing this) over 1700 graphics are generated on the fly, this is not bad at all. On my current machine, a Dell M6700 with an Intel Core i7|-|3840QM running at 2.8 (3.9) Ghz (and Windows~8) the runtime of the third version was just above 20 seconds all|-|in and some 25\percent\ less when using \LUAJITTEX. When I started with updating to version 4 of this manual, I timed about 15 seconds on the same machine (but with Windows-10) which means that in the meantime the \CONTEXT|/|\LUATEX\ combination gained some 25\% performance. Using the new Bash|-|On|-|Windows subsystem gives the same performance. Of course each update adds pages so in the end we need more time with each update but it remains a nice test case. The tight integration of \TEX, \METAPOST\ and \LUA\ pays off. The document style is not that complicated. The main complication in such a document is to make sure that \METAPOST\ is operating under the same font regime, but in \MKIV\ this happens automatically. As document font we use the URW Palatino for the running text combined with Computer Modern Typewriter. Because this document is available as paper and screen document, some large graphics are scaled down in the screen version. We don't use any special tricks in typesetting this document, but when we added the section about transparency, a dirty trick was needed in a few cases in order to get the described results. Because the screen document has gray backgrounds, exclusive transparencies come out \quote {wrong}. In the function drawing example we use the following trick to get a black background behind the graphics only. We have a buffer that contains a few lines of code: % buffer only available in screen mode \starttyping picture savedpicture ; savedpicture := currentpicture ; currentpicture := nullpicture ; draw savedpicture withcolor black ; draw savedpicture ; \stoptyping Since we use buffers for the graphics as well, we can now process a buffer with name \type {example} as follows: \starttyping \processbuffer[example,wipe] \stoptyping This means that the example code is included two times. After it is processed, we recolor the currentpicture black, and after that we add the original picture once again. \stopchapter \stopcomponent