* m-graph.mkiv format bug
@ 2012-10-15 9:19 Alan BRASLAU
2012-10-15 10:08 ` Sietse Brouwer
0 siblings, 1 reply; 6+ messages in thread
From: Alan BRASLAU @ 2012-10-15 9:19 UTC (permalink / raw)
To: mailing list for ConTeXt users
There is a bug with format() as redefined in m-graph.mkiv
1e10 and 1e-10 truncate the tailing 0.
(I have not been able to fix the code...)
Alan
Minimal example:
\usemodule [graph]
\starttext
\startMPpage
label(format("@g","1e-10"),(0, 0)) ;
label(format("@g","1e+10"),(2cm, 0)) ;
label(format("@g","1e-12"),(0, -.5cm)) ;
label(format("@g","1e+12"),(2cm,-.5cm)) ;
\stopMPpage
\stoptext
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: m-graph.mkiv format bug
2012-10-15 9:19 m-graph.mkiv format bug Alan BRASLAU
@ 2012-10-15 10:08 ` Sietse Brouwer
2012-10-15 10:27 ` Alan BRASLAU
0 siblings, 1 reply; 6+ messages in thread
From: Sietse Brouwer @ 2012-10-15 10:08 UTC (permalink / raw)
To: mailing list for ConTeXt users
> There is a bug with format() as redefined in m-graph.mkiv
> 1e10 and 1e-10 truncate the tailing 0.
The function strip() is removing 0 throughout the exponent, and I
don't know what purpose that might serve. If we never want to remove
zeroes, this works:
local function strip(s)
- return "\\times10^{"..(s:gsub("%+*0*","")).."}"
+ return "\\times10^{"..(s:gsub("%+*","")).."}"
end
Note that if the exponent is zero the "× 10^0" will be left out
completely, in both the old and the new strip() function. This seems
to be by design. Illustration of this behaviour:
\usemodule[graph]
\starttext
\startMPpage
label(format("@g","1e+0"),(2cm,-1cm)) ;
\stopMPpage
\stoptext
Cheers,
Sietse
On Mon, Oct 15, 2012 at 11:19 AM, Alan BRASLAU <alan.braslau@cea.fr> wrote:
> There is a bug with format() as redefined in m-graph.mkiv
> 1e10 and 1e-10 truncate the tailing 0.
> (I have not been able to fix the code...)
>
> Alan
>
> Minimal example:
>
> \usemodule [graph]
>
> \starttext
> \startMPpage
> label(format("@g","1e-10"),(0, 0)) ;
> label(format("@g","1e+10"),(2cm, 0)) ;
> label(format("@g","1e-12"),(0, -.5cm)) ;
> label(format("@g","1e+12"),(2cm,-.5cm)) ;
> \stopMPpage
> \stoptext
> ___________________________________________________________________________________
> 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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: m-graph.mkiv format bug
2012-10-15 10:08 ` Sietse Brouwer
@ 2012-10-15 10:27 ` Alan BRASLAU
2012-10-15 10:45 ` Alan BRASLAU
0 siblings, 1 reply; 6+ messages in thread
From: Alan BRASLAU @ 2012-10-15 10:27 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Mon, 15 Oct 2012 12:08:30 +0200
Sietse Brouwer <sbbrouwer@gmail.com> wrote:
> > There is a bug with format() as redefined in m-graph.mkiv
> > 1e10 and 1e-10 truncate the tailing 0.
>
> The function strip() is removing 0 throughout the exponent, and I
> don't know what purpose that might serve. If we never want to remove
> zeroes, this works:
>
> local function strip(s)
> - return "\\times10^{"..(s:gsub("%+*0*","")).."}"
> + return "\\times10^{"..(s:gsub("%+*","")).."}"
> end
>
> Note that if the exponent is zero the "× 10^0" will be left out
> completely, in both the old and the new strip() function. This seems
> to be by design. Illustration of this behaviour:
>
> \usemodule[graph]
> \starttext
> \startMPpage
> label(format("@g","1e+0"),(2cm,-1cm)) ;
> \stopMPpage
> \stoptext
Thanks, this "fixes" it for now,
but I believe that the strip is intended to remove leading zeros, as in
label(format("@g","1e+08"),(2cm,-1cm)) ;
I suppose that the correct syntax must be something like the regex
s/[+-]*0*\([1-9]\)/\1/
(not sure how to state this in lua gsub()...)
Alan
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: m-graph.mkiv format bug
2012-10-15 10:27 ` Alan BRASLAU
@ 2012-10-15 10:45 ` Alan BRASLAU
2012-10-15 11:03 ` Sietse Brouwer
0 siblings, 1 reply; 6+ messages in thread
From: Alan BRASLAU @ 2012-10-15 10:45 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Mon, 15 Oct 2012 12:27:27 +0200
Alan BRASLAU <alan.braslau@cea.fr> wrote:
> On Mon, 15 Oct 2012 12:08:30 +0200
> Sietse Brouwer <sbbrouwer@gmail.com> wrote:
>
> > > There is a bug with format() as redefined in m-graph.mkiv
> > > 1e10 and 1e-10 truncate the tailing 0.
> >
> > The function strip() is removing 0 throughout the exponent, and I
> > don't know what purpose that might serve. If we never want to remove
> > zeroes, this works:
> >
> > local function strip(s)
> > - return "\\times10^{"..(s:gsub("%+*0*","")).."}"
> > + return "\\times10^{"..(s:gsub("%+*","")).."}"
> > end
> >
> > Note that if the exponent is zero the "× 10^0" will be left out
> > completely, in both the old and the new strip() function. This seems
> > to be by design. Illustration of this behaviour:
> >
> > \usemodule[graph]
> > \starttext
> > \startMPpage
> > label(format("@g","1e+0"),(2cm,-1cm)) ;
> > \stopMPpage
> > \stoptext
>
>
> Thanks, this "fixes" it for now,
> but I believe that the strip is intended to remove leading zeros, as
> in label(format("@g","1e+08"),(2cm,-1cm)) ;
>
> I suppose that the correct syntax must be something like the regex
> s/[+-]*0*\([1-9]\)/\1/
> (not sure how to state this in lua gsub()...)
Figured it out (and we don't want to strip a leading minus sign):
local function strip(s)
return "\\times10^{"..(s:gsub("%+*0*([1-9])","%1")).."}"
end
Alan
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: m-graph.mkiv format bug
2012-10-15 10:45 ` Alan BRASLAU
@ 2012-10-15 11:03 ` Sietse Brouwer
2012-10-15 12:21 ` Alan BRASLAU
0 siblings, 1 reply; 6+ messages in thread
From: Sietse Brouwer @ 2012-10-15 11:03 UTC (permalink / raw)
To: Alan BRASLAU, mailing list for ConTeXt users, Hans Hagen
Alan wrote:
> Figured it out (and we don't want to strip a leading minus sign):
>
> local function strip(s)
> return "\\times10^{"..(s:gsub("%+*0*([1-9])","%1")).."}"
> end
Better to anchor the pattern to the start of the string with `^` (and
then the nonzerodigitmatching is no longer needed):
gsub("^%+*0*", "")
Otherwise, you'll get 805 --> 85.
--Sietse
On Mon, Oct 15, 2012 at 12:45 PM, Alan BRASLAU <alan.braslau@cea.fr> wrote:
> On Mon, 15 Oct 2012 12:27:27 +0200
> Alan BRASLAU <alan.braslau@cea.fr> wrote:
>
>> On Mon, 15 Oct 2012 12:08:30 +0200
>> Sietse Brouwer <sbbrouwer@gmail.com> wrote:
>>
>> > > There is a bug with format() as redefined in m-graph.mkiv
>> > > 1e10 and 1e-10 truncate the tailing 0.
>> >
>> > The function strip() is removing 0 throughout the exponent, and I
>> > don't know what purpose that might serve. If we never want to remove
>> > zeroes, this works:
>> >
>> > local function strip(s)
>> > - return "\\times10^{"..(s:gsub("%+*0*","")).."}"
>> > + return "\\times10^{"..(s:gsub("%+*","")).."}"
>> > end
>> >
>> > Note that if the exponent is zero the "× 10^0" will be left out
>> > completely, in both the old and the new strip() function. This seems
>> > to be by design. Illustration of this behaviour:
>> >
>> > \usemodule[graph]
>> > \starttext
>> > \startMPpage
>> > label(format("@g","1e+0"),(2cm,-1cm)) ;
>> > \stopMPpage
>> > \stoptext
>>
>>
>> Thanks, this "fixes" it for now,
>> but I believe that the strip is intended to remove leading zeros, as
>> in label(format("@g","1e+08"),(2cm,-1cm)) ;
>>
>> I suppose that the correct syntax must be something like the regex
>> s/[+-]*0*\([1-9]\)/\1/
>> (not sure how to state this in lua gsub()...)
>
>
> Figured it out (and we don't want to strip a leading minus sign):
>
> local function strip(s)
> return "\\times10^{"..(s:gsub("%+*0*([1-9])","%1")).."}"
> end
>
>
> Alan
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: m-graph.mkiv format bug
2012-10-15 11:03 ` Sietse Brouwer
@ 2012-10-15 12:21 ` Alan BRASLAU
0 siblings, 0 replies; 6+ messages in thread
From: Alan BRASLAU @ 2012-10-15 12:21 UTC (permalink / raw)
To: Sietse Brouwer; +Cc: mailing list for ConTeXt users, Hans Hagen
On Mon, 15 Oct 2012 13:03:40 +0200
Sietse Brouwer <sbbrouwer@gmail.com> wrote:
> Alan wrote:
> > Figured it out (and we don't want to strip a leading minus sign):
> >
> > local function strip(s)
> > return "\\times10^{"..(s:gsub("%+*0*([1-9])","%1")).."}"
> > end
>
> Better to anchor the pattern to the start of the string with `^` (and
> then the nonzerodigitmatching is no longer needed):
> gsub("^%+*0*", "")
> Otherwise, you'll get 805 --> 85.
Thank you for the suggestion. Tried it, but this
doesn't work, so I must be missing something...
Of course, with MetaPost 2.0 we will certainly come across such a case
with numbers like 1e805. :)
Alan
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-10-15 12:21 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-15 9:19 m-graph.mkiv format bug Alan BRASLAU
2012-10-15 10:08 ` Sietse Brouwer
2012-10-15 10:27 ` Alan BRASLAU
2012-10-15 10:45 ` Alan BRASLAU
2012-10-15 11:03 ` Sietse Brouwer
2012-10-15 12:21 ` Alan BRASLAU
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).