Re: [NTG-context] Clickable question/answer numbers (Otared Kavian)
Dear Otared, Hi, I run the given code and got an error message as following. tex error > tex error on line 1 in file virtual://block.answer.2: ! Undefined control sequence l.1 \myanswer [Q:test] <empty file> Would you please tell me how to avoid such an error? It seems to me that you don’t have an error. I am running minimal(beta) in OSX. Thank you. Best regards, Dalyoung
Dear Dalyoung, I guess you are typesetting the wrong file, or you have put the last code I sent into a file which contains something of the previous codes… Indeed in the last file I sent (which I am sending again at the end of this reply) does not contain the command \myanswer… which appears in your error message. Please test the code below and let me know if you encunter a problem. Best regards: OK %%%% begin interactive-question-answer.tex %%%% Here, following Wolfgang Schuster's ideas, %%%% we define some macros allowing to couple %%%% Questions and Answers in an automatic way %%%% Upon clicking on an interactive title for Question or Answer %%%% one goes to the corresponding Answer or Question \setupinteraction[state=start] % We define two counters which follow the numbers % appearing in Question and Answer \newcounter\QuestionCounter \newcounter\AnswerCounter % We create two commands to be used in the % enumeration environments % Note that the check for trial typestting % \doifnotmode{*trialtypesetting} % is necessary in order to avoid unwanted incrementation \define[1]\QuestionTextCommand {\doifnotmode{*trialtypesetting} {\doglobal\increment\QuestionCounter \pagereference[question:\QuestionCounter]}% \doifreferencefoundelse{answer:\QuestionCounter} {\goto{#1}[answer:\QuestionCounter]} {#1}} \define[1]\AnswerTextCommand {\doifnotmode{*trialtypesetting} {\doglobal\increment\AnswerCounter \pagereference[answer:\AnswerCounter]}% \doifreferencefoundelse{question:\AnswerCounter} {\goto{#1}[question:\AnswerCounter]} {#1}} % We define here two enumeration environments for % Questions and Answers \defineenumeration[question] [text=Question, headcommand=\QuestionTextCommand, number=yes, prefix=yes, prefixsegments=chapter, coupling=answer] \defineenumeration[answer] [text=Answer, headcommand=\AnswerTextCommand, number=yes, prefix=yes, prefixsegments=chapter, coupling=question] % Each question is followed immediately by its answer. % The answers are put in a block which will be used later \defineblock[answer] \hideblocks[answer] % We define a command used after a % Question for which no Answer is provided % Since the block commands % \beginanswer ... \endanswer % cannot be used directly in a macro definition % we use a trick... % In the buffer the two counters associated to Answer % are incremented... \startbuffer[noanswer] \beginanswer \doglobal\increment\AnswerCounter \incrementcounter[answer] \endanswer \stopbuffer % ...and then the above buffer is invoked \define\noanswer {\getbuffer[noanswer]} % example of use: \starttext \startchapter[title=Questions] \startquestion[q:1] Prove that ${\rm e}\sim 2.73$ is irrational. This is the first question, with its own reference, for later use. \stopquestion \beginanswer \startanswer This is the answer to the first question (to \in{Question}[q:1]). \stopanswer \endanswer \startquestion This is the second question, without its own reference. \stopquestion \beginanswer \startanswer[a:Test] This is the answer to the second question. (Note that this answer has a reference named \type{a:Test}). \stopanswer \endanswer \startquestion[q:Obvious] This is the third question, an easy one, without a given solution. \stopquestion % we increment here the counters for Answer \noanswer \startquestion[q:2] This is the fourth question with its own reference. \stopquestion \beginanswer \startanswer This is the answer to the fourth question: use the result of \in{Question}[q:1]. \stopanswer \endanswer \startquestion This is the fifth question, without its own reference. ({\it Hint:} look again at \in{Question}[q:Obvious]). \stopquestion \beginanswer \startanswer This is the answer to the fifth question. Read again \in{Answer}[a:Test]. \stopanswer \endanswer \stopchapter % Here we say ownnumber=1, in order to match the prefix % of numbers associated to Answer \startchapter[ownnumber=1,title=Answers and solutions] \useblocks[answer] \stopchapter \stoptext %%%% end interactive-question-answer.tex
On 6 Nov 2016, at 23:43, Jeong Dal
wrote: Dear Otared,
Hi, I run the given code and got an error message as following.
tex error > tex error on line 1 in file virtual://block.answer.2: virtual://block.answer.2 ! Undefined control sequence
l.1 \myanswer [Q:test]
<empty file>
Would you please tell me how to avoid such an error? It seems to me that you don’t have an error.
I am running minimal(beta) in OSX.
Thank you.
Best regards,
Dalyoung ___________________________________________________________________________________ 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 ___________________________________________________________________________________
Otared, thank you for this nice example! Willi
On 7 Nov 2016, at 04:21, Otared Kavian
wrote: Dear Dalyoung,
I guess you are typesetting the wrong file, or you have put the last code I sent into a file which contains something of the previous codes… Indeed in the last file I sent (which I am sending again at the end of this reply) does not contain the command \myanswer… which appears in your error message.
Please test the code below and let me know if you encunter a problem.
Best regards: OK %%%% begin interactive-question-answer.tex %%%% Here, following Wolfgang Schuster's ideas, %%%% we define some macros allowing to couple %%%% Questions and Answers in an automatic way %%%% Upon clicking on an interactive title for Question or Answer %%%% one goes to the corresponding Answer or Question
\setupinteraction[state=start]
% We define two counters which follow the numbers % appearing in Question and Answer
\newcounter\QuestionCounter \newcounter\AnswerCounter
% We create two commands to be used in the % enumeration environments % Note that the check for trial typestting % \doifnotmode{*trialtypesetting} % is necessary in order to avoid unwanted incrementation \define[1]\QuestionTextCommand {\doifnotmode{*trialtypesetting} {\doglobal\increment\QuestionCounter \pagereference[question:\QuestionCounter]}% \doifreferencefoundelse{answer:\QuestionCounter} {\goto{#1}[answer:\QuestionCounter]} {#1}}
\define[1]\AnswerTextCommand {\doifnotmode{*trialtypesetting} {\doglobal\increment\AnswerCounter \pagereference[answer:\AnswerCounter]}% \doifreferencefoundelse{question:\AnswerCounter} {\goto{#1}[question:\AnswerCounter]} {#1}}
% We define here two enumeration environments for % Questions and Answers \defineenumeration[question] [text=Question, headcommand=\QuestionTextCommand, number=yes, prefix=yes, prefixsegments=chapter, coupling=answer]
\defineenumeration[answer] [text=Answer, headcommand=\AnswerTextCommand, number=yes, prefix=yes, prefixsegments=chapter, coupling=question]
% Each question is followed immediately by its answer. % The answers are put in a block which will be used later \defineblock[answer] \hideblocks[answer]
% We define a command used after a % Question for which no Answer is provided % Since the block commands % \beginanswer ... \endanswer % cannot be used directly in a macro definition % we use a trick... % In the buffer the two counters associated to Answer % are incremented... \startbuffer[noanswer] \beginanswer \doglobal\increment\AnswerCounter \incrementcounter[answer] \endanswer \stopbuffer
% ...and then the above buffer is invoked \define\noanswer {\getbuffer[noanswer]}
% example of use: \starttext \startchapter[title=Questions]
\startquestion[q:1] Prove that ${\rm e}\sim 2.73$ is irrational.
This is the first question, with its own reference, for later use. \stopquestion
\beginanswer \startanswer This is the answer to the first question (to \in{Question}[q:1]). \stopanswer \endanswer
\startquestion This is the second question, without its own reference. \stopquestion
\beginanswer \startanswer[a:Test] This is the answer to the second question.
(Note that this answer has a reference named \type{a:Test}). \stopanswer \endanswer
\startquestion[q:Obvious] This is the third question, an easy one, without a given solution. \stopquestion
% we increment here the counters for Answer \noanswer
\startquestion[q:2] This is the fourth question with its own reference. \stopquestion
\beginanswer \startanswer This is the answer to the fourth question: use the result of \in{Question}[q:1]. \stopanswer \endanswer
\startquestion This is the fifth question, without its own reference.
({\it Hint:} look again at \in{Question}[q:Obvious]). \stopquestion
\beginanswer \startanswer This is the answer to the fifth question. Read again \in{Answer}[a:Test]. \stopanswer \endanswer
\stopchapter
% Here we say ownnumber=1, in order to match the prefix % of numbers associated to Answer \startchapter[ownnumber=1,title=Answers and solutions] \useblocks[answer] \stopchapter
\stoptext %%%% end interactive-question-answer.tex
On 6 Nov 2016, at 23:43, Jeong Dal
wrote: Dear Otared,
Hi, I run the given code and got an error message as following.
tex error > tex error on line 1 in file virtual://block.answer.2: ! Undefined control sequence
l.1 \myanswer [Q:test]
<empty file>
Would you please tell me how to avoid such an error? It seems to me that you don’t have an error.
I am running minimal(beta) in OSX.
Thank you.
Best regards,
Dalyoung ___________________________________________________________________________________ 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 ___________________________________________________________________________________
___________________________________________________________________________________ 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 ___________________________________________________________________________________
participants (3)
-
Jeong Dal
-
Otared Kavian
-
Willi Egger