Re: [NTG-context] how to hyphenate SHA512?
On 07/08/2017 01:32 PM, Hans Hagen wrote: > On 7/7/2017 10:28 PM, josephcan...@gmail.com wrote: >> A probably quick and dirty « solution », which consists in inserting a >> \discretionary node between each digit using some lua code. There are >> mostly likely better solutions for this. > > "better" depends on how often such a trick is needed Many thanks for your help, Hans and Joseph. I will play with your sample bellow to adapt it to the underscore hyphenation to the code provided here. Pablo > \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} > > \showframe > > \starttext > > \setupalign[tolerant,stretch] > > \dorecurse {100} {% > some sha > \sha{8b2f3c087046c3943ace0dc4f958ef2138e58a51b40e% > ef6fab6fa1aeb845cc257a410ab1b914bc399b4293f% > 31c76fc2c73e5be5ea4d329f9e6820984688efec2} and > } > > \stoptext -- http://www.ousia.tk ___ 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] how to hyphenate SHA512?
On 7/8/2017 10:20 AM, josephcan...@gmail.com wrote: If I am not mistaken SHA is only hexadecimal digits, so you probably need only to have a « language » that hyphenates between any pair of those. Should be much simpler I guess, but I do not really know how to add such setting I am afraid. you can cvreate a pattern for letters but the digits are a problem as they conflict with the way patterns are defined 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] how to hyphenate SHA512?
On 7/7/2017 10:28 PM, josephcan...@gmail.com wrote: A probably quick and dirty « solution », which consists in inserting a \discretionary node between each digit using some lua code. There are mostly likely better solutions for this. "better" depends on how often such a trick is needed \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} \showframe \starttext \setupalign[tolerant,stretch] \dorecurse {100} {% some sha \sha{8b2f3c087046c3943ace0dc4f958ef2138e58a51b40e% ef6fab6fa1aeb845cc257a410ab1b914bc399b4293f% 31c76fc2c73e5be5ea4d329f9e6820984688efec2} and } \stoptext \startluacode function sha(s) local out = {} for i = 1, s:len() do out[#out + 1] = s:sub(i, i) end context(table.concat(out, '\\discretionary{_}{}{}')) end \stopluacode \starttext % \hsize\zeropoint \hyphenation %%8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc25% %%7a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2 \ctxlua{sha([[8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc257a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2]])} \stoptext *De : *Pablo Rodriguez <mailto:oi...@gmx.es> *Envoyé le :*jeudi 6 juillet 2017 12:00 *À : *mailing list for ConTeXt users <mailto:ntg-context@ntg.nl> *Objet :*[NTG-context] how to hyphenate SHA512? Dear list, I have the following sample: \starttext \hsize\zeropoint hyphenation 8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc25% 7a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2 \stoptext I plan to use underscore hyphenation. How can I get the SHA512 string hyphenated in any of its points? Many thanks for your help, Pablo -- http://www.ousia.tk ___ 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 ___ -- - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl - ___
Re: [NTG-context] how to hyphenate SHA512?
If I am not mistaken SHA is only hexadecimal digits, so you probably need only to have a « language » that hyphenates between any pair of those. Should be much simpler I guess, but I do not really know how to add such setting I am afraid. Joseph De : Pablo Rodriguez Envoyé le :samedi 8 juillet 2017 08:56 À : ntg-context@ntg.nl Objet :Re: [NTG-context] how to hyphenate SHA512? Many thanks for your reply, Joseph. The underscore I want to use should be placed below the previous character, such as in (code from Hans): \startluacode function document.addfunnyhyphen(tfmdata) local underscore = utf.byte("_") local char = tfmdata.characters[underscore] if not char then return end tfmdata.characters[0xFE000] = { width= 0, height = 0, depth= 0, commands = { { "right", -char.width }, { "down", char.depth }, { "slot", 1, underscore }, } } end utilities.sequencers.appendaction("aftercopyingcharacters", "after","document.addfunnyhyphen") \stopluacode \definehyphenationfeatures [underscore] [righthyphenchar="FE000] \setuphyphenation [method=traditional] \sethyphenationfeatures [underscore] \starttext \hsize\zeropoint hyphenation \stoptext Is there no way to define a language that hyphenates any pair of characters? Many thanks for your help, Pablo On 07/07/2017 10:28 PM, josephcan...@gmail.com wrote: > A probably quick and dirty « solution », which consists in inserting a > \discretionary node between each digit using some lua code. There are > mostly likely better solutions for this. > > Joseph > > \startluacode > > function sha(s) >local out = {} >for i = 1, s:len() do > out[#out + 1] = s:sub(i, i) >end >context(table.concat(out, '\\discretionary{_}{}{}')) > end > > \stopluacode > > \starttext > > \hyphenation > > \ctxlua{sha([[8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc257a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2]])} > > \stoptext > > > *De : *Pablo Rodriguez <mailto:oi...@gmx.es> > *Envoyé le :*jeudi 6 juillet 2017 12:00 > *À : *mailing list for ConTeXt users <mailto:ntg-context@ntg.nl> > *Objet :*[NTG-context] how to hyphenate SHA512? > > Dear list, > > I have the following sample: > > \starttext > \hsize\zeropoint > hyphenation > > 8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc25% > 7a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2 > \stoptext > > I plan to use underscore hyphenation. How can I get the SHA512 string > hyphenated in any of its points? > > Many thanks for your help, > > Pablo -- http://www.ousia.tk ___ 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 ___
Re: [NTG-context] how to hyphenate SHA512?
Many thanks for your reply, Joseph. The underscore I want to use should be placed below the previous character, such as in (code from Hans): \startluacode function document.addfunnyhyphen(tfmdata) local underscore = utf.byte("_") local char = tfmdata.characters[underscore] if not char then return end tfmdata.characters[0xFE000] = { width= 0, height = 0, depth= 0, commands = { { "right", -char.width }, { "down", char.depth }, { "slot", 1, underscore }, } } end utilities.sequencers.appendaction("aftercopyingcharacters", "after","document.addfunnyhyphen") \stopluacode \definehyphenationfeatures [underscore] [righthyphenchar="FE000] \setuphyphenation [method=traditional] \sethyphenationfeatures [underscore] \starttext \hsize\zeropoint hyphenation \stoptext Is there no way to define a language that hyphenates any pair of characters? Many thanks for your help, Pablo On 07/07/2017 10:28 PM, josephcan...@gmail.com wrote: > A probably quick and dirty « solution », which consists in inserting a > \discretionary node between each digit using some lua code. There are > mostly likely better solutions for this. > > Joseph > > \startluacode > > function sha(s) >local out = {} >for i = 1, s:len() do > out[#out + 1] = s:sub(i, i) >end >context(table.concat(out, '\\discretionary{_}{}{}')) > end > > \stopluacode > > \starttext > > \hyphenation > > \ctxlua{sha([[8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc257a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2]])} > > \stoptext > > > *De : *Pablo Rodriguez <mailto:oi...@gmx.es> > *Envoyé le :*jeudi 6 juillet 2017 12:00 > *À : *mailing list for ConTeXt users <mailto:ntg-context@ntg.nl> > *Objet :*[NTG-context] how to hyphenate SHA512? > > Dear list, > > I have the following sample: > > \starttext > \hsize\zeropoint > hyphenation > > 8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc25% > 7a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2 > \stoptext > > I plan to use underscore hyphenation. How can I get the SHA512 string > hyphenated in any of its points? > > Many thanks for your help, > > Pablo -- http://www.ousia.tk ___ 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] how to hyphenate SHA512?
A probably quick and dirty « solution », which consists in inserting a \discretionary node between each digit using some lua code. There are mostly likely better solutions for this. Joseph \startluacode function sha(s) local out = {} for i = 1, s:len() do out[#out + 1] = s:sub(i, i) end context(table.concat(out, '\\discretionary{_}{}{}')) end \stopluacode \starttext % \hsize\zeropoint \hyphenation %%8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc25% %%7a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2 \ctxlua{sha([[8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc257a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2]])} \stoptext De : Pablo Rodriguez Envoyé le :jeudi 6 juillet 2017 12:00 À : mailing list for ConTeXt users Objet :[NTG-context] how to hyphenate SHA512? Dear list, I have the following sample: \starttext \hsize\zeropoint hyphenation 8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc25% 7a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2 \stoptext I plan to use underscore hyphenation. How can I get the SHA512 string hyphenated in any of its points? Many thanks for your help, Pablo -- http://www.ousia.tk ___ 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 ___
[NTG-context] how to hyphenate SHA512?
Dear list, I have the following sample: \starttext \hsize\zeropoint hyphenation 8b2f3c087046c3943ace0dc4f958ef2138e58a51b40eef6fab6fa1aeb845cc25% 7a410ab1b914bc399b4293f31c76fc2c73e5be5ea4d329f9e6820984688efec2 \stoptext I plan to use underscore hyphenation. How can I get the SHA512 string hyphenated in any of its points? Many thanks for your help, Pablo -- http://www.ousia.tk ___ 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 ___