After putting the definition you proposed last in front of my minimal example in mkiv beta 2015.02.03 it worked once and then not any more. I also tried to remove all auxiliary files after a new pass.

But today I installed beta 2015.03.10 (complete fresh install as I keep the older version in a renamed folder) and now the MWE with your extra code renders repeatedly correct.

So this seems to be a workaround until you rewrite “write” as you said.

I will experiment further with tikz’ ‘remember’ picture mode.


Greetings Jörg

%%%%%%%%%%%%%%%% START MWE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%D %%%%%%% Hans’ redefinition of write function: %%%%%%%%%%%

\def\syst_write#1#2%
  {\ctxcommand{write(\number#1,\!!bs\normalunexpanded{#2}\!!es)}}

\unexpanded\def\writeviatex#1#2%
  {\ifx\normalwrite\relax\else
     \normalwrite#1{#2}%
   \fi}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usemodule[tikz]

\usetikzlibrary[shapes.misc,arrows]

\starttext

\tikz[baseline,remember picture] \node[rounded rectangle,draw,anchor=text] (n1) {this};
belongs to
\tikz[baseline,remember picture] \node[rounded rectangle,draw,anchor=text] (n2) {that};

\starttikzpicture
    [remember picture,overlay]
        \draw[->] (n1.north) to [bend left] (n2.north);
\stoptikzpicture

\stoptext

%%%%%%%%%%%%%%%% STOP MWE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



On 08.03.2015 23:17, Hans Hagen wrote:
On 3/8/2015 7:07 PM, Wolfgang Schuster wrote:

Am 08.03.2015 um 18:39 schrieb Hans Hagen <pra...@wxs.nl>:

On 3/8/2015 1:04 PM, Wolfgang Schuster wrote:

Am 08.03.2015 um 12:55 schrieb Hans Hagen <pra...@wxs.nl
<mailto:pra...@wxs.nl>>:

On 3/8/2015 12:26 PM, Wolfgang Schuster wrote:

Am 08.03.2015 um 11:11 schrieb Hans Hagen <pra...@wxs.nl
<mailto:pra...@wxs.nl>
<mailto:pra...@wxs.nl>>:

this should help:

\unexpanded\def\writeviatex#1#2%
{\ifx\normalwrite\relax\else
  % the \detokenize makes sure we don't expand \noexpanded macros
   \normalwrite#1{\detokenize{#2}}%
\fi}

(in future version i might replace write completely)

Only partially because the saved positions from \pdfsavepos are
wrong.

in what sense wrong?

Content of the external file from MkIV (the entries on the first
page show 0
and the values on page 2 and 3 are always the same):

1:0:0
2:0:0
3:4661756:45255023
4:4661756:45255023
5:4661756:45255023
6:4661756:45255023

Content of the external file from MkII (different values for the first
and second position on each page):

1:6526435:46204089
2:4661756:45256000
3:6526435:46204089
4:4661756:45256000
5:6526435:46204089
6:4661756:45256000

ypositions can differ a bit because we use different fonts and so
does the interlinespace

But the values for both positions should be different which isn’t the
case for MkIV
and the first page saves 0 for the x and y positions.

It's a side effect of expansion at the wrong time (where such primitives
can return wrong values but at least they return something) but
something like this works:

\def\syst_write#1#2%
   {\ctxcommand{write(\number#1,\!!bs\normalunexpanded{#2}\!!es)}}

\unexpanded\def\writeviatex#1#2%
   {\ifx\normalwrite\relax\else
      \normalwrite#1{#2}%
    \fi}




___________________________________________________________________________________
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