[NTG-context] Bug in verbatim wrapping examples on wiki
Hans Hagen
j.hagen at freedom.nl
Sun Feb 5 13:13:48 CET 2023
On 2/5/2023 12:32 PM, Pablo Rodriguez via ntg-context wrote:
> On 2/4/23 10:37, Pablo Rodriguez via ntg-context wrote:
>> On 2/4/23 07:49, Hugo Landau via ntg-context wrote:
>>> On this page of the wiki there is an example for wrapping long words,
>>> like long hexadecimal strings:
>>>
>>> https://wiki.contextgarden.net/Wrapping
>>>
>>> This example is buggy because it deletes one character at the point that
>>> it is wrapped.
>>>
>>> Anyone have a solution?
>>
>> Many thanks for your report, Hugo.
>>
>> I use this code from time to time and I totally overlooked this.
>>
>> Have you checked all options that the sample contains?
>
> Hans,
>
> I have just checked that these line breakings loose a character in all
> options.
>
> The next sample displays the issue clearly:
>
>
> \startluacode
>
> --local shared = {
> -- start = 1,
> -- length = 1,
> -- left = false,
> -- right = false,
> --}
>
> local shared = {
> start = 1,
> length = 1,
> before = utf.char(0xB7),
> after = nil,
> left = false,
> right = false,
> }
>
> -- languages.hyphenators.traditional.installmethod("sha",
> -- function(dictionary,word,n)
> -- local t = { }
> -- for i=1,#word do
> -- t[i] = shared
> -- end
> -- return t
> -- end
> -- )
>
> -- or more efficient when used often:
>
> -- local all = { }
> -- for i=1,512 do
> -- all[i] = shared
> -- end
> -- languages.hyphenators.traditional.installmethod("sha",
> -- function(dictionary,word,n)
> -- return all
> -- end
> -- )
>
> -- or more obscure:
>
> -- local all = table.setmetatableindex({ }, function(t,k)
> -- t[k] = shared
> -- return shared
> -- end)
> --
> -- languages.hyphenators.traditional.installmethod("sha",
> -- function(dictionary,word,n)
> -- return all
> -- end
> -- )
>
> -- or just (lua is fast enough anyway)
>
> local all = table.setmetatableindex({ }, function(t,k)
> return shared
> end)
>
> languages.hyphenators.traditional.installmethod("sha",
> function(dictionary,word,n)
> return all
> end
> )
> \stopluacode
>
> \definehyphenationfeatures
> [sha]
> [characters=all,
> alternative=sha]
>
> \unexpanded\def\sha#1%
> {\begingroup
> \sethyphenationfeatures[sha]%
> #1%
> \endgroup}
>
> \setuphyphenation[method=traditional]
> %
> % \unexpanded\def\sha#1%
> % {\begingroup
> % \sethyphenationfeatures[sha]%
> % \setuphyphenation[method=traditional]%
> % #1%
> % \endgroup}
>
> \starttext
> \hyphenatedword{\sha{8b2f3c087046c3943ace0dc4f958ef2138e58a51b40e%
> ef6fab6fa1aeb845cc257a410ab1b914bc399b4293f%
> 31c76fc2c73e5be5ea4d329f9e6820984688efec2}}
> \stoptext
>
> Are we missing something or is this a bug?
what do you expect as result? (maybe try \righthyphenmin=1)
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
More information about the ntg-context
mailing list