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
___


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-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@@@.



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
___


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@@@.



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:


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@@@.



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:


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@@@.



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:


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@@@.


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, 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, 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
___


[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
___