On 10/10/2018 8:46 AM, Marco Patzer wrote:
On Tue, 9 Oct 2018 23:36:32 +0200
Hans Hagen <j.ha...@xs4all.nl> wrote:

On 10/9/2018 10:40 PM, Marco Patzer wrote:
Hi!

I have two questions regarding addressing glyphs in Lua:

1) How to address glyphs in slots as e.g. U+F0029?
2) How to address glyphs by name?

Use:

\startluacode
    fonts.handlers.otf.addfeature {
      name = "foo",
      type = "substitution",
      data      = { [0xF0029] = 0xF0030 }, -- ← doesn't work
    }
\stopluacode
this is a mnwe .. make a mwe with at least a font

Sorry, here it is:

\startluacode
   fonts.handlers.otf.addfeature {
     name = "phone",
     type = "substitution",
     data      = { [0x260E] = 0xF003A }, --  doens't work
   }
\stopluacode

\definefontfeature [phone] [phone=yes]

\definefallbackfamily [mainface] [serif] [MarVoSym] [range=0x260E,
features=phone] \definefontfamily     [mainface] [serif] [TeX Gyre
Pagella] \setupbodyfont        [mainface]

\starttext
   substitution: \utfchar{"260E} %% black telephone
   \blank direct:
   \resolvedglyphdirect {name:marvosym}{n:Mobilefone} %% works
\stoptext

%% glyph name and slot taken from
%%
%% \usemodule [fnt-10]
%% \starttext
%%   \ShowCompleteFont{name:marvosym}{10pt}{1}
%% \stoptext

... anyway, glyph names should normally work (given that they are
sane ones, because in context we strip some)

The question is how to input the name in the Lua code (here:
“Mobilefone”). And it seems like substitutions don't work beyond
0xFFFF.
(1) use glyph names, so Telefon here
(2) enable node mode
(3) force a nocheck

(in a next beta i'll also support the P<original private> lookup for feature extensions)

\startluacode
fonts.handlers.otf.addfeature {
    name    = "phone",
    type    = "substitution",
    nocheck = true,
    data    = { [0x260E] = "Telefon" },
}
\stopluacode

\definefontfeature [phone] [mode=node,phone=yes]

\definefallbackfamily [mainface] [serif] [MarVoSym] [range=0x260E, features=phone]
\definefontfamily     [mainface] [serif] [TeX Gyre Pagella]
\setupbodyfont        [mainface]

\starttext
  substitution: \utfchar{"260E}                      %% black telephone
  \blank direct:
  \resolvedglyphdirect {name:marvosym}{n:Mobilefone} %% works
  \resolvedglyphdirect {name:marvosym}{n:PF003A}     %% works
  \resolvedglyphdirect {name:marvosym}{n:Telefon}    %% works
\stoptext


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