ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* conTeXt Mkiv: the number of parameters can not be more than 9?
@ 2015-07-05  1:55 土卜皿
  2015-07-05  3:40 ` Zhichu Chen
  2015-07-05  4:36 ` Jaroslav Hajtmar
  0 siblings, 2 replies; 4+ messages in thread
From: 土卜皿 @ 2015-07-05  1:55 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 507 bytes --]

hi, all

For testing, I have a definition:

\define[9]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9}

context test can work fine, when I modify the above into:

\define[10]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9,#10}

I got a error:

test.tex: ! Illegal parameter number in definition of \DEFINETEST

From StackExchange, I got a answer:

Since ConTeXt is based on TeX, the maximum number of 9 parameters is
inherited

So, in Context mkiv, what should I do for more than 9 parameters?

Thanks!

Best Regards

Dillon

[-- Attachment #1.2: Type: text/html, Size: 6977 bytes --]

[-- Attachment #2: Type: text/plain, Size: 485 bytes --]

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: conTeXt Mkiv: the number of parameters can not be more than 9?
  2015-07-05  1:55 conTeXt Mkiv: the number of parameters can not be more than 9? 土卜皿
@ 2015-07-05  3:40 ` Zhichu Chen
  2015-07-05  4:06   ` 土卜皿
  2015-07-05  4:36 ` Jaroslav Hajtmar
  1 sibling, 1 reply; 4+ messages in thread
From: Zhichu Chen @ 2015-07-05  3:40 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 2099 bytes --]

Hi Dillon,

First of all, I'm against defining such a complex macro, since that can 
be very
confusing when you use it. I personal prefer the key-value definition:
\def\DEFINETEST[#1]{%
   \getXXXparameters
     [paraA=defaultValueForParameterA%
     ,paraB=% or just empty
     ,#1]%
   \doSomethingWith[\XXXparameter\paraA]%
   \doSomethingElse...
}
You might want to refer to the following link and other valuable 
materials on the
wiki for more information:
http://wiki.contextgarden.net/System_Macros/Key_Value_Assignments

If you insist on that, I guess you can define a temporary macro inside 
your macro.
That's very dirty, but can be a little more efficient? I'm not sure.

I was given to understand that the ConTeXt MKVI now accepts parameters 
such as
#position#color rather than meaningless #1#2. I GUESS that's lua-based, 
so maybe
it'll break the TeX limitation.

On 07/05/2015 09:55 AM, 土卜皿 wrote:
>
> hi, all
>
> For testing, I have a definition:
>
> |\define[9]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9}|
>
> |context test| can work fine, when I modify the above into:
>
> |\define[10]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9,#10}|
>
> I got a error:
>
> |test.tex: ! Illegal parameter number in definition of\DEFINETEST|
>
> From StackExchange, I got a answer:
>
> Since ConTeXt is based on TeX, the maximum number of 9 parameters is 
> inherited
>
> So, in Context mkiv, what should I do for more than 9 parameters?
>
> Thanks!
>
> Best Regards
>
> Dillon
>
>
>
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________


-- 
Best regards,
ℤh𝕚chu ℂh𝕖n


[-- Attachment #1.2: Type: text/html, Size: 9968 bytes --]

[-- Attachment #2: Type: text/plain, Size: 485 bytes --]

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: conTeXt Mkiv: the number of parameters can not be more than 9?
  2015-07-05  3:40 ` Zhichu Chen
@ 2015-07-05  4:06   ` 土卜皿
  0 siblings, 0 replies; 4+ messages in thread
From: 土卜皿 @ 2015-07-05  4:06 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 2834 bytes --]

hi,ℤh𝕚chu ℂh𝕖n
Thanks! I will check it later!

Best Regards
Dillon



2015-07-05 11:40 GMT+08:00 Zhichu Chen <chenzhichu@sinap.ac.cn>:

>  Hi Dillon,
>
> First of all, I'm against defining such a complex macro, since that can be
> very
> confusing when you use it. I personal prefer the key-value definition:
> \def\DEFINETEST[#1]{%
>   \getXXXparameters
>     [paraA=defaultValueForParameterA%
>     ,paraB=% or just empty
>     ,#1]%
>   \doSomethingWith[\XXXparameter\paraA]%
>   \doSomethingElse...
> }
> You might want to refer to the following link and other valuable materials
> on the
> wiki for more information:
> http://wiki.contextgarden.net/System_Macros/Key_Value_Assignments
>
> If you insist on that, I guess you can define a temporary macro inside
> your macro.
> That's very dirty, but can be a little more efficient? I'm not sure.
>
> I was given to understand that the ConTeXt MKVI now accepts parameters
> such as
> #position#color rather than meaningless #1#2. I GUESS that's lua-based, so
> maybe
> it'll break the TeX limitation.
>
>
> On 07/05/2015 09:55 AM, 土卜皿 wrote:
>
>  hi, all
>
> For testing, I have a definition:
>
> \define[9]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9}
>
> context test can work fine, when I modify the above into:
>
> \define[10]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9,#10}
>
> I got a error:
>
> test.tex: ! Illegal parameter number in definition of \DEFINETEST
>
> From StackExchange, I got a answer:
>
> Since ConTeXt is based on TeX, the maximum number of 9 parameters is
> inherited
>
> So, in Context mkiv, what should I do for more than 9 parameters?
>
> Thanks!
>
> Best Regards
>
> Dillon
>
>
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________
>
>
>
> --
> Best regards,
> ℤh𝕚chu ℂh𝕖n
>
>
>
> ___________________________________________________________________________________
> 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
>
> ___________________________________________________________________________________
>

[-- Attachment #1.2: Type: text/html, Size: 8949 bytes --]

[-- Attachment #2: Type: text/plain, Size: 485 bytes --]

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: conTeXt Mkiv: the number of parameters can not be more than 9?
  2015-07-05  1:55 conTeXt Mkiv: the number of parameters can not be more than 9? 土卜皿
  2015-07-05  3:40 ` Zhichu Chen
@ 2015-07-05  4:36 ` Jaroslav Hajtmar
  1 sibling, 0 replies; 4+ messages in thread
From: Jaroslav Hajtmar @ 2015-07-05  4:36 UTC (permalink / raw)
  To: ntg-context

Hi Dillon
There is also a purely plaintex solutions for example:


% Here is Peter Olsak solution (see TBN: 
ftp://math.feld.cvut.cz/olsak/tbn/tbn.pdf - czech only)

\def\terminator{*}
\def\usethereadvalues{}
\newcount\tempnum

\def\readparameters{\tempnum=0\let\next=\readonlyone \next}
\def\readonlyone #1, {\advance\tempnum by 1 \def\param{#1}%
%        \the\tempnum - \param\par%
     \ifx\param\terminator \let\next=\usethereadvalues
     \else\expandafter\def \csname param\the\tempnum\endcsname{#1}%
     \fi\next}

\def\var#1{\csname #1\endcsname}


\starttext

% Read any number of parameters, terminator is * now
\readparameters 471-44/2007, 474-44/2007, 464-44/2007, 465-44/2007, 
461-44/2007, 472-44/2007, 473-44/2007, 475-44/2007, 469-44/2007, 
455-44/2007, AA, BBB, 124,  *, %

Parameters are now in macros \type{\var{param1}}, \type{\var{param2}}, 
\type{\var{param3}},  \dots :

\blank[big]

\dorecurse{16}{parameter \recurselevel is : \var{param\recurselevel}\crlf}


\blank[big]

% OR

% put parameters into macro:
\def\parameters{A, B, XXL, QWE, 123, Hello, End, TeX, Solution, XSE, 
Flag, Prague, Paris, New York, last value, *, }
% and now read parameters:
\expandafter\readparameters\parameters


\dorecurse{16}{parameter \recurselevel is : \var{param\recurselevel}\crlf}




\stoptext


Jaroslav Hajtmar

Dne 5. 7. 2015 v 3:55 土卜皿 napsal(a):
>
> hi, all
>
> For testing, I have a definition:
>
> |\define[9]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9}|
>
> |context test| can work fine, when I modify the above into:
>
> |\define[10]\DEFINETEST{#1,#2,#3,#4,#5,#6,#7,#8,#9,#10}|
>
> I got a error:
>
> |test.tex: ! Illegal parameter number in definition of\DEFINETEST|
>
> From StackExchange, I got a answer:
>
> Since ConTeXt is based on TeX, the maximum number of 9 parameters is 
> inherited
>
> So, in Context mkiv, what should I do for more than 9 parameters?
>
> Thanks!
>
> Best Regards
>
> Dillon
>
>
>
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-07-05  4:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-05  1:55 conTeXt Mkiv: the number of parameters can not be more than 9? 土卜皿
2015-07-05  3:40 ` Zhichu Chen
2015-07-05  4:06   ` 土卜皿
2015-07-05  4:36 ` Jaroslav Hajtmar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).