Re: [NTG-context] vardef with @# not working within context
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
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
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
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
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
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
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
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
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
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 ___