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

Reply via email to