ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Otared Kavian <otared@gmail.com>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Clickable question/answer numbers (Otared Kavian)
Date: Mon, 7 Nov 2016 04:21:55 +0100	[thread overview]
Message-ID: <611CEB51-2A92-458D-B032-F0AA6A3F4C58@gmail.com> (raw)
In-Reply-To: <19DD2A4D-0F5B-46AF-A6E4-ABA985EB477F@me.com>


[-- Attachment #1.1: Type: text/plain, Size: 5370 bytes --]

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 <haksan@me.com> 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
> ___________________________________________________________________________________


[-- Attachment #1.2: Type: text/html, Size: 11685 bytes --]

[-- Attachment #2: Type: text/plain, Size: 492 bytes --]

___________________________________________________________________________________
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
___________________________________________________________________________________

  reply	other threads:[~2016-11-07  3:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.237.1478443598.2018.ntg-context@ntg.nl>
2016-11-06 22:43 ` Jeong Dal
2016-11-07  3:21   ` Otared Kavian [this message]
2016-11-07 16:55     ` Willi Egger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=611CEB51-2A92-458D-B032-F0AA6A3F4C58@gmail.com \
    --to=otared@gmail.com \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).