On 3/24/2016 6:24 PM, Piotr Kopszak wrote:
P.S.

For your conveniance, the minimal example:

\startMPpositiongraphic{mypos:arrow}
    pair c[] ;
    initialize_box(\MPpos{\MPvar{self}});
    c[1] := cxy ;
    initialize_box(\MPpos{\MPvar{to}});
    c[2] := cxy ;
    drawarrow c[1] -- c[2] withpen pencircle scaled 2bp ;
\stopMPpositiongraphic
\startpositionoverlay{arrow}
\setMPpositiongraphic{X-1}{mypos:arrow}{to=X-2}
\setMPpositiongraphic{X-2}{mypos:arrow}{to=X-3}
\stoppositionoverlay
\defineoverlay[arrow][\positionoverlay{arrow}]
\setupbackgrounds[page][background=arrow]


\starttext

\section {Anchors and layers}

In a previous section we saw that some \hpos{X-1}{words} were
\hpos{X-2}{circled} and connected by an \hpos{X-3}{arrow}.
As with most things in \CONTEXT, marking these words is separated
from declaring what to do with those words. This paragraph is keyed
in as:

\stoptext

The interface changed a bit

\setupMPvariables
  [mpos:encircle]
  [fillcolor=lightgray,
   filloffset=0pt,
   linecolor=blue,
   lineoffset=5pt,
   linewidth=1pt]

\startMPpositiongraphic{mpos:encircle}{linecolor,fillcolor,linewidth,lineoffset}
    if unknown context_apos : input mp-apos.mpiv ; fi ;
    \MPgetposboxes{\MPvar{self}}{\MPanchorid}
    if nofposboxes = 1 :
posboxes[1] := posboxes[1] enlarged \MPvar{lineoffset} cornered \MPvar{lineoffset} ;
        fill posboxes[1] withcolor \MPvar{fillcolor} ;
draw posboxes[1] withpen pencircle scaled \MPvar{linewidth} withcolor \MPvar{linecolor} ;
    fi ;
\stopMPpositiongraphic

\setupMPvariables
  [mpos:connect]
  [linecolor=red,
   lineoffset=.25ex,
   linewidth=1pt]

\startMPpositiongraphic{mpos:connect}{linecolor,lineoffset,linewidth}
    if unknown context_apos : input mp-apos.mpiv ; fi ;
    boxlinewidth  := \MPvar{linewidth} ;
    boxlineoffset := \MPvar{lineoffset} ;
    def boxlineoptions = withcolor \MPvar{linecolor} enddef ;
    \MPgetposboxes{\MPvar{from},\MPvar{to}}{\MPanchorid}
    connect_positions ;
\stopMPpositiongraphic

\starttext

    \startpositionoverlay{text-1}

\setMPpositiongraphic{connect-1-b}{mpos:connect}{from=connect-1-b,to=connect-1-e}

\setMPpositiongraphic{connect-1-e}{mpos:connect}{from=connect-1-b,to=connect-1-e}
    \stoppositionoverlay

    \startpositionoverlay{text-1}
        \setMPpositiongraphic{encircle-1}{mpos:encircle}{self=encircle-1}
    \stoppositionoverlay

    test \hpos{connect-1-b}{START}
        \dorecurse{10}{\input ward}
    \hpos{encircle-1}{\strut HERE}
        \dorecurse{10}{\input ward}
    \hpos{connect-1-e}{STOP} test

\stoptext





2016-03-24 18:23 GMT+01:00 Piotr Kopszak <kops...@gmail.com>:
Hello list,

The solution shown here no longer works with recent beta (indeed, it
probably ceased to work some time ago). How should it be corrected?

Best

Piotr

2010-10-24 0:14 GMT+02:00 Aditya Mahajan <adit...@umich.edu>:
On Sat, 23 Oct 2010, Herbert Voss wrote:

It is a hard job to understand how all works ...


I agree. That chapter is confusing if you do not know already how the
mechanism
works.

I tried to create the first example of the
documentation "Page 257 Anchors and layers",
but failed with mkii and iv. The page is created,
but without the graphical elements. Not using
\startbuffer--\stopbuffer makes no difference.


You are simply setting the positions. You also need to tell ConTeXt to do
something with the positions.

1. First define a position graphic that does something with the anchors that
it is passed.

\startMPpositiongraphic{mypos:arrow}
   pair c[] ;
   initialize_box(\MPpos{\MPvar{self}});
   c[1] := cxy ;
   initialize_box(\MPpos{\MPvar{to}});
   c[2] := cxy ;
   drawarrow c[1] -- c[2] withpen pencircle scaled 2bp ;
\stopMPpositiongraphic

cxy is the center of the box. See the defn of initialize_box in mp-core.mp
for other values. I wish these were better documented.

2. Then define a position overlay that specifies the relation between the
anchors.

\startpositionoverlay{arrow}
\setMPpositiongraphic{X-1}{mypos:arrow}{to=X-2}
\setMPpositiongraphic{X-2}{mypos:arrow}{to=X-3}
\stoppositionoverlay


3. Define an overlay that is mapped to MP position overlay.

\defineoverlay[arrow][\positionoverlay{arrow}]

4. Hook the overlay as a page background

\setupbackgrounds[page][background=arrow]

5. Then everything will work.

\starttext

\section {Anchors and layers}

In a previous section we saw that some \hpos{X-1} {words} were
\hpos{X-2}{circled} and connected by an \hpos{X-3} {arrow}.
As with most things in \CONTEXT, marking these words is separated
from declaring what to do with those words. This paragraph is keyed
in as:

\stoptext

Aditya
___________________________________________________________________________________
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
___________________________________________________________________________________



--
http://okle.pl





--

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | 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