Otared Kavian <mailto:ota...@gmail.com>
5. November 2016 um 18:34
Hi Wolfgang, Hi Mikael,
Thank you both for your great inputs!
I tried to modify the code each of you sent yesterday in order to «
couple » automatically each question with its answer, using the
keyword « coupling=… », but somehow I am unable to create automatic
references by extracting the number of each question or that of each
answer, for example by using \rawcountervalue,
or \currentconstructionnumber. Strangely the latter gives the name of
the construction and not a number: is it on purpose?
The \currentconstructionnumber command contains the name of the counter
but getting the counter value won’t help because it comes too late.
The solution Wolfgang proposes today, using the new keyword
referenceprefix, is almost perfect: however would it possible to
create a version of
« currentconstructionreference » which creates a reference named for
instance
answer:NumberOfCurentConstruction
The referenceprefix key is only usefull when you set the reference by hand.
The reason for which I need such a construction is that in a document
with hundreds or more exercise —> hint —> solution, it would be handy
to avoid creating each time a manual reference, and then one would
navigate from a Question to its Hint and then back to the Question or
go to its Answer.
When you always all three elements (question, hint and answer) you can
increment
a counter at the begin of each element and create a page reference which
contains
the value of the counter.
Below is a modified version of my previous example for this method.
%%%% begin example
\setupinteraction[state=start]
\define[1]\QuestionTextCommand
{\doglobal\increment\QuestionCounter
\pagereference[question:\QuestionCounter]%
\doifreferencefoundelse{answer:\QuestionCounter}
{\goto{#1}[answer:\QuestionCounter]}
{#1}}
\define[1]\AnswerTextCommand
{\doglobal\increment\AnswerCounter
\pagereference[answer:\AnswerCounter]%
\doifreferencefoundelse{question:\AnswerCounter}
{\goto{#1}[question:\AnswerCounter]}
{#1}}
\defineenumeration
[question]
[text=Question,
headcommand=\QuestionTextCommand]
\defineenumeration
[answer]
[text=Answer,
headcommand=\AnswerTextCommand]
\defineblock[answer]
\startbuffer
%
\startquestion
\input knuth
\stopquestion
%
\beginanswer
\startanswer
\input knuth
\stopanswer
\endanswer
%
\stopbuffer
\starttext
\dorecurse{10}{\getbuffer}
\page
\useblocks[answer]
\stoptext
%%%% end example
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://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________