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
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage : https://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : https://contextgarden.net
___________________________________________________________________________________