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
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 ___________________________________________________________________________________
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, josephcanedo@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:oinos@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
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, josephcanedo@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:oinos@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 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
On 7/8/2017 10:20 AM, josephcanedo@gmail.com wrote: 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 -----------------------------------------------------------------
On 7/7/2017 10:28 PM, josephcanedo@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:oinos@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
--
___________________________________________________________________________________
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 -----------------------------------------------------------------
On 07/08/2017 01:32 PM, Hans Hagen wrote:
On 7/7/2017 10:28 PM, josephcanedo@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
participants (3)
-
Hans Hagen
-
josephcanedo@gmail.com
-
Pablo Rodriguez