On 8/24/2013 2:31 PM, Marco Patzer wrote:
On 2013–08–24 Hans Hagen wrote:
startplaincompatibity ;
label("first", origin);
pair laboff.foo ; laboff.foo := (.5,-1) ; labxf.foo := labyf.foo := 1 ;
label.foo("second", origin);
stopplaincompatibity ;
Brilliant! Thanks a lot. A few things:
1) Can you replace
def useplainlabels = let label = plain_label ; let thelabel = plain_thelabel ; enddef ;
with
def useplainlabels = def label = plain_label enddef ; def thelabel = plain_thelabel enddef ; enddef ;
The minimal example works with your version, but the old MetaPost code does not. The def variant works fine with both.
ok
2) Replace
startplaincompatibity → startplaincompatibility stopplaincompatibity → stopplaincompatibility
ok, best check the next beta well (i might have missed some)
3) This one is truly optional and just a suggestion for a better interface. Although it's nice to have the grouping in start-stopplaincompatibility, it's not required here, since the entire MetaPost instance runs in plain compatibility mode. It would be nice to either have a non-grouped command:
def plaincompatibility = scantokens plain_compatibity_data ; enddef ;
due to the way grouping works in mp it doesn't hurt to have it and by using it we can avoid a push/pop stack after all in the end we want to go back to the metafun labels
Or maybe even a higher-level switch:
\defineMPinstance [fun-with-old-MP] [metafun] [compatibility=plain] %% default* | plain
As I wouldn't be surprised if there were more differences we need to handle.
maybe later
We will find out if things break.
indeed Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------