From: Hans Hagen <pragma@wxs.nl>
To: ntg-context@ntg.nl
Subject: Re: two issues with new hyphenator
Date: Tue, 09 Dec 2014 00:07:11 +0100 [thread overview]
Message-ID: <54862F1F.3060100@wxs.nl> (raw)
In-Reply-To: <5485D614.3050504@gmx.es>
On 12/8/2014 5:47 PM, Pablo Rodriguez wrote:
> On 12/06/2014 01:09 PM, Hans Hagen wrote:
>> On 12/6/2014 12:40 PM, Pablo Rodriguez wrote:
>>> On 12/06/2014 12:20 AM, Hans Hagen wrote:
>>>> On 12/5/2014 8:11 PM, Pablo Rodriguez wrote:
>>>>> [...]
>>>>> BTW, in your sample below, how can I get the underscore under the
>>>>> previous character? (Otherwise, the underscore has no use.)
>>>>
>>>> Hm, that was the idea of the example i sent earlier.
>> [...]
>
> Hans,
>
> many thanks for having fixed the issue with zeros and the new hyphenator.
>
> I have discovered that \registerhyphenationexception doesn’t allow names
> with first letter in capitals (only
> \registerhyphenationexception[Nietz-sche] will work).
>
> This differs from the \hyphenation command. Is this intended?
>
> And sorry for asking this again, but I need underscore hyphenation with
> the underscore character from the font and only for the \tex and
> \hyphenatedurl commands (not for the rest of the text).
>
> How could it be implemented in the following sample?
>
> \setupcolor[state=start]
> \setuplayout[backspace=95mm, width=middle]
> \definetype[TeXcode][option=TEX, compact=absolute]
> \unexpanded\def\tex#1{\normalexpanded{\TeXcode{\letterbackslash#1}}}
> \starttext
> \tex{thisisaverylongcommand}
> \hyphenatedurl{http://optimisticwayofthinking.optimist}
> \input knuth
> \stoptext
>
> Many thanks for your help again,
just a variant of the addfunyhyphen:
\startluacode
function document.addfunnyhyphen(tfmdata)
local underscore = utf.byte("_")
local char = tfmdata.characters[underscore]
-- logs.report("fonts","adding funny hyphen to font
%a",tfmdata.properties.fontname)
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
\definefontfeature[default][default][funnyhyphen=yes]
\definefontfeature[always] [always] [funnyhyphen=yes]
\definefontfeature[none] [none] [funnyhyphen=yes]
\definetype
[TeXcode]
[option=TEX,
compact=absolute,
lines=hyphenated]
\definehyphenationfeatures
[whatever]
[righthyphenchar="FE000]
\setuphyphenation
[method=traditional]
\unexpanded\def\TexC#1%
{\dontleavehmode\begingroup
\sethyphenationfeatures[whatever]%
% \prehyphenchar"FE000
\normalexpanded{\TeXcode{\letterbackslash#1}}%
\endgroup}
\starttext
\input tufte
\dorecurse{100}{\TexC{definebodyfont} }
\input tufte
\stoptext
we can add some of them but first i need to think about what slots to
use (shouldn't conflict with other private slots)
> Pablo
>
>> \startluacode
>>
>> local function addfunnyhyphen(tfmdata)
>> local exheight = tfmdata.parameters.xheight
>> local emwidth = tfmdata.parameters.quad
>> local width = emwidth
>> local height = exheight / 10
>> local depth = exheight / 2
>> tfmdata.characters[0xFE000] = {
>> width = 0,
>> height = 0,
>> depth = 0,
>> commands = {
>> { "right", -width },
>> { "down", depth },
>> { "rule", height, width },
>> }
>> }
>> end
>>
>> fonts.constructors.newfeatures("otf").register {
>> name = "funnyhyphen",
>> description = "funny hyphen",
>> manipulators = {
>> base = addfunnyhyphen,
>> node = addfunnyhyphen,
>> }
>> }
>>
>> \stopluacode
>>
>> \definefontfeature[default][default][funnyhyphen=yes]
>>
>> \starttext
>>
>> \prehyphenchar"FE000
>>
>> \hsize 1mm
>>
>> averylongword
>>
>> \stoptext
>>
>>> Many thanks for your help,
>>>
>>>
>>> Pablo
>>>
>>>
>>>>>> \definetype
>>>>>> [TeXcode]
>>>>>> [option=TEX,
>>>>>> compact=absolute,
>>>>>> lines=hyphenated]
>>>>>>
>>>>>> \definehyphenationfeatures
>>>>>> [whatever]
>>>>>> [righthyphenchar=_]
>>>>>>
>>>>>> \setuphyphenation
>>>>>> [method=traditional]
>>>>>>
>>>>>> \unexpanded\def\TexC#1%
>>>>>> {\dontleavehmode\begingroup
>>>>>> \sethyphenationfeatures[whatever]%
>>>>>> \normalexpanded{\TeXcode{\letterbackslash#1}}%
>>>>>> \endgroup}
>>>>>>
>>>>>> \starttext
>>>>>> \input tufte
>>>>>> \dorecurse{100}{\TexC{definebodyfont} }
>>>>>> \input tufte
>>>>>> \stoptext
--
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| 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://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
next prev parent reply other threads:[~2014-12-08 23:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-03 18:48 Pablo Rodriguez
2014-12-03 19:30 ` Hans Hagen
2014-12-04 19:21 ` Pablo Rodriguez
2014-12-04 21:00 ` Hans Hagen
2014-12-05 19:11 ` Pablo Rodriguez
2014-12-05 23:20 ` Hans Hagen
2014-12-06 11:40 ` Pablo Rodriguez
2014-12-06 12:09 ` Hans Hagen
2014-12-08 16:47 ` Pablo Rodriguez
2014-12-08 23:07 ` Hans Hagen [this message]
2014-12-10 19:15 ` Pablo Rodriguez
2014-12-10 21:58 ` Hans Hagen
2014-12-11 17:47 ` Pablo Rodriguez
2014-12-03 20:36 ` Hans Hagen
2014-12-05 18:59 ` 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=54862F1F.3060100@wxs.nl \
--to=pragma@wxs.nl \
--cc=ntg-context@ntg.nl \
/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).