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