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 > ___________________________________________________________________________________ >