[NTG-context] Reset environment between MetaPost graphics?
adityam at umich.edu
Thu Jan 20 15:26:42 CET 2022
On Thu, 20 Jan 2022, Vincent Hennebert via ntg-context wrote:
> Say I’m writing a document containing many independent MetaPost
> figures. I don’t want to bother with enclosing each and every graphics
> in a ‘begingroup...endgroup’ with the appropriate ‘save’ statement. But
> I don’t want variables from previous graphics to leak into following
> ones either.
> Like this:
> % SOF
> Text about some topic.
> draw (-u, u)--origin--(u ,u);
> Now on to another topic.
> u=2cm; % Triggers an error: Inconsistent equation (off by 28.34645)
> draw (-u, u)..origin..(u ,u);
> % EOF
> Is that achievable?
AFAIK, there is no in-built support for this.
I workaround this as follows. Instead of defining new variables using
numeric u; pair p; path q; etc.
newnumeric u; newpair p; newpath p; etc.
which automatically does a save beforehand. The only place where the abstraction leaks is arrays. You cannot do,
but need save p; pair p instead.
Another option is to use assignment rather than equality:
u := 2cm;
More information about the ntg-context