ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: "Demián Gutierrez" <dmi@minotauro.com.ve>
To: ntg-context@ntg.nl
Subject: Making a template, defining a macro
Date: Wed, 30 Jul 2008 18:18:56 -0500	[thread overview]
Message-ID: <20080730181856.utckzb62zo8s0c8o@webmail.opentransfer.com> (raw)

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 ;-)

Thanks in Advance
Demiá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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


             reply	other threads:[~2008-07-30 23:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-30 23:18 Demián Gutierrez [this message]
2008-07-31  6:37 ` Wolfgang Schuster
2008-07-31 13:59 Demián Gutierrez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080730181856.utckzb62zo8s0c8o@webmail.opentransfer.com \
    --to=dmi@minotauro.com.ve \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).