Re: [NTG-context] \startmode and \ignorespaces

2011-10-14 Thread Meer, H. van der
I made an example of the effect of this on \doifmode and \startmode. The 
example shows that the appearance of extra space in \doifmode follows a regular 
pattern. The startmode case differs in that respect because 
\startmode[condition-true] has the extra space but \startmode[condition-false] 
has not. In my view that is an unwanted anomaly. A little redefinition remedies 
that as can be seen in the example.



spaces.pdf
Description: spaces.pdf

On 13 okt. 2011, at 17:43, Hans van der Meer wrote:

 A little while ago I asked whether \doifmode and friends should have an 
 \ignorespaces at the end. Hans Hagen answered no and after some reasoning 
 (probably along the same lines as his) I agree with him. Thus one uses in a 
 quite natural way:
   some text\doifmode{xyz}{ conditional text} following text
 doing nothing else than: some text conditional text following text.
 With regard to this it is understandable and correct that extra space is 
 taken in the next construct:
   some text \doifmode{xyz}{ conditional text} following text.
 
 But it looks different to me when using the \startmode .. \stopmode pair.
  some text.
 \startmode[xyz]
 some conditional text.
 \stopmode
 further text.
 
 In order to avoid here the extra space one has to code an extra %
  some text.
 \startmode[xyz]%
 some conditional text.
 \stopmode
 further text.
 
 or (not preferred imho):
  some text.%
 \startmode[xyz]
 
 I think this is error prone as it is al too easy to forget the %. The 
 situation here differs from the \doifmode-case. I tend to believe that the 
 fact that the \startmode[] .. \stopmode construct invites one to separate the 
 statements with newlines (whitespace thus). Therefore I would ask if this 
 plea for an \ignorespaces effect at the end of the \startmode[xyz] should be 
 honored.
 
 Hans van der Meer
 
 ___
 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://tex.aanhet.net
 archive  : http://foundry.supelec.fr/projects/contextrev/
 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] \startmode and \ignorespaces

2011-10-14 Thread Wolfgang Schuster

Am 14.10.2011 um 10:38 schrieb Meer, H. van der:

 I made an example of the effect of this on \doifmode and \startmode. The 
 example shows that the appearance of extra space in \doifmode follows a 
 regular pattern. The startmode case differs in that respect because 
 \startmode[condition-true] has the extra space but 
 \startmode[condition-false] has not. In my view that is an unwanted anomaly. 
 A little redefinition remedies that as can be seen in the example.

I wrote you already a few times that you can use the annotation module for 
this. The module serves also as replacement for the fixme module where it is 
necessary to take care that no extra spaces are added when the text is hidden.

\usemodule[annotation]

\defineannotation[fulltext] [alternative=text]
\defineannotation[shorttext][alternative=none]
\defineannotation[modetext] [alternative=command,command=\ModeText]

\define[2]\ModeText
  {\doifelse{\placeannotationtitle}{off}{\removeunwantedspaces}{#2}}

\starttext

abc \fulltext {pqr} xyz

abc \shorttext{pqr} xyz

abc \fulltext [alternative=none]{pqr} xyz

abc \shorttext[alternative=text]{pqr} xyz

\blank

abc \startfulltext  pqr \stopfulltext  xyz

abc \startshorttext pqr \stopshorttext xyz

abc \startfulltext [alternative=none] pqr \stopfulltext  xyz

abc \startshorttext[alternative=text] pqr \stopshorttext xyz

\blank

abc \modetext {pqr} xyz

abc \modetext {on}{pqr} xyz

abc \modetext{off}{pqr} xyz

\blank

abc \startmodetext  pqr \stopmodetext xyz

abc \startmodetext{on}  pqr \stopmodetext xyz

abc \startmodetext{off} pqr \stopmodetext xyz

\stoptext

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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] \startmode and \ignorespaces

2011-10-14 Thread Meer, H. van der

On 14 okt. 2011, at 11:26, Wolfgang Schuster wrote:

 
 Am 14.10.2011 um 10:38 schrieb Meer, H. van der:
 
 I made an example of the effect of this on \doifmode and \startmode. The 
 example shows that the appearance of extra space in \doifmode follows a 
 regular pattern. The startmode case differs in that respect because 
 \startmode[condition-true] has the extra space but 
 \startmode[condition-false] has not. In my view that is an unwanted anomaly. 
 A little redefinition remedies that as can be seen in the example.
 
 I wrote you already a few times that you can use the annotation module for 
 this. The module serves also as replacement for the fixme module where it is 
 necessary to take care that no extra spaces are added when the text is hidden.


Wolfgang,

Thanks for your reply, but I find it takes a sidetrack and does not answer the 
question. Please let me explain.

It might well be that the annotation module does something of the sort, but 
that is not my point. The mode-mechanism is explicitely given as a means to do 
conditional typesetting. If I may cite from the wiki: Very often, you want to 
generate multiple versions of the same document: one version for printing and 
one for viewing on the screen, one version for students and one version for the 
instructor, and so on. .. Or you could use modes - the ConTeXt way of doing 
conditional processing 

Well, that is exactly what I want to do and I fail to see why another module 
(like annotation) should be necessary. Therefore, please do not keep pointing 
me to something that in my opinion is not needed in this case and is already 
fully provided for in ConTeXt.

When I am pointing out something that I think is an anomaly in the behaviour of 
ConTeXt or probably not intentional, it is not meant as criticizing. To the 
contrary, my intention is always to make a constructive contribution. Your 
reply however is not an answer to the question I brought forward. It might be 
that there are reasons for not changing ConTeXt in the manner I proposed on 
this issue. I can live with that, because I have no role in the development. 
But I think it is legitimate to ask why that decision is made. I am certain you 
will understand this.

Hans van der Meer


___
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] \startmode and \ignorespaces

2011-10-14 Thread Hans Hagen

On 14-10-2011 10:38, Meer, H. van der wrote:

I made an example of the effect of this on \doifmode and \startmode. The 
example shows that the appearance of extra space in \doifmode follows a regular 
pattern. The startmode case differs in that respect because 
\startmode[condition-true] has the extra space but \startmode[condition-false] 
has not. In my view that is an unwanted anomaly. A little redefinition remedies 
that as can be seen in the example.


it's all a side effect of how parses: spaces after a \cs are gobbled so 
any macro that looks ahead has to struggle with this and compromise


you can consider using

\startsetups xxx

\stopsetups

\doifmode{whatever}{\setups{xxx}

inside setups all spaces and line endings are ignores (so an explicit 
one has to be \space)


Hans


-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___