Re: [NTG-context] Bug with linenumbering

2012-05-03 Thread Wolfgang Schuster

Am 03.05.2012 um 06:58 schrieb Aditya Mahajan:

 On Wed, 2 May 2012, Hans Hagen wrote:
 
 On 1-5-2012 21:43, Aditya Mahajan wrote:
 Hi,
 Line numbering does not respect the parameters given with
 \startlinenumbering. For example:
 
 Line numbering is a delayed operation. As they are handled when the page is 
 constructed the settings of that moment apply. In practice only the start 
 key is handled when you pass settings to \start (the only reason for  
 having the second argument is number start/restart etc). If you want 
 different renderings, the best is to define a specific instance of line 
 numbering.
 
 A little background: In the initial version of the vim module, I used to do 
 line numbering manually (each line started with \NL macro, which expanded to 
 a number in an appropriate style depending on whether line numbering was 
 enabled or not. When I rewrote the module to use the filter module, I also 
 rewrote the line numbering mechanism to use ConTeXt's inbuilt line numbering 
 macros, but I cannot get them to work.
 
 Consider the following example. I want to define an environment, which, 
 amongst other things does line numbering. I want the user to control the 
 style and color of line numbering, so I define keys numberstyle and 
 numbercolor, which are then passed on to the line numbering macros. The most 
 obvious implementation of this does not work.
 
 […]
 
 \appendtoks
   \definelinenumbering
 [\currentwhatever]
 [
   color=\whateverparameter{numbercolor},
   style=\whateverparameter{numberstyle},
 ]%
   \setvalue{start\currentwhatever}{\dostartwhatever[\currentwhatever]}%
   \setvalue{stop\currentwhatever}{\dostopwhatever}%
 \to\everydefinewhatever

You assume \definelinenumbering has a second argument for the settings but this 
isn’t the case and you need \setuplinenumbering to set them.

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] Bug with linenumbering

2012-05-03 Thread Aditya Mahajan

On Thu, 3 May 2012, Wolfgang Schuster wrote:


You assume \definelinenumbering has a second argument for the settings but this 
isn’t the case


D'oh.


and you need \setuplinenumbering to set them.


I also needed to change \setvalue to \setevalue in the example, and add an 
\expanded to get it to work.


\definenamespace
 [whatever]
 [
   type=module,
   name=whatever,
   command=yes,
   setup=yes,
   parent=whatever,
 ]

\appendtoks
 \definelinenumbering
   [\currentwhatever]%
 \expanded{\setuplinenumbering
   [\currentwhatever]
   [
 color=\whateverparameter{numbercolor},
 style=\whateverparameter{numberstyle},
   ]}%

\setevalue{start\currentwhatever}{\dostartwhatever[\currentwhatever]}%
 \setevalue{stop\currentwhatever}{\dostopwhatever}%
\to\everydefinewhatever

% For illustration. The actual macro is more complicated.
\def\dostartwhatever[#1]%
 {\startlinenumbering[#1]}

\def\dostopwhatever
 {\stoplinenumbering}



\definewhatever[testing][numbercolor=red,numberstyle=bold]

\starttext
\starttesting
   \input knuth
\stoptesting
\stoptext

Thanks,
Aditya___
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] Bug with linenumbering

2012-05-03 Thread Wolfgang Schuster

Am 03.05.2012 um 17:18 schrieb Aditya Mahajan:

 On Thu, 3 May 2012, Wolfgang Schuster wrote:
 
 You assume \definelinenumbering has a second argument for the settings but 
 this isn’t the case
 
 D'oh.
 
 and you need \setuplinenumbering to set them.
 
 I also needed to change \setvalue to \setevalue in the example, and add an 
 \expanded to get it to work.

In MkIV \setuevalue is better the \setevalue and \normalunexpanded is faster 
than \expanded.

The problem in your approach is that you can only set the style and color value 
with \definewhatever
where I think it’s better to use \setupwhatever.

\unprotect

\installnamespace{whatever}
\installcommandhandler \whatever {whatever} \whatever

\appendtoks
  \definelinenumbering[\currentwhatever]%
\to \everydefinewhatever

\appendtoks
  \setuevalue{\e!start\currentwhatever}{\whatever_start[\currentwhatever]}%
  \setuevalue{\e!stop\currentwhatever }{\whatever_stop   }%
\to \everydefinewhatever

\appendtoks
  \normalexpanded{\setuplinenumbering
[\currentwhatever]
[\c!color=\whateverparameter\c!numbercolor,
 \c!style=\whateverparameter\c!numberstyle]}%
\to \everysetupwhatever

\unexpanded\def\whatever_start[#1]%
  {\begingroup
   \edef\currentwhatever{#1}%
   \startlinenumbering[\currentwhatever]}

\unexpanded\def\whatever_stop
  {\stoplinenumbering
   \endgroup}

\protect

\definewhatever[testing][numbercolor=red,numberstyle=bold]
\setupwhatever [testing][numbercolor=blue]

\starttext
\starttesting
\input knuth
\stoptesting
\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] Bug with linenumbering

2012-05-03 Thread Aditya Mahajan

On Thu, 3 May 2012, Wolfgang Schuster wrote:



Am 03.05.2012 um 17:18 schrieb Aditya Mahajan:


On Thu, 3 May 2012, Wolfgang Schuster wrote:


You assume \definelinenumbering has a second argument for the settings but this 
isn’t the case


D'oh.


and you need \setuplinenumbering to set them.


I also needed to change \setvalue to \setevalue in the example, and add an 
\expanded to get it to work.


In MkIV \setuevalue is better the \setevalue and \normalunexpanded is faster 
than \expanded.

The problem in your approach is that you can only set the style and color value 
with \definewhatever
where I think it’s better to use \setupwhatever.


Thanks for both the tips!

Aditya___
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] Bug with linenumbering

2012-05-02 Thread Hans Hagen

On 1-5-2012 21:43, Aditya Mahajan wrote:

Hi,

Line numbering does not respect the parameters given with
\startlinenumbering. For example:


Line numbering is a delayed operation. As they are handled when the page 
is constructed the settings of that moment apply. In practice only the 
start key is handled when you pass settings to \start (the only 
reason for  having the second argument is number start/restart etc). If 
you want different renderings, the best is to define a specific instance 
of line numbering. Maybe a future version will be more clever.


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
___


Re: [NTG-context] Bug with linenumbering

2012-05-02 Thread Aditya Mahajan

On Wed, 2 May 2012, Hans Hagen wrote:


On 1-5-2012 21:43, Aditya Mahajan wrote:

Hi,

Line numbering does not respect the parameters given with
\startlinenumbering. For example:


Line numbering is a delayed operation. As they are handled when the page is 
constructed the settings of that moment apply. In practice only the start key 
is handled when you pass settings to \start (the only reason for  having 
the second argument is number start/restart etc). If you want different 
renderings, the best is to define a specific instance of line numbering.


A little background: In the initial version of the vim module, I used to 
do line numbering manually (each line started with \NL macro, which 
expanded to a number in an appropriate style depending on whether line 
numbering was enabled or not. When I rewrote the module to use the filter 
module, I also rewrote the line numbering mechanism to use ConTeXt's 
inbuilt line numbering macros, but I cannot get them to work.


Consider the following example. I want to define an environment, which, 
amongst other things does line numbering. I want the user to control the 
style and color of line numbering, so I define keys numberstyle and 
numbercolor, which are then passed on to the line numbering macros. The 
most obvious implementation of this does not work.


\definenamespace
[whatever]
[
  type=module,
  name=whatever,
  command=yes,
  setup=yes,
  parent=whatever,
]

\appendtoks
\definelinenumbering
  [\currentwhatever]
  [
color=\whateverparameter{numbercolor},
style=\whateverparameter{numberstyle},
  ]%
\setvalue{start\currentwhatever}{\dostartwhatever[\currentwhatever]}%
\setvalue{stop\currentwhatever}{\dostopwhatever}%
\to\everydefinewhatever

% For illustration. The actual macro is more complicated.
\def\dostartwhatever[#1]%
{\startlinenumbering[#1]}

\def\dostopwhatever
{\stoplinenumbering}



\definewhatever[testing][numbercolor=red,numberstyle=bold]

\starttext
\starttesting
  \input knuth
\stoptesting
\stoptext

When I run it, the line number is not styled. Any idea on what I can do 
differently?


Aditya

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


[NTG-context] Bug with linenumbering

2012-05-01 Thread Aditya Mahajan

Hi,

Line numbering does not respect the parameters given with 
\startlinenumbering. For example:


\definelinenumbering
  [test]

\starttext
\startlinenumbering[test][color=blue,align=flushright,distance=0.5em]
  \input knuth
\stoplinenumbering

\page

\setuplinenumbering
  [test][color=blue,align=flushright,distance=0.5em]

\startlinenumbering[test]
  \input knuth
\stoplinenumbering

\stoptext

Aditya
___
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] Bug with linenumbering

2012-05-01 Thread Aditya Mahajan

On Tue, 1 May 2012, Aditya Mahajan wrote:

Line numbering does not respect the parameters given with 
\startlinenumbering.


I think that the state at the end of the page flush is used, rather than 
the state at the beginning of line numbering. An example illustrating 
this:


\definelinenumbering
  [test]

\starttext
\startlinenumbering[test][color=blue,align=flushright,distance=0.5em]
  \input knuth
\stoplinenumbering

\setuplinenumbering
  [test][color=blue,align=flushright,distance=0.5em]

\startlinenumbering[test]
  \input knuth
\stoplinenumbering

\setuplinenumbering
  [test][color=red,align=flushright,distance=0.5em]
\stoptext

(Both snippets have red line numbers!)

Aditya
___
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
___