Thank you for the prompt solution!

The enhancers.patches solution does not work with ConTeXt from TeXlive
2017.  I suspect that the font name matching on "^ebgaramond.*" is
incorrect, because the patch function is never called (MWE and log
attached).

If I wanted to do this in ConTeXt I'd use the feature approach but
unfortunately the unicode-math package for LaTeX gives no option to set
mode=base to have features applied in math mode :/

Cheers, Henri

On 02/27/2018 09:34 PM, Hans Hagen wrote:
> On 2/26/2018 11:54 PM, Henri Menke wrote:
>> Dear list,
>>
>> The EB Garamond font is lacking the ϵ glyph but it contains ε.  So
>> naturally you
>> want to remap ϵ to ε.  It cannot be done using font features because
>> the the
>> slot 0x03B5 (ϵ) is just missing, so substitution will not kick in.  I
>> tried
>> adapting the mechanism to add uppercase greek to Latin Modern Math
>> from lm-
>> math.lfg.  Unfortunately, my code is not working.  What am I doing wrong?
>>
>> Cheers, Henri
>>
>> ---
>>
>> \startluacode
>> local patches = fonts.handlers.otf.enhancers.patches
>>
>> local function patch(data,filename)
>>      local uni_to_ind = data.map.map
>>      if not uni_to_ind[0x3F5] then
>>          patches.report("add ε for ϵ")
>>          uni_to_ind[0x3F5] = uni_to_ind[0x3B5]
>>      end
>> end
>>
>> patches.register("after","missing glyphs","^ebgaramond*", patch)
>> \stopluacode
>>
>> \setupbodyfont[ebgaramond]
>>
>> \starttext
>>
>> ε % = 03B5
>> ϵ % = 03F5
>>
>> \stoptext
> if you want to use the patch mechanism:
> 
> \startluacode
> local function patch(data,filename)
>     data.descriptions[utf.byte("ϵ")] = data.descriptions[utf.byte("ε")]
> end
> 
> fonts.handlers.otf.enhancers.patches.register("after","missing
> glyphs","^ebgaramond*", patch)
> \stopluacode
> 
> \setupbodyfont[ebgaramond]
> 
> \starttext
> 
> ϵ ε
> 
> \stoptext
> 
> or when you want to buse features:
> 
> \startluacode
>     fonts.handlers.otf.addfeature {
>         name    = "ccmp", -- or "ebhack"
>         type    = "substitution",
>         nocheck = true,
>         data    = {
>             ["ϵ"] = "ε",
>         }
>     }
> \stopluacode
> 
> % \definefontfeature[default][default][ebhack=yes]
> 
> \setupbodyfont[ebgaramond]
> 
> \starttext
> 
> ϵ ε
> 
> \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
> -----------------------------------------------------------------

open source     > level 1, order 1, name '/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/cont-yes.mkiv'
system          > 
system          > ConTeXt  ver: 2017.05.15 21:48 MKIV beta  fmt: 2017.12.29  int: english/english
system          > 
system          > 'cont-new.mkiv' loaded
open source     > level 2, order 2, name '/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/cont-new.mkiv'
close source    > level 2, order 2, name '/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/cont-new.mkiv'
system          > files > jobname 'test', input './test.mkvi', result 'test'
fonts           > latin modern fonts are not preloaded
languages       > language 'en' is active
interface       > macros > processed mkvi file '/home/user/TeX/test.mkvi', delta 0
interface       > macros > processed mkvi file '/home/user/TeX/test.mkvi', delta 0
open source     > level 2, order 3, name '/home/user/TeX/test.mkvi'
open source     > level 3, order 4, name '/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv'
close source    > level 3, order 4, name '/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv'
open source     > level 3, order 5, name '/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv'
close source    > level 3, order 5, name '/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv'
open source     > level 3, order 6, name '/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv'
close source    > level 3, order 6, name '/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv'
backend         > xmp > using file '/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml'
pages           > flushing realpage 1, userpage 1, subpage 1
close source    > level 2, order 6, name '/home/user/TeX/test.mkvi'
close source    > level 1, order 6, name '/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/cont-yes.mkiv'

system          > structure > start used structure

used structure  > text: test

system          > structure > stop used structure


system          > files > start used files

used file       >    1: filename=cont-yes.mkiv filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/cont-yes.mkiv usedmethod=database
used file       >    2: filename=publ-imp-default.lua filetype=lua foundname=/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/publ-imp-default.lua usedmethod=database
used file       >    3: filename=cont-new.mkiv filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/cont-new.mkiv usedmethod=database
used file       >    4: filename=lang-us.lua filetype=lua foundname=/usr/local/texlive/2017/texmf-dist/tex/context/patterns/mkiv/lang-us.lua usedmethod=database
used file       >    5: filename=/home/user/TeX/test.mkvi foundname=/home/user/TeX/test.mkvi usedmethod=direct
used file       >    6: filename=type-imp-ebgaramond.mkiv filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv usedmethod=database
used file       >    7: filename=ebgaramond.lfg filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/ebgaramond.lfg usedmethod=database
used file       >    8: filename=type-imp-dejavu.mkiv filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv usedmethod=database
used file       >    9: filename=type-imp-texgyre.mkiv filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv usedmethod=database
used file       >   10: filename=EBGaramond12-Regular filetype=otf format=otf foundname=/usr/local/texlive/2017/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Regular.otf usedmethod=database
used file       >   11: filename=texgyrebonum-math.otf filetype=otf format=otf foundname=/usr/local/texlive/2017/texmf-dist/fonts/opentype/public/tex-gyre-math/texgyrebonum-math.otf usedmethod=database
used file       >   12: filename=bonum-math.lfg filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/fonts/mkiv/bonum-math.lfg usedmethod=database
used file       >   13: filename=lpdf-pdx.xml filetype=tex foundname=/usr/local/texlive/2017/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml usedmethod=database

system          > files > stop used files


system          > options > start commandline options

used option     > currentrun="1"
used option     > engine="luajittex"
used option     > fulljobname="./test.mkvi"
used option     > input="./test.mkvi"
used option     > kindofrun="1"
used option     > maxnofruns="9"
used option     > no-parse-first-line="true"

system          > options > stop commandline options

system          > options > start commandline files

used file       >    1: ./test.mkvi

system          > options > stop commandline files


mkiv lua stats  > used config file: selfautoparent:/texmfcnf.lua;selfautoparent:/texmf-dist/web2c/texmfcnf.lua
mkiv lua stats  > used cache path: readable+writable: '/home/user/.texlive2017/texmf-var/luatex-cache/context/a86c089b384a3076dc514ba966a1fac9'
mkiv lua stats  > resource resolver: loadtime 0.227 seconds, 0 scans with scantime 0.000 seconds, 0 shared scans, 13 found files, scanned paths: <none>
mkiv lua stats  > stored bytecode data: 404 modules (0.499 sec), 91 tables (0.016 sec), 495 chunks (0.515 sec)
mkiv lua stats  > traced context: maxstack: 1232, freed: 1, unreachable: 1231
mkiv lua stats  > cleaned up reserved nodes: 49 nodes, 9 lists of 447
mkiv lua stats  > node memory usage: 2 glue, 2 penalty, 9 attribute, 49 glue_spec, 3 attribute_list, 2 temp, 2 user_defined
mkiv lua stats  > node list callback tasks: 7 unique task lists, 6 instances (re)created, 32 calls
mkiv lua stats  > used backend: pdf (backend for directly generating pdf output)
mkiv lua stats  > jobdata time: 0.001 seconds saving, 0.000 seconds loading
mkiv lua stats  > callbacks: 152 direct, 711 indirect, 863 total
mkiv lua stats  > randomizer: resumed with value 0.72594127791279
mkiv lua stats  > positions: 2 collected, 2 regular, 0 special
mkiv lua stats  > loaded patterns: en::2, load time: 0.000
mkiv lua stats  > result saved in file: test.pdf, compresslevel 3, objectcompresslevel 3
mkiv lua stats  > loaded fonts: 2 files: ebgaramond12-regular.otf, texgyrebonum-math.otf
mkiv lua stats  > font engine: otf 3.029, afm 1.512, tfm 1.000, 4 instances, load time 0.150 seconds 
mkiv lua stats  > used platform: linux-64, type: unix, binary subtree: bin
mkiv lua stats  > luatex banner: this is luajittex, version 1.0.4 (tex live 2017)
mkiv lua stats  > control sequences: 44567 of 65536 + 100000
mkiv lua stats  > lua properties: engine: luajit, used memory: 66 MB (ctx: 0 MB), hash type: lua51, hash chars: min(64,40), symbol mask: utf (τεχ)
mkiv lua stats  > runtime: 0.729 seconds, 1 processed pages, 1 shipped pages, 1.372 pages/second

\documentclass{standalone}
\pagestyle{empty}
\usepackage{array}
\usepackage{multirow}

\begin{document}

\begin{tabular}{|p{3cm}|p{6cm}|m{6cm}|c|c|c|}\hline\hline
\textbf{Phase} & \textbf{Methoden} & \textbf{Auswahl} \\
\hline
\multirow{2}{*}{Define}
        & Project Charter  &  Project Charter\\
        & SIPOC &  \\
\hline
\multirow{4}{*}{Measure}
        & PFA  &  PFA\\
        & MSA &  \\
        & REFA  &  REFA\\
        & MTM &  \\
\hline
\multirow{3}{*}{Analyze}
        & Ishikawa-Diagramm  &  Ishikawa-Diagramm\\
        & FMEA &  \\
        & ANOVA  &  ANOVA\\
\hline\hline 
\end{tabular}

\end{document}
___________________________________________________________________________________
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