Hi On Thu, Feb 15, 2024 at 1:03 AM Emanuel Han via ntg-context <ntg-context@ntg.nl> 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(<initial set>, <the things what the initial set > should be appended with>) > > 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 ___________________________________________________________________________________