ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Aditya Mahajan via ntg-context <ntg-context@ntg.nl>
To: Vincent Hennebert via ntg-context <ntg-context@ntg.nl>
Cc: Aditya Mahajan <adityam@umich.edu>
Subject: Re: Reset environment between MetaPost graphics?
Date: Thu, 20 Jan 2022 09:26:42 -0500 (EST)	[thread overview]
Message-ID: <nycvar.YAK.7.78.908.2201200922410.453707@nqv-guvaxcnq> (raw)
In-Reply-To: <02d5d0c2ea4b0cbcf8c8693a8e89db1e9dc73721.camel@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1238 bytes --]

On Thu, 20 Jan 2022, Vincent Hennebert via ntg-context wrote:

> Hi,
> 
> 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
> \starttext
> 
> Text about some topic.
> 
> \startMPcode
> u=1cm;
> draw (-u, u)--origin--(u ,u);
> \stopMPcode
> 
> Now on to another topic.
> 
> \startMPcode
> u=2cm; % Triggers an error: Inconsistent equation (off by 28.34645)
> draw (-u, u)..origin..(u ,u);
> \stopMPcode
> 
> \stoptext
> % 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.

use:

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, 

newpair p[];

but need save p; pair p[] instead. 

Another option is to use assignment rather than equality:

  u := 2cm;

Aditya

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2022-01-20 14:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-20 13:59 Vincent Hennebert via ntg-context
2022-01-20 14:26 ` Aditya Mahajan via ntg-context [this message]
2022-01-20 14:47   ` Hans Hagen via ntg-context
2022-01-21  9:47     ` Vincent Hennebert via ntg-context
2022-01-20 14:42 ` Hans Hagen via ntg-context
2022-01-20 14:55   ` Hans Hagen via ntg-context

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.YAK.7.78.908.2201200922410.453707@nqv-guvaxcnq \
    --to=ntg-context@ntg.nl \
    --cc=adityam@umich.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).