Re: [NTG-context] vardef with @# not working within context

2009-09-22 Thread Matthijs Kooijman
Hi Hans,

 it's more that tex likes to duplicate the # internally
Ah, yes, I've seen some mentions on @## in error messages, but I thought that
was just part of the way metapost handled @#. Apparently not :-)

 how about adding

 let @## = @# ;

 to mp-tool.mp (you need to remake the context format in mkiv or the  
 metafun format in mkii)
This worked for me in MkIV. Will this be included in the next beta?

Gr.

Matthijs


signature.asc
Description: Digital signature
___
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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-22 Thread Hans Hagen

Matthijs Kooijman wrote:

Hi Hans,


it's more that tex likes to duplicate the # internally

Ah, yes, I've seen some mentions on @## in error messages, but I thought that
was just part of the way metapost handled @#. Apparently not :-)


how about adding

let @## = @# ;

to mp-tool.mp (you need to remake the context format in mkiv or the  
metafun format in mkii)

This worked for me in MkIV. Will this be included in the next beta?


sure

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | fax: 038 477 53 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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


[NTG-context] vardef with @# not working within context

2009-09-21 Thread Matthijs Kooijman
Hi all,

I've been fiddling around with metaobj a bit, but defining my own objects
failed. After some debugging, I've reduced this to a metapost / context MkIV
issue (so no metaobj specifics anymore).

What happens, is that vardefs that use @# as a placeholder in their name only
work when they are defined in an external .mp file. When I define them inside
context (\startMPcode or \startMPinclusions), I get funny errors (mostly
Isolated expression, which seems to mean that the macro is not defined).

I suspect this is because the way context extracts metapost code. Is this a
fundamental problem, or could it be fixed?

The following context file will easily reproduce the problem:

\starttext
\startMPcode
vardef foo = draw (0mm,0mm)--(10mm,10mm); enddef;
foo;

vardef x...@# = (@#,@#) enddef ;
draw xy0mm -- xy10mm; 
\stopMPcode
\stoptext

Running this file gives the following (first) error:
  mplib | mp terminal:  xy0mm
  ! Improper `addto'.

To illustrate that this is specific to the use of @#, I've included the foo
vardef which does work properly. When I move the vardef xy.. line to a
separate file, say foo.mp, and replace it with input foo;, the errors
disappear.

Gr.

Matthijs


signature.asc
Description: Digital signature
___
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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-21 Thread Aditya Mahajan

On Mon, 21 Sep 2009, Matthijs Kooijman wrote:


Hi all,

I've been fiddling around with metaobj a bit, but defining my own objects
failed. After some debugging, I've reduced this to a metapost / context MkIV
issue (so no metaobj specifics anymore).

What happens, is that vardefs that use @# as a placeholder in their name only
work when they are defined in an external .mp file. When I define them inside
context (\startMPcode or \startMPinclusions), I get funny errors (mostly
Isolated expression, which seems to mean that the macro is not defined).

I suspect this is because the way context extracts metapost code. Is this a
fundamental problem, or could it be fixed?


You need to escape # inside any \startMPwhatever...\stopMPwhatever. This 
has to do with the fact that TeX processes the contents before they 
are passed to metapost, and TeX does not like isolated #. Try replacing

# with \# or \string#

Hans, does it make sense to parse all MP environments (ironically except 
\startMPenvironment, but that is almost redundant in MKIV) with a separate 
catcode regime where # has catcode other. After all, it is highly unlikely 
that anyone will define a TeX maco inside \startMPcode or 
\startMPinclusions.


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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-21 Thread Hans Hagen

Aditya Mahajan wrote:

On Mon, 21 Sep 2009, Matthijs Kooijman wrote:


Hi all,

I've been fiddling around with metaobj a bit, but defining my own objects
failed. After some debugging, I've reduced this to a metapost / 
context MkIV

issue (so no metaobj specifics anymore).

What happens, is that vardefs that use @# as a placeholder in their 
name only
work when they are defined in an external .mp file. When I define them 
inside

context (\startMPcode or \startMPinclusions), I get funny errors (mostly
Isolated expression, which seems to mean that the macro is not 
defined).


I suspect this is because the way context extracts metapost code. Is 
this a

fundamental problem, or could it be fixed?


You need to escape # inside any \startMPwhatever...\stopMPwhatever. This 
has to do with the fact that TeX processes the contents before they are 
passed to metapost, and TeX does not like isolated #. Try replacing

# with \# or \string#


it's more that tex likes to duplicate the # internally

Hans, does it make sense to parse all MP environments (ironically except 
\startMPenvironment, but that is almost redundant in MKIV) with a 
separate catcode regime where # has catcode other. After all, it is 
highly unlikely that anyone will define a TeX maco inside \startMPcode 
or \startMPinclusions.


how about adding

let @## = @# ;

to mp-tool.mp (you need to remake the context format in mkiv or the 
metafun format in mkii)


seems to work

Hans

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | fax: 038 477 53 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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-21 Thread Aditya Mahajan

On Mon, 21 Sep 2009, Hans Hagen wrote:


how about adding

let @## = @# ;

to mp-tool.mp (you need to remake the context format in mkiv or the metafun 
format in mkii)


seems to work


Works in mkiv, but in mkii I get an error with

\starttext
\startMPcode
   vardef foo = draw (0mm,0mm)--(10mm,10mm); enddef;
   foo;

   vardef x...@# = (@#,@#) enddef ;
   draw xy0mm -- xy10mm;
\stopMPcode
\stoptext

! Illegal parameter number in definition of \...@mpg@@@.
to be read again

vardef x...@## .m,10mm); enddef;
draw ...  = (@##,@##) enddef ;

\dodostartuseMPgraphic ...useMPgraphic {#1}{#2}{#3
  }}\elabelgroup
\dostartMPcode ...graphic {@@}#1\stopuseMPgraphic
  \useMPgraphic 
{@@}\endgroup

l.9 \stopMPcode

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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-21 Thread Hans Hagen

Aditya Mahajan wrote:

On Mon, 21 Sep 2009, Hans Hagen wrote:


how about adding

let @## = @# ;

to mp-tool.mp (you need to remake the context format in mkiv or the 
metafun format in mkii)


seems to work


Works in mkiv, but in mkii I get an error with

\starttext
\startMPcode
   vardef foo = draw (0mm,0mm)--(10mm,10mm); enddef;
   foo;

   vardef x...@# = (@#,@#) enddef ;
   draw xy0mm -- xy10mm;
\stopMPcode
\stoptext

! Illegal parameter number in definition of \...@mpg@@@.
to be read again


hm, weird. did you remake the metafun format?

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | fax: 038 477 53 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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-21 Thread Aditya Mahajan

On Mon, 21 Sep 2009, Hans Hagen wrote:


Aditya Mahajan wrote:

On Mon, 21 Sep 2009, Hans Hagen wrote:


how about adding

let @## = @# ;

to mp-tool.mp (you need to remake the context format in mkiv or the 
metafun format in mkii)


seems to work


Works in mkiv, but in mkii I get an error with

\starttext
\startMPcode
   vardef foo = draw (0mm,0mm)--(10mm,10mm); enddef;
   foo;

   vardef x...@# = (@#,@#) enddef ;
   draw xy0mm -- xy10mm;
\stopMPcode
\stoptext

! Illegal parameter number in definition of \...@mpg@@@.
to be read again


hm, weird. did you remake the metafun format?


I did. Just to verify, I created an mp file

beginfig(1) ;
vardef x...@## = (@##,@##) enddef ;
draw xy0mm -- xy10mm;
endfig;
end;

and ran  mpost -progname=metafun test.mp   which gives me the correct 
output, so @## is defined. I am using 2009.09.18. I'll try later with the 
latest beta.


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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-21 Thread Hans Hagen

Aditya Mahajan wrote:

On Mon, 21 Sep 2009, Hans Hagen wrote:


Aditya Mahajan wrote:

On Mon, 21 Sep 2009, Hans Hagen wrote:


how about adding

let @## = @# ;

to mp-tool.mp (you need to remake the context format in mkiv or the 
metafun format in mkii)


seems to work


Works in mkiv, but in mkii I get an error with

\starttext
\startMPcode
   vardef foo = draw (0mm,0mm)--(10mm,10mm); enddef;
   foo;

   vardef x...@# = (@#,@#) enddef ;
   draw xy0mm -- xy10mm;
\stopMPcode
\stoptext

! Illegal parameter number in definition of \...@mpg@@@.
to be read again


hm, weird. did you remake the metafun format?


I did. Just to verify, I created an mp file

beginfig(1) ;
vardef x...@## = (@##,@##) enddef ;
draw xy0mm -- xy10mm;
endfig;
end;

and ran  mpost -progname=metafun test.mp   which gives me the correct 
output, so @## is defined. I am using 2009.09.18. I'll try later with 
the latest beta.


in supp-mps.mkii, patch:

\long\def\runtimeobeyMPlines
  {\catcode35=11\relax % goodie
   \ifx\rawcharacter\undefined

better than nothing


-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | fax: 038 477 53 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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] vardef with @# not working within context

2009-09-21 Thread Aditya Mahajan

On Mon, 21 Sep 2009, Hans Hagen wrote:


Aditya Mahajan wrote:

On Mon, 21 Sep 2009, Hans Hagen wrote:


Aditya Mahajan wrote:

On Mon, 21 Sep 2009, Hans Hagen wrote:


how about adding

let @## = @# ;

to mp-tool.mp (you need to remake the context format in mkiv or the 
metafun format in mkii)


seems to work


Works in mkiv, but in mkii I get an error with

\starttext
\startMPcode
   vardef foo = draw (0mm,0mm)--(10mm,10mm); enddef;
   foo;

   vardef x...@# = (@#,@#) enddef ;
   draw xy0mm -- xy10mm;
\stopMPcode
\stoptext

! Illegal parameter number in definition of \...@mpg@@@.
to be read again


hm, weird. did you remake the metafun format?


I did. Just to verify, I created an mp file

beginfig(1) ;
vardef x...@## = (@##,@##) enddef ;
draw xy0mm -- xy10mm;
endfig;
end;

and ran  mpost -progname=metafun test.mp   which gives me the correct 
output, so @## is defined. I am using 2009.09.18. I'll try later with the 
latest beta.


in supp-mps.mkii, patch:

\long\def\runtimeobeyMPlines
 {\catcode35=11\relax % goodie
  \ifx\rawcharacter\undefined

better than nothing


This works.

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  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___