On 2014-10-02 15:22, Wolfgang Schuster wrote:
Am 02.10.2014 um 19:42 schrieb Rik Kabel <cont...@rik.users.panix.com
<mailto:cont...@rik.users.panix.com>>:
On 2014-10-02 05:18, Wolfgang Schuster wrote:
There is a example on the wiki. You have to set your own values with
the second argument of the \startchapter etc. command, to display
the entry in the roc you have to write your own layout where you
access it with the \structurelistuservariable command.
http://wiki.contextgarden.net/Generate_Authorlist_from_Head_Content
Wolfgang
This example fails for me using the current (2014-09-27) standalone
beta and with TL14. The failure is that the list of authors is
presented as a grid without contents.
Changing any of the lines in the example that construct the table
cells, such as
\bTD \structureuservariable{author} \eTD
to
\bTD xx \structureuservariable{author} \eTD
results in a table with the new text, but no user variable text,
showing that the \structureuservariable commands are not returning
any text in this example.
Has something relevant changed since the example was prepared
(2010-11 or earlier)?
(A pointer to useful descriptions of \structureuservariable and
\structurelistuservariable would also be welcome. In the wiki, the
startsection command description describes the former, but I have
come across no comprehensive description for either in the
documentation.)
First you have to make a distinction between the values which are set
with the first and second argument of \startchapter, \startsection
etc. While the first argument takes only certain keys, e.g. title,
bookmark etc. you’re free to choose your own keys for the second
argument because they are considered userdata. The point of this
userdata is to give users a way to specify information which are
printed in the table of content or in the header, to access these
values context provides two commands. When you create a new layout
for the table of contents you can use the \structurelistuservariable
command which takes the name of the key with the information as
argument and when you create a new header layout you can use the
\structureuservariable command.
\define[3]\ChapterListCommand
{\starttabulate
\NC Number \NC #1 \NC\NR
\NC Title \NC #2 \NC\NR
\NC Page \NC #3 \NC\NR
\TB[medium]
\NC File \NC \structurelistuservariable{file} \NC\NR
\stoptabulate}
\setuplist[chapter][alternative=command,command=\ChapterListCommand]
\define[2]\ChapterHeadCommand
{\startframed[align=flushleft,strut=no]
\starttabulate[before=,after=]
\NC Number \NC #1 \NC\NR
\NC Title \NC #2 \NC\NR
\TB[medium]
\NC File \NC \structureuservariable{file} \NC\NR
\stoptabulate
\stopframed}
\setuphead[chapter][command=\ChapterHeadCommand]
\starttext
\completecontent
\startchapter[title=Knuth example][file=knuth.tex]
\input knuth
\stopchapter
\startchapter[title=Zapf example][file=zapf.tex]
\input zapf
\stopchapter
\stoptext
Wolfgang
Thank you, Wolfgang, for that explanation.
Can you suggest what might be wrong with the example at
http://wiki.contextgarden.net/Generate_Authorlist_from_Head_Content?
The list of authors is created, so the user variable 'author' is set at
for \doifsomething. When the index for the author list is set to a
constant, only one row is generated, but when it is the user variable
'name' the right number of rows is created, so 'name' is also set when
it is referenced as the key in the author list sorting macro. Each line
of the table is empty, suggesting that within the scope of the table the
user variables are reset to nil. The same problem exists when
\starttabulate is used instead of \bTABLE.
--
Rik
___________________________________________________________________________________
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
___________________________________________________________________________________