Re: [dev-context] [NTG-context] update and meeting
Hi Hans,
On 15 Sep 2020, at 18:44, Hans Hagen
wrote: (2) Another change is in the \startdocument mechanism. This (already old and rusted) wrapper runs on top of variables but we think no one knows (or uses) that. So, it now is a real wrapper with inheritance and such. It is dedicated to Tomas Hala who had to struggle with the old one but still gave a presentation using it. Here's an example:
\definedocument[thesis]
\setupdocument[a=b,e=f] \setupdocument[thesis][a=x,c=d]
\startsetups[document:start] START \stopsetups
\startsetups[thesis:stop] STOP \stopsetups
\startthesis
(\currentdocument/a): \documentvariable{a}\par (\currentdocument/c): \documentvariable{c}\par (\currentdocument/e): \documentvariable{e}\par
\stopthesis
The auto-inheritance of the setups does not work yet, because the \definedocument[thesis] does not set up local version of the before= and after= keys of \startthesis. \definedocument (re)defines the value of the actual setup “thesis:start” correctly to inherit the parent’s \directsetuo, but because the actual before and after keys are inherited from the (document) parent as well, the effect on \startthesis still remains equivalent to this: \setupdocument [thesis] [before=\directsetup{document:start}, after=\directsetup{document:stop}] Best wishes, Taco
Taco Hoekwater schrieb am 21.09.2020 um 14:44:
Hi Hans,
On 15 Sep 2020, at 18:44, Hans Hagen
wrote: (2) Another change is in the \startdocument mechanism. This (already old and rusted) wrapper runs on top of variables but we think no one knows (or uses) that. So, it now is a real wrapper with inheritance and such. It is dedicated to Tomas Hala who had to struggle with the old one but still gave a presentation using it. Here's an example:
\definedocument[thesis]
\setupdocument[a=b,e=f] \setupdocument[thesis][a=x,c=d]
\startsetups[document:start] START \stopsetups
\startsetups[thesis:stop] STOP \stopsetups
\startthesis
(\currentdocument/a): \documentvariable{a}\par (\currentdocument/c): \documentvariable{c}\par (\currentdocument/e): \documentvariable{e}\par
\stopthesis The auto-inheritance of the setups does not work yet, because the \definedocument[thesis] does not set up local version of the before= and after= keys of \startthesis.
\definedocument (re)defines the value of the actual setup “thesis:start” correctly to inherit the parent’s \directsetuo, but because the actual before and after keys are inherited from the (document) parent as well, the effect on \startthesis still remains equivalent to this:
\setupdocument [thesis] [before=\directsetup{document:start}, after=\directsetup{document:stop}]
So we need something like this: \appendtoks \setexpandeddocumentparameter\c!before{\noexpand\directsetup{\currentdocument:\v!start}}% \setexpandeddocumentparameter\c!after {\noexpand\directsetup{\currentdocument:\v!stop }}% \to \everydefinedocument Wolfgang
Taco Hoekwater schrieb am 21.09.2020 um 14:44:
Hi Hans,
On 15 Sep 2020, at 18:44, Hans Hagen
wrote: (2) Another change is in the \startdocument mechanism. This (already old and rusted) wrapper runs on top of variables but we think no one knows (or uses) that. So, it now is a real wrapper with inheritance and such. It is dedicated to Tomas Hala who had to struggle with the old one but still gave a presentation using it. Here's an example:
\definedocument[thesis]
\setupdocument[a=b,e=f] \setupdocument[thesis][a=x,c=d]
\startsetups[document:start] START \stopsetups
\startsetups[thesis:stop] STOP \stopsetups
\startthesis
(\currentdocument/a): \documentvariable{a}\par (\currentdocument/c): \documentvariable{c}\par (\currentdocument/e): \documentvariable{e}\par
\stopthesis The auto-inheritance of the setups does not work yet, because the \definedocument[thesis] does not set up local version of the before= and after= keys of \startthesis.
\definedocument (re)defines the value of the actual setup “thesis:start” correctly to inherit the parent’s \directsetuo, but because the actual before and after keys are inherited from the (document) parent as well, the effect on \startthesis still remains equivalent to this:
\setupdocument [thesis] [before=\directsetup{document:start}, after=\directsetup{document:stop}]
So we need something like this:
\appendtoks \setexpandeddocumentparameter\c!before{\noexpand\directsetup{\currentdocument:\v!start}}%
\setexpandeddocumentparameter\c!after {\noexpand\directsetup{\currentdocument:\v!stop }}% \to \everydefinedocument
On 9/21/2020 4:31 PM, Wolfgang Schuster wrote: the reason i didn't make setups inheritable was mostly that I can't oversee the intensions (i played a bit with it; like defining setups as part of define so that we can have inherited setups) ... for instance what when we have a third level (say document -> thesis -> mythesis .. and we want to use the thesis setups) i don't care what solution si chose as long as it doesn't break anything at my end Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Hi,
On 21 Sep 2020, at 18:41, Hans Hagen
wrote: the reason i didn't make setups inheritable was mostly that I can't oversee the intensions (i played a bit with it; like defining setups as part of define so that we can have inherited setups) ... for instance what when we have a third level (say document -> thesis -> mythesis .. and we want to use the thesis setups)
I think I would prefer a system where \definedocument[thesis] Automatically gets default (but not filled in) setups thesis:start and thesis:stop in before= and after=, but \definedocument[thesis][document] Would inherit the document:start and document:stop, and a thesis:stop and thesis:start in the case of a following \definedocument[mythesis][thesis] As this matches closely to how parents work in other \define calls. I find the current situation (with an implied ‘[document]’ parent) a tad confusing. But I am nitpicking :) Best wishes, Taco
i don't care what solution si chose as long as it doesn't break anything at my end
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
Taco Hoekwater
-
Wolfgang Schuster