Otared Kavian
22. Januar 2018 um 19:53
Hi all,

I have a list of speakers (and abstracts of their talk) in a rather long document, and the name of each speaker is written to a register named speakers.
Then with the command \getparameters[Talk] I get the name of each speaker and try to write it to the register with

\speakers{\TalkSpeakerName}

You have to add \expanded, i.e. \expanded{\speakers{...}}.

Indeed this does not work to obtain the result I am looking for: the sorting is indeed under the letter « t », and most importantly the register gets only the last name in the list instead of getting each speaker name.

The following is a (not so minimal…) example. Can anyone help me in this matter?

When you replace \getparameters with \setvariables you can set a command
which is applied each time when you set new values.


\defineregister[speakers]

\setupregister
  [speakers]
  [style=sansbold,
   n=2]

\startbuffer[pagetalk]
  \doflushatpar
    {\expanded{\speakers{\getvariable{talk}{speakername}}}%
     \expanded{\pagereference[talk:\getvariable{talk}{speakername}]}}%
  \starttabulate[|f{\bi}l|p|]
  \NC Speaker \EQ \getvariable{talk}{speakername} \NC\NR
  \NC Title   \EQ \getvariable{talk}{title}       \NC\NR
  \NC Time    \EQ \getvariable{talk}{time}        \NC\NR
  \NC Room    \EQ \getvariable{talk}{room}        \NC\NR
  \HL
  \stoptabulate
\stopbuffer

\setvariable{talk}{set}{\getbuffer[pagetalk]}

\showframe[text][text]

\starttext

\setvariables
  [talk]
  [speakername={Gauss},
   title={Remarks on Number Theory},
   time={10:30},
   room={A}]

The talk about Gauss was on \at{page}[talk:Gauss].

\completeregister[speakers]

\stoptext


Wolfgang