I just made a strange observation in the output pdf of the attached layer_set.tex, which is that when opening it with a pdf viewer like skim or macos preview and showing miniatures, all pages except the last one show page number 1 (the last showing page number 2). Which was not the case with the output pdf of the attached multipage_metapost_mwe-very_simple.tex. How can I change my code to have proper consecutive page numbering in a pdf viewer? > On Feb. 17 2024, at 11:03 am, Emanuel Han via ntg-context wrote: > I think I could solve all the problems. Attached the finalized working example. I created the https://wiki.contextgarden.net/MetaPost#Layer_sets_as_individual_pages entry with it. Feel free to modify. > > Cheers > Emanuel > > On Feb. 16 2024, at 7:56 am, Mikael Sundqvist wrote: > Hi, > > not sure I get what you are missing. But you can try > > setbounds currentpicture to (fullsquare scaled 200) ; > > in base. And then do > > \dorecurse{5}{ > \startTEXpage[offset=1DK] > \useMPgraphic{layerset#1} > \stopTEXpage > } > > if that is the looping you are after. > > /Mikael > > On Fri, Feb 16, 2024 at 6:54 AM Emanuel Han via ntg-context > wrote: > > > > Resp. the solution should be such that each generated PDF page has the same dimension, the same background colour and a page number and the metapost content on each page has the same scaling factor. > > > > On Feb. 15 2024, at 11:10 pm, Emanuel Han via ntg-context wrote: > > > > Dear Mikael, > > > > I actually need to keep the \dorecurse mechanism of the mwe (from line 44 on), because I need the "setbounds currentpicture to TheFrame" and also because I need page numbering inside the MPpage, as done with draw textext(decimal(currentime)). > > > > So, how can I use the \useMPgraphic{layerset1} etc. inside the \dorecurse, assuming I name my layersets "layerset1", "layerset2", "layerset3" etc.? > > > > Emanuel > > > > On Feb. 15 2024, at 10:07 pm, Emanuel Han via ntg-context wrote: > > > > Dear Mikael, > > thanks a lot! > > this seems to be the solution! And it looks beatiful enough to me 😄 > > I'll try to port all my layers to this new method and see if I run into new problems again 😅 > > > > Emanuel > > > > > > On Feb. 15 2024, at 8:19 am, Mikael Sundqvist wrote: > > > > Hi > > > > On Thu, Feb 15, 2024 at 1:03 AM Emanuel Han via ntg-context > > wrote: > > > > > > Dear list, > > > > > > the attached .tex file is the minimal working example we discussed today in the online meeting. > > > > > > I realized that the approach of looping through k of p[k] is not fitting my needs, because it's not flexible enough. > > > > > > I need another approach, one which works with layer sets. > > > > > > I would stop using p as an array, because with the layer sets approach we don't have a fixed order of the layers. > > > > > > So the definition of the layers would be something like > > > > > > picture layerA; > > > layerA:=image( > > > label("Word 1", z1); > > > ); > > > > > > picture layerW; > > > layerW:=image( > > > label("Mot 2", z2); > > > ); > > > > > > picture layerM; > > > layerM:=image( > > > label("Parola 3", z3); > > > ); > > > > > > picture layerC; > > > layerC:=image( > > > label("Wort 4", z3+z1); > > > ); > > > > > > picture layerY; > > > layerY:=image( > > > label("Nummer 5", z2+z3); > > > ); > > > > > > picture layerU; > > > layerU:=image( > > > label("number 6", z2+z1); > > > ); > > > > > > After that, I would define layer sets and layer subsets. This will be done manually for each layer set and each layer subset. > > > I don't know the proper syntax to do that. Let's assume we could use a variable type called "myset". > > > > > > myset layersubsetGamma; > > > layersubsetGamma:={layerU,layerM}; > > > > > > In my logic, the layers will be drawn in the order of their appearance within the {}. In the example, drawn content of layerM might cover drawn content of layerU. > > > > > > Contrary to a layer subset, each layer set will result in a PDF page, and thus the layer sets are related to each other by an inner order. That's why I would use an array variable here with []. > > > > > > I don't know how to append a set. In the following example, I assumed there would be a function myappend(, ) > > > > > > myset layerset[]; > > > layerset1 := {layerW,layerA}; > > > layerset2 := myappend{layerset1, layerY}; > > > layerset3 := myappend{layerset2, layersubsetGamma}; > > > layerset4 := myappend{layerset2, layerU}; > > > layerset5 := myappend{layerset4, layersubsetGamma}; > > > > > > Finally, I would need each layerset[k] typeset on its own pdf page. And of course on each page k, only the layers which appear in the definition of the layerset[k] should be drawn on top of each other in the order as they appear in that definition. > > > > > > I'm very curious to hear your suggestions. > > > > > > > Not beautiful, perhaps, but maybe something like this could work? I > > think there is no way out of doing some manual work to tell what you > > want included on each page. > > > > \startuseMPgraphic{base} > > z1 = origin ; > > z2 = (10,50) ; > > z3 = (40,30) ; > > > > picture layerA; > > layerA:=image( > > label("Word 1", z1); > > ); > > > > picture layerW; > > layerW:=image( > > label("Mot 2", z2); > > ); > > > > picture layerM; > > layerM:=image( > > label("Parola 3", z3); > > ); > > > > picture layerC; > > layerC:=image( > > label("Wort 4", z3+z1); > > ); > > > > picture layerY; > > layerY:=image( > > label("Nummer 5", z2+z3); > > ); > > > > picture layerU; > > layerU:=image( > > label("number 6", z2+z1); > > ); > > \stopuseMPgraphic > > > > \startuseMPgraphic{Gamma} > > draw layerU ; > > draw layerM ; > > \stopuseMPgraphic > > > > \startuseMPgraphic{layerset1} > > \includeMPgraphic{base} > > draw layerW ; > > draw layerA ; > > \stopuseMPgraphic > > > > \startuseMPgraphic{layerset2} > > \includeMPgraphic{layerset1} ; > > draw layerY ; > > \stopuseMPgraphic > > > > \startuseMPgraphic{layerset3} > > \includeMPgraphic{layerset2} ; > > \includeMPgraphic{Gamma} ; > > \stopuseMPgraphic > > > > > > \startuseMPgraphic{layerset4} > > \includeMPgraphic{layerset2} ; > > draw layerU ; > > \stopuseMPgraphic > > > > \startuseMPgraphic{layerset5} > > \includeMPgraphic{layerset4} ; > > \includeMPgraphic{Gamma} ; > > \stopuseMPgraphic > > > > \starttext > > > > \startTEXpage[offset=1DK] > > \useMPgraphic{layerset1} > > \stopTEXpage > > > > \startTEXpage[offset=1DK] > > \useMPgraphic{layerset2} > > \stopTEXpage > > > > \startTEXpage[offset=1DK] > > \useMPgraphic{layerset3} > > \stopTEXpage > > > > \startTEXpage[offset=1DK] > > \useMPgraphic{layerset4} > > \stopTEXpage > > > > \startTEXpage[offset=1DK] > > \useMPgraphic{layerset5} > > \stopTEXpage > > > > \stoptext > > > > /Mikael > > ___________________________________________________________________________________ > > 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 > > ___________________________________________________________________________________ > > > > ___________________________________________________________________________________ > > 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 > > ___________________________________________________________________________________ > > > > ___________________________________________________________________________________ > > 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 > > ___________________________________________________________________________________ > > > > ___________________________________________________________________________________ > > 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 > > ___________________________________________________________________________________ > ___________________________________________________________________________________ > 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 > ___________________________________________________________________________________ > ___________________________________________________________________________________ > 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 > ___________________________________________________________________________________