Hi, It is fun fact very easy to do. You just use \startMPpage (…) \stopMPpage multiple times. Here is an example which build an animation of a particle moving according to a Brownian motion. Fabrice. % 8< ----------------------------------------------- \usecolors[crayola] \setupMPinstance \starttext % We can put in the inclusions the material we will use at each page, to declare things only one time. \startMPinclusions % the frame of the video ; path TheFrame ; TheFrame := fullsquare scaled 5in ; randomseed := 53 ; path TheBrownianMotion ; pair Coordinate[]; Coordinate[0] := (0,0); TheBrownianMotion := Coordinate[0] ; variance := 10 ; \stopMPinclusions \dorecurse{600}{ % Frame \setupMPpage[background=color, backgroundcolor=SpringGreen] \startMPpage[pagestate=start] currentime := #1 ; % Just for learning : draw TheFrame withpen pencircle scaled .1in withcolor magenta ; draw textext("T="&decimal(currentime)) scaled 2 shifted(0,2in) withcolor magenta ; Coordinate[currentime] := Coordinate[currentime-1] + %(normaldeviate*variance,normaldeviate*variance) ; ((uniformdeviate(1)-0.5)*variance,(uniformdeviate(1)-0.5)*variance) ; TheBrownianMotion := for p=0 upto (currentime-1) : Coordinate[p] .. endfor Coordinate[currentime] ; draw TheBrownianMotion withpen pencircle scaled .01in withcolor blue ; draw Coordinate[currentime] withpen pencircle scaled .10in withcolor red ; setbounds currentpicture to TheFrame ; desiredformat := 1080;% In pixels (will be converted by default at 72dpi) currentpicture := currentpicture xysized (desiredformat ,desiredformat ); \stopMPpage } \stoptext % 8< ----------------------------------------------- > Le 27 nov. 2023 à 13:49, Emanuel Han via ntg-context a écrit : > > How can I achieve multipage metapost output from ConTeXt? The result should be a multipage pdf. It contains just a metapost graphic per page. The graphic has always the same bounding box and evolves from page to page: Some elements to be drawn are added, and some others would ideally also be removed, while keeping elements which has already been drawn on previous pages. I can manage when it is not possible to remove elements (in that case I'll just cover them with a covering element). > > I saw that it is possible to achieve my goal with standalone metapost, as described here: https://tex.stackexchange.com/questions/471662/mptopdf-is-multipage-output-pdf-possible > But I'll need to achieve this with Metapost inside ConTeXt because I use labels in Metapost which print text in Japanese, Korean , Arabic and Roman script: Thanks to ConTeXt, I can define appropriate fonts for each script. All this works already in my working example. > > The only unsolved problem is to ship out multiple pages. > > For the minimal working example, I didn't remove the font defining part, because having 4 different fonts is a condition of my use case. The graphic on the other hand is some simple dummy nonsense graphic not from my project. The graphic is in the provided example drawn as a summing up of layered drawing steps (6 steps, to be precise), so no removing is implemented here (because I don't know how that would be done). If each of the figures 1 to 6 of my mwe can be put alone on a page, I'd be already very happy. Now, they're put on top of each other all on the same single page, also on top of figure 0. > > The desired multipage pdf will be used in presentation mode of a pdf viewer and skipped forward and backward from page to page (that is from drawing step to drawing step). > > mwe: > > \enableregime[utf] % enable unicoded input > > \definefontfamily [RomanFont] [rm] [calluna] > > \definefontfamily [KoreanFont] [rm] [applemyungjo] > > \definefontfamily [JapaneseFont] [rm] [hannotatesc] > > \definefontfeature > [fea] > [mode=node,language=dflt,script=arab, > init=yes, > medi=yes, > fina=yes, > isol=yes, > calt=yes, > rlig=yes, > tlig=yes, > trep=yes, > curs=yes, > kern=yes, > mark=yes > ] > > \starttypescript [serif] [notonaskharabic] > \definefontsynonym [notonaskharabic-Light] [name:notonaskharabic] [features=fea] > \definefontsynonym [notonaskharabic-Bold] [name:notonaskharabic] [features=fea] > \definefontsynonym [notonaskharabic-Italic] [name:notonaskharabic] [features=fea] > \definefontsynonym [notonaskharabic-Bold-Italic] [name:notonaskharabic] [features=fea] > \stoptypescript > > \starttypescript [serif] [notonaskharabic] > \usetypescript[serif][fallback] > \definefontsynonym [Serif] [notonaskharabic-Light] [features=fea] > \definefontsynonym [SerifItalic] [notonaskharabic-Italic] [features=fea] > \definefontsynonym [SerifBold] [notonaskharabic-Bold] [features=fea] > \definefontsynonym [SerifBoldItalic] [notonaskharabic-Bold-Italic] [features=fea] > \stoptypescript > > \starttypescript [notonaskharabic] > \definetypeface [notonaskharabic] [rm] [serif] [notonaskharabic] [default] > \stoptypescript > > \usetypescript[notonaskharabic] > > \setupbodyfont [RomanFont] > > > \starttext > > \startMPcode > > picture p[]; > path bb; %bounding box > > z0 = (0,0); > z1 = (60,40); > z2 = (40,90); > z3 = (10,70); > z4 = (30,50); > z5 = (90,70); > z6 = (-10,70); > > path A; A = z0..z1..z2..z3..z4 ; > pair AStartPoint; AStartPoint = point 0 of A; > pair AEndPoint; AEndPoint = point 4 of A; > path B; B = z5..z6; > pair BStartPoint; BStartPoint = point 0 of B; > pair BEndPoint; BEndPoint = point 1 of B; > path C; C = AStartPoint..AEndPoint; > > % drawing steps: > p1:=image( > draw A withcolor red; > ); > > p2:=image( > label(textext("\JapaneseFont 日本語"), AEndPoint); > ); > > p3:=image( > label(textext("\notonaskharabic \textdir TRT دانگ") scaled 1.2, AStartPoint); > ); > > p4:=image( > label(textext("\KoreanFont 한국어"), BStartPoint); > ); > > p5:=image( > label(textext("\RomanFont bāng"), BEndPoint); > draw C withcolor green; > ); > > p6:=image( > draw B withcolor blue; > ); > > > beginfig(0); %% the whole picture for the common bbox > for k=1 upto 6: draw p[k]; endfor > bb:=bbox(currentpicture); > endfig; > > for $=1 upto 6: > beginfig($); > for k=1 upto $: draw p[k]; endfor > setbounds currentpicture to bb; > endfig; > endfor > > \stopMPcode > \stoptext > > > ___________________________________________________________________________________ > If your question is of interest to others as well, please add an entry to the Wiki! > > maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl > webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) > archive : https://github.com/contextgarden/context > wiki : https://wiki.contextgarden.net > ___________________________________________________________________________________