ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Fabrice L via ntg-context <ntg-context@ntg.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Cc: Fabrice L <fabrice.alpha@gmail.com>
Subject: Re: Blocks inside a conditional mode.
Date: Sun, 28 Nov 2021 20:54:24 -0500	[thread overview]
Message-ID: <13B3FA56-541A-47C2-91EA-45E5FFB5648B@gmail.com> (raw)
In-Reply-To: <41b6060c-0f46-6b90-91c7-f9d6588e66d3@fiee.net>


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

Thanks Hraban for your answer, 

> Le 28 nov. 2021 à 15:42, Henning Hraban Ramm via ntg-context <ntg-context@ntg.nl> a écrit :
> 
> Am 28.11.21 um 19:39 schrieb Fabrice L via ntg-context:
>> I have an error when I try to insert a block inside a conditional mode (but there is two nested conditional mode.. is this the problem ?).
> 
> You can’t nest modes in \startmode ... \stopmode.
> I don’t know what are the limitations of \doifmode.

According to the wiki, we cannot nest several \startmode …\stopmode, but there is no limitation with \doifmode.

> 
> Maybe it helps to use additional grouping with {}, \bgroup .. \egroup or \start .. \stop.

Following your advice, I tried with several {}, but no luck. 
> 
>> In my courses notes, I insert some blocks (named «  Complement » in the minimal exemple below) when in « Professor » mode. This works fine, as shown in the first «  \beginComplement … \endComplement  » of my example below.
> 
> Maybe you can work with buffers or (ConTeXt) blocks (the latter were recently discussed here, it’s a quite unknown mechanism).

I already use blocks, but following your message, I tried to think differently. One solution would be to define a block for each course. Something like this (a working minimal example, redone in order this would be more easier to understand (I hope!) what I’m trying to do):

% —————————————
\setuppapersize[S5][S5]
\enablemode[Professor]

\defineblock[ComplementTwo]
\defineblock[ComplementThree]

\setupblock[ComplementTwo,ComplementThree][
	before={\page[yes]\setuppagenumber[state=stop]\setupheadertexts[]\setupbackgrounds[page][background=color,backgroundcolor=red]},
	after={\page[yes]\setuppagenumber[state=start]}]
\starttext

	% Let's process the summaries  ;
	\beginComplementTwo
		Last course, we have seen A.
	\endComplementTwo

	\beginComplementThree
		Last course, we have seen B….
	\endComplementThree

	\beginComplementThree
		Last course, we have seen C….
	\endComplementThree
	% ---- 

	Let's begin course 1. 
	This is course 1 : a lot of pages here about A! 
	\page[yes]
	
	Let's begin course 2. 
	\doifmode{Professor} {
		\useblocks[ComplementTwo]
	}

	This is course 2 : a lot of pages here about B and C! 

	\page[yes]
	Let's begin course 3. 
	\doifmode{Professor} {
		\useblocks[ComplementThree]
	}	

	This is course 3 : a lot of pages here about D... ! 

\stoptext

%————————— 

The only inconvenient of this solution if that I have to define 15 blocks (one for each week of the term): ComplementOne, ComplementTwo, .., ComplementFithteen… Another drawback of this is difficult to move one block form one week to another if I change something. Each block here correspond in fact to a summary of the previous course. So I have typically around 10 pages of summary for each course. The challenge is that the content of each course is not exactly the same form one term to another, so I have to move a page to the summary from one course to the other one, like in a given term, if teach about subject C in course 3 :

	\beginComplementThree
		Last course, we have seen C….
	\endComplementThree

, but next term in course 4:

	\beginComplementFour
		Last course, we have seen C….
	\\beginComplementFour

I have to manually change \beginComplementThree … \endComplementThree to \beginComplementFour … \beginComplementFour.

But I will do this if I do not find another solution. 
Thanks again Hraban.
Fabrice. 

> 
> 
> Hraban
> ___________________________________________________________________________________
> 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: 10198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 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:[~2021-11-29  1:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-28 18:39 Fabrice L via ntg-context
2021-11-28 20:42 ` Henning Hraban Ramm via ntg-context
2021-11-29  1:54   ` Fabrice L via ntg-context [this message]
2021-11-29  8:54     ` Hans Hagen via ntg-context
2021-11-29 13:54       ` Fabrice L via ntg-context

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=13B3FA56-541A-47C2-91EA-45E5FFB5648B@gmail.com \
    --to=ntg-context@ntg.nl \
    --cc=fabrice.alpha@gmail.com \
    /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).