On 8/23/2013 11:42 AM, Marco Patzer wrote:
Hi,

what is the reason the label direction prefix variables (rt, bot,
llft, etc.) are prefixed with mpfun_ in MkIV (mp-mlib.mpiv)? When
new directional prefixes are being defined it fails when mplib is
used unless the mpfun_ prefix is added. And likewise, code using the
mpfun_ prefix fails on traditional MetaPost.

So is anyone using mkiv still using MkII?

Is this prefix required? It breaks old code and required a branch in
every new project. And I don't really see a reason for this
incompatibility. Here is an example defining a new direction “foo”:

The MpIV code has namespace protection. Why run traditional in MkIV?

\starttext
   \startMPcode
     label("first", origin);

     %% MkIV
     %% pair mfun_laboff.foo ; mfun_laboff.foo := (.5,-1) ;
     %% mfun_labxf.foo := mfun_labyf.foo := 1 ;

     %% MkII
     pair laboff.foo ; laboff.foo := (.5,-1) ;
     labxf.foo := labyf.foo := 1 ;

     label.foo("second", origin);
   \stopMPcode
\stoptext

I wasn't aware of users defining extra ones. I'll add this:

\starttext
  \startMPcode
    label("first", origin);

    if known mfun_laboff :

        vardef installlabel@\# (expr type, x, y, offset) =
            numeric mfun_labtype @\# ; mfun_labtype @\# := type ;
            pair    mfun_laboff  @\# ; mfun_laboff  @\# := offset ;
            numeric mfun_labxf   @\# ; mfun_labxf   @\# := x ;
            numeric mfun_labyf   @\# ; mfun_labyf   @\# := y ;
        enddef ;

    else :

        vardef installlabel@\# (expr type, x, y, offset) =
            numeric labtype @\# ; labtype @\# := type ;
            pair    laboff  @\# ; laboff  @\# := offset ;
            numeric labxf   @\# ; labxf   @\# := x ;
            numeric labyf   @\# ; labyf   @\# := y ;
        enddef ;

    fi ;

    installlabel.foo ( 0, 1, 1, (.5,-1) ) ;

    label.foo("second", origin);
  \stopMPcode
\stoptext


-----------------------------------------------------------------
                                          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
-----------------------------------------------------------------
___________________________________________________________________________________
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to