[NTG-context] Clickable question/answer numbers

Hans Hagen pragma at wxs.nl
Thu Nov 3 10:34:15 CET 2016


On 11/2/2016 9:58 PM, Mikael P. Sundqvist wrote:
> Dear Otared,
>
> thank you again. This is somehow a proof that it should work. In my
> real document I use the title to name some exercises (after old
> exams), and I don't see how that can be combined with your solution.
>
> If someone else reads this: I think the question boils down to the following:
>
> \startquestion[Q:test]
> How can I here automatically get access to to the string "Q:test"?
> \stopquestion

it depends what automatically means

\enumerationparameter{reference}

or

\namedenumerationparameter{question}{reference}

> Best regards, Mikael
>
> On Wed, Nov 2, 2016 at 9:04 PM, Otared Kavian <otared at gmail.com> wrote:
>> Hi Mikael,
>>
>> A partial solution to the feature we are discussing is contained in the example below, but somone more aware of ConTeXtish coding might improve it.
>> It is not satisfactory in that one has to define twice \startquestion and \StartQuestion, \beginanswer and \BeginAnswer, and more importantly one cannot generate automatically the references (I tried \getnumber[question] and such to append to Q:\getnumber[question] for instance, but something does not work…).
>>
>> Le me know if you find a satisfactory solution…
>>
>> Best regards: OK
>> %%% begin interactive-question-answer.tex
>> \setupinteraction[state=start,color=,contrastcolor=,style=]
>>
>> \defineblock[answer]
>> \hideblocks[answer]
>>
>> \def\myanswer[#1]{\inleft{\in[#1]\reference[A:#1]{\in[#1]}}}
>>
>> \define[1]\AnswerToQuestion{Question \goto{(see Solution)}[A:Q:#1]}
>>
>> \define[1]\StartQuestion{\startquestion[reference=Q:#1,title={\AnswerToQuestion{#1}}]}
>>
>> \define[1]\BeginAnswer{\beginanswer\myanswer[Q:#1]}
>>
>> \defineenumeration[question][
>>         text=, %Question,
>>         headcolor=darkred,
>>         title=yes,
>>         titleleft=,
>>         titleright={.},
>>         width=fit,
>>         number=yes,
>>         prefix=yes,
>>         prefixsegments=section,
>>         ]
>>
>> \starttext
>>
>> \section{A section with questions}
>>
>> \StartQuestion{test}
>>
>> Prove that $(a +b)^2 = a^2 + 2ab + b^2$ for all $a,b\in{\Bbb R}$.
>>
>> \BeginAnswer{test}
>>
>> Indeed $(a+b)^2 = (a+b)(a+b) = a^2 + ab + ba +b^2 = a^2 + 2ab +b^2$ since $ba=ba$.
>> \endanswer
>>
>> \stopquestion
>>
>> \page[yes]
>>
>> \startsection[title={Answers to all questions}]
>>
>> \useblocks[answer]
>>
>> \stopsection
>> \stoptext
>> %%% end interactive-question-answer.tex
>>
>>> On 2 Nov 2016, at 16:16, Mikael P. Sundqvist <mickep at gmail.com> wrote:
>>>
>>> Dear Otared (and list),
>>>
>>> thank you for your reply and support.
>>>
>>> The links from the answers to the questions work as wanted with my
>>> solution, it is the links from the questions to the answers that do
>>> not.
>>>
>>> I guess I need something like
>>>
>>> headcommand={\in{Question}[A:###]},
>>>
>>> where ### is the reference tag I set. But I don't know what to change
>>> the ### into (or if that would work).
>>>
>>> Best regards, Mikael
>>>
>>> On Wed, Nov 2, 2016 at 1:52 PM, Otared Kavian <otared at gmail.com> wrote:
>>>> Hi Mikael,
>>>>
>>>> I had a similar question some time ago, but I wanted to add a sort of automatic referencing of questions and answers (and interaction going from questions to answers and back).
>>>>
>>>> If you accept the hurdle of adding manual references, in your case you can add (for instance…)
>>>>
>>>>        \goto{:-)}[Q:test]
>>>>
>>>> to the end of your answer to go back to the respective question. But when you have several dozens of such references to add manually, it is not a good idea.
>>>>
>>>> However I could not find a way to code the items (that is the questions) in such a way that each adds automatically a unique reference, and so I am interested too in the solution of the problem you mention.
>>>>
>>>> Best regards: OK
>>>>
>>>>
>>>>> On 2 Nov 2016, at 12:43, Mikael P. Sundqvist <mickep at gmail.com> wrote:
>>>>>
>>>>> Dear list,
>>>>>
>>>>> I have a pretty large text with a lot of questions and answers, and
>>>>> want the user(students) to be able to click in the pdf to go from a
>>>>> certain exercise to its answer, and back. I have a solution (see
>>>>> below) to go from answers to questions, but not the other way around.
>>>>> I simply have no idea on how to make the red text (in the head) in the
>>>>> example question clickable with the answer on the next page as target.
>>>>> As you can see, the answer has a tag A:Q:test (I want to set these
>>>>> automatically in that manner), and clicking the green text I get to
>>>>> the correct place. I just don't see how to make the "Question 1.1"
>>>>> clickable with that target.
>>>>>
>>>>> I hope I make myself clear. If it matters, in the solution one could
>>>>> assume that the optional tag of the \startquestion \stopquestion is
>>>>> given for all questions.
>>>>>
>>>>> Best regards, Mikael
>>>>>
>>>>> %% qa.tex
>>>>> \setupinteraction[state=start,color=,contrastcolor=,style=]
>>>>>
>>>>> \defineblock[answer]
>>>>> \hideblocks[answer]
>>>>>
>>>>> \def\myanswer[#1]{\inleft{\in[#1]\reference[A:#1]{\in[#1]}}}
>>>>>
>>>>> \defineenumeration[question][
>>>>> text=Question,
>>>>> headcolor=darkred,
>>>>> width=fit,
>>>>> number=yes,
>>>>> prefix=yes,
>>>>> prefixsegments=section,
>>>>> ]
>>>>>
>>>>> \starttext
>>>>>
>>>>> \section{A section with questions}
>>>>>
>>>>> \startquestion[Q:test]
>>>>> Solve this question!
>>>>> \stopquestion
>>>>>
>>>>> We could, however, click \color[darkyellow]{\in{Answer}[A:Q:test]}.
>>>>>
>>>>> \beginanswer
>>>>> \myanswer[Q:test]
>>>>> What question? The answer is \quotation{do it yourself}!
>>>>> \endanswer
>>>>>
>>>>> \page[yes]
>>>>>
>>>>> \subject{Answers}
>>>>>
>>>>> \useblocks[answer]
>>>>>
>>>>> \stoptext
>>>>> <qa.pdf>___________________________________________________________________________________
>>>>> If your question is of interest to others as well, please add an entry to the Wiki!
>>>>>
>>>>> maillist : ntg-context at 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
>>>>> ___________________________________________________________________________________
>>>>
>>>> ___________________________________________________________________________________
>>>> If your question is of interest to others as well, please add an entry to the Wiki!
>>>>
>>>> maillist : ntg-context at 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
>>>> ___________________________________________________________________________________
>>> ___________________________________________________________________________________
>>> If your question is of interest to others as well, please add an entry to the Wiki!
>>>
>>> maillist : ntg-context at 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
>>> ___________________________________________________________________________________
>>
>> ___________________________________________________________________________________
>> If your question is of interest to others as well, please add an entry to the Wiki!
>>
>> maillist : ntg-context at 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
>> ___________________________________________________________________________________
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context at 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
> ___________________________________________________________________________________
>


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list