On Thu, Jul 31, 2008 at 1:18 AM, Demián Gutierrez <[EMAIL PROTECTED]> wrote: > Hi, > > I have to prepare a template to typeset a document that will have a > lot of tables of similar kinds repeated across the document. I want to > put that tables in some kind of templates, so I can use those > templates over and over. So the idea is to hide to the authors all the > format details behind the template allowing them to focus on the data > that has to be filled in those tables (which is the important thing). > > So, I would like to define some macros, that allows me to do something like: > > \starttableX > \startSomeField > Some Field Value... > \stopSomeField > > \startOtherField > Other Field Value... > \stopOtherField > \stoptableX > > And the result, should be a table like this: > > | Some Field Label: | Some Field Value... | > | Other Field Label: | Other Field Value... | > > That way I define a template for each table type I'll have in the document. > > I'm not having trouble with the tables, but with the macro definition, > this is my approximation of what I want (which does not work): > > \startsetups crudmain > \long\def\startguiname #1 \stopguiname{\setvariables[crudmain][guiname=#1]} > \long\def\startclassname #1 > \stopclassname{\setvariables[crudmain][classname=#1]} > > GUI Name: \getvariable{crudmain}{guiname} > Class Name: \getvariable{crudmain}{classname} > \stopsetups > > \definestartstop[crudmain][commands=\setups{crudmain}] > > \startcrudmain > \startguiname > Some name here... > \stopguiname > \startclassname > Other name here... > \stopclassname > \stopcrudmain > > At this point I'm getting this error: > > ! Use of \startguiname doesn't match its definition. > > I want the \long\def\startguiname inside the \startsetups / > \stopsetups to be sure that it will only be called inside the > \startcrudmain / \stopcrudmain (Cause other tables of different types > may have fields with the same name). But even considering the previous > point, if I move the \long\def\startguiname outside the \startsetups / > \stopsetups definition it does not works, because the > \getvariable{crudmain}{guiname} just returns blank. > > So is it possible to do what I want or something similar? What would > be a good way to do it? Any advice on the code I've already written? > This is really getting me crazy, cause context is not like any other > programming language I'm used to use ;-)
\def\startcrudmain {\bgroup \def\startguiname##1\stopguiname {\setvalue{crudmain:guiname}{##1}}% \def\startclassname##1\stopclassname {\setvalue{crudmain:classname}{##1}}} \def\stopcrudmain {\bTABLE[frame=off]% \bTR \bTD GUI Name: \eTD \bTD \getvalue{crudmain:guiname} \eTD \eTR \bTR \bTD Class Name: \eTD \bTD \getvalue{crudmain:classname} \eTD \eTR \eTABLE \egroup} \starttext \startcrudmain \startguiname Some name here... \stopguiname \startclassname Other name here... \stopclassname \stopcrudmain \stoptext Wolfgang ___________________________________________________________________________________ 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 ___________________________________________________________________________________