ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>,
	josephcanedo@gmail.com, Pablo Rodriguez <oinos@gmx.es>
Subject: Re: how to hyphenate SHA512?
Date: Sat, 8 Jul 2017 13:32:27 +0200	[thread overview]
Message-ID: <17536b2f-f433-37ea-fea6-1d0f73e63128@wxs.nl> (raw)
In-Reply-To: <595feee6.c5d51c0a.cf0df.3bea@mx.google.com>

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

  parent reply	other threads:[~2017-07-08 11:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-06 10:00 Pablo Rodriguez
2017-07-07 20:28 ` josephcanedo
2017-07-08  6:56   ` Pablo Rodriguez
2017-07-08  8:20     ` josephcanedo
2017-07-08 11:34       ` Hans Hagen
2017-07-08 11:32   ` Hans Hagen [this message]
2017-07-10 10:44     ` Pablo Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=17536b2f-f433-37ea-fea6-1d0f73e63128@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=josephcanedo@gmail.com \
    --cc=ntg-context@ntg.nl \
    --cc=oinos@gmx.es \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).