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
___________________________________________________________________________________