Re: [NTG-context] Multiple cases of unexpected behaviour in luametatex

2020-07-03 Thread Marcel Fabian Krüger
On Fri, Jul 03, 2020 at 09:56:28PM +0200, Hans Hagen wrote:
> On 7/3/2020 2:55 PM, Marcel Fabian Krüger wrote:
> > Hi,
> > 
> > I recently noticed some cases where luametatex behaved in unexpected
> > ways:
> > 
> >- The "Extra \fi" error isn't triggered, instead an extra `\fi`
> >  freezes luametatex. (Can be reproduced by compiling a document which
> >  only consists of a single \fi)
> 
> i already fixed here (noticed it when documenting some conditionals)

Great.

> 
> >- token.new can only create some `data` tokens, but it doesn't apply
> >  bound checking on it's arguments:
> 
> there is no checking yet, there is an upper limit of 0x1F, so i'll add a
> check for that

OK, that explains it.

[...]
> 
> eventually i want all to have reasonable ranges  in the token interface (not
> per se the same as in the engine itself but that's a black box anyway) which
> involves some offsetting .. i do that stepwise in order to keep a working
> engine (the token interface is not used in context that much)

Please let me know if there is anything I can do to help with that.

Anyway, tehre is another thing I am wondering about: In the latest
luametatex versions, error help strings do not seem to work like they used to.
Especially after \errhelp{some help}\errmessage{error} or
tex.error('fdfd', {'some help'}) in the 'handle_error_hook'
callback, tex.gethelptext returns nil. gethelptext still works for
errors triggered by TeX itself.

One completely different question:
When running luametatex (of course with appropriate format/lua init
script options) but without a TeX file or command, luametatex does not
expect interactive input but instead tries to read the input file
'luametatex.tex'. (Where luametatex does not seem to be hardcoded but
derived from argv[0]) Is there a way to overwrite this default input
file name?

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


Re: [NTG-context] Multiple cases of unexpected behaviour in luametatex

2020-07-03 Thread Hans Hagen

On 7/3/2020 2:55 PM, Marcel Fabian Krüger wrote:

Hi,

I recently noticed some cases where luametatex behaved in unexpected
ways:

   - The "Extra \fi" error isn't triggered, instead an extra `\fi`
 freezes luametatex. (Can be reproduced by compiling a document which
 only consists of a single \fi)


i already fixed here (noticed it when documenting some conditionals)


   - token.new can only create some `data` tokens, but it doesn't apply
 bound checking on it's arguments:


there is no checking yet, there is an upper limit of 0x1F, so i'll 
add a check for that



 Also for all other commands LuaTeX seems to apply range-checks to
 ensure that such overflows don't happen, even if invalid values are
 passed as firstargument.


indeed, but hadn't yet done that for data, it also need a more strict 
check at the tex end (i'm still not sure if i make a slightly different 
implementation of it but i can add the test anyway)



   - There is token.primitives(). My assumption is that the returned
 table is meant to indicate the command is, mode and name
 corresponding to every primitive. (I think it is awesome that such a
 table is made available in luametatex) But especially the mode
 field sometimes has values which do not correspond to the mode of
 the actual primitives:


indeed.


 I tried running the following in an almost iniTeX setting where all
 primitives aside from \shipout and \Umathcodenum have their default
 definitions:

 ```
 \catcode`\%=12
 \catcode`\~=12
 \directlua{
   local sorted = token.primitives()
   table.sort(sorted, function(a,b) return a[1]

some tokens are more complex in the sense that they are combinations 
(have a follow up) and i'm not sure to what extedn i want to block that 
... all a matter of experimenting and time, so


the 'mode' field will be dropped but for now i kept it

some like after_something i need to check (i just didn't update their 
ranges yet after adding some more primitives that use them) (maybe some 
otheres need an offset added but i'll check it)




 The other difference is that all the internal_... commands have a
 fixed offset which differes between commands in their mode field.

 IMO the difference for the internal_... commands make sense because
 they make for easier to use numbers, but having multiple primitives
 indicating mode 0 for the other commands seems to make this table
 significantly less useful because it can't be used to get a unique
 description of a primitive.

 (I may have completely misinterpreted the table of course, but given
 that for other primitives the values match I do not think so)
it's a it work in progress as there are some exceptions that use special 
chr codes (for instance in conditionals several cmd codes need to have 
exclusive codes, so adapting it is a stepwise process; one decision i 
need to make there is how close to stay to the original tex codes


eventually i want all to have reasonable ranges  in the token interface 
(not per se the same as in the engine itself but that's a black box 
anyway) which involves some offsetting .. i do that stepwise in order to 
keep a working engine (the token interface is not used in context that 
much)


Hans


hans

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
   tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] overfull message

2020-07-03 Thread Aditya Mahajan

On Fri, 3 Jul 2020, Taco Hoekwater wrote:


\hbadness affects reports on stretched/shrunk box glue, but not
overfull boxes. You need \hfuzz for that

\hfuzz = 12pt


Or, for something more drastic:

\dontcomplain

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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] overfull message

2020-07-03 Thread Taco Hoekwater
\hbadness affects reports on stretched/shrunk box glue, but not
overfull boxes. You need \hfuzz for that

\hfuzz = 12pt

Best wishes,
Taco

> On 3 Jul 2020, at 14:53, Hans van der Meer  wrote:
> 
> I would very much like to get rid of the overfull hbox messages in the log. 
> They clutter the log and I have not much use for them
> Setting \hbadness to a large enough value should suppress them below the 
> threshold. But this does not happen. At least not in the minimal example  
> enclosed herby.
> 
> Is there a remedy making these messages disappear from the log?
> 
> dr. 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://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki : http://contextgarden.net
> ___

Taco Hoekwater
Elvenkind BV




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


[NTG-context] Multiple cases of unexpected behaviour in luametatex

2020-07-03 Thread Marcel Fabian Krüger
Hi,

I recently noticed some cases where luametatex behaved in unexpected
ways:

  - The "Extra \fi" error isn't triggered, instead an extra `\fi`
freezes luametatex. (Can be reproduced by compiling a document which
only consists of a single \fi)

  - token.new can only create some `data` tokens, but it doesn't apply
bound checking on it's arguments:

Take

```
\directlua{
  t = token.new(0x20, token.command_id'data')
  print(t.cmdname, t.command, t.mode)
}
```

which prints

register102 0

The issue does not seem to be that such tokens do not exists because

\letdatacode\somedata="20
\directlua{
  local t = token.create'somedata'
  print(t.cmdname, t.command, t.index)
}

does print

data101 2097152

Also for all other commands LuaTeX seems to apply range-checks to
ensure that such overflows don't happen, even if invalid values are
passed as firstargument.

  - There is token.primitives(). My assumption is that the returned
table is meant to indicate the command is, mode and name
corresponding to every primitive. (I think it is awesome that such a
table is made available in luametatex) But especially the mode
field sometimes has values which do not correspond to the mode of
the actual primitives:

I tried running the following in an almost iniTeX setting where all
primitives aside from \shipout and \Umathcodenum have their default
definitions:

```
\catcode`\%=12
\catcode`\~=12
\directlua{
  local sorted = token.primitives()
  table.sort(sorted, function(a,b) return a[1]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
___


[NTG-context] overfull message

2020-07-03 Thread Hans van der Meer
I would very much like to get rid of the overfull hbox messages in the log. They clutter the log and I have not much use for themSetting \hbadness to a large enough value should suppress them below the threshold. But this does not happen. At least not in the minimal example  enclosed herby.Is there a remedy making these messages disappear from the log?
dr. Hans van der Meer

hbadness.tex
Description: Binary data




hbadness.pdf
Description: Adobe PDF document
___
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
___


Re: [NTG-context] Store images and text in the right margin

2020-07-03 Thread Marco Patzer
On Fri, 3 Jul 2020 08:40:22 +0200
Fabrice Couvreur  wrote:

> Thanks, it works but only for a comment and a picture. Indeed, if I
> add a comment and an image, the first image is placed on the second
> comment. Fabrice
> 
> \starttext
> \startuserdata[margintext]
>  \input ward
> \stopuserdata
> \marginfigure{\externalfigure[dummy][width=\rightmarginwidth,location=high]}

\marginfigure{\externalfigure[dummy][width=\rightmarginwidth,location=top]}

> \startuserdata[margintext]
>  \input ward
> \stopuserdata
> \marginfigure{\externalfigure[dummy][width=\rightmarginwidth,location=high]}

\marginfigure{\externalfigure[dummy][width=\rightmarginwidth,location=top]}

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


Re: [NTG-context] Store images and text in the right margin

2020-07-03 Thread Fabrice Couvreur
Hi Marco,
Thanks, it works but only for a comment and a picture. Indeed, if I add a
comment and an image, the first image is placed on the second comment.
Fabrice

\starttext
\startuserdata[margintext]
 \input ward
\stopuserdata
\marginfigure{\externalfigure[dummy][width=\rightmarginwidth,location=high]}
\startuserdata[margintext]
 \input ward
\stopuserdata
\marginfigure{\externalfigure[dummy][width=\rightmarginwidth,location=high]}
\startchapter[title=First chapter]
\dorecurse{2}{\input knuth}
\stopchapter
\stoptext

Le jeu. 2 juil. 2020 à 19:04, Marco Patzer  a écrit :

> On Thu, 2 Jul 2020 17:20:07 +0200
> Fabrice Couvreur  wrote:
>
> Try:
>
> > \useMPlibrary[dum]
> >
> > \setuppapersize[A4]
> >
> > \setuplayout
> >   [width=12cm,
> >rightmargin=5cm]
> >
> > \definemargindata[marginfigure][inright]
> > \setupmargindata [marginfigure][command=\vbox,align=middle]
>
> \setupmargindata [marginfigure][command=\vbox,align=middle,stack=yes]
>
> > \startsetups [userdata:margintext]
> >   \margindata
> > [inright]
> > [%style=\smallbodyfont,
> >  style={\switchtobodyfont[9pt]},
> >  width=\rightmarginwidth,
>
>   stack=yes,
>
> >  align={flushleft,broad}]
> > {{\bf Remarque — }\getinlineuserdata}
> > \stopsetups
>
> > \marginfigure{\externalfigure[dummy][width=\rightmarginwidth]}
>
>
> \marginfigure{\externalfigure[dummy][width=\rightmarginwidth,location=high]}
>
> Marco
>
> ___
> 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
>
> ___
>
___
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
___