diff options
author | Hans Hagen <pragma@wxs.nl> | 2019-09-27 20:24:34 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2019-09-27 20:24:34 +0200 |
commit | 0a5f59a9aa25b3de7e9659b39ad201aaf7eb5a67 (patch) | |
tree | a652bb083d6bc6a9b6309908dd5d09a539ac3859 /tex/context/base/mkiv/driv-shp.lua | |
parent | 58c7c9288160407c874930aac789ef6ef3faa6b5 (diff) | |
download | context-0a5f59a9aa25b3de7e9659b39ad201aaf7eb5a67.tar.gz |
2019-09-27 18:10:00
Diffstat (limited to 'tex/context/base/mkiv/driv-shp.lua')
-rw-r--r-- | tex/context/base/mkiv/driv-shp.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/driv-shp.lua b/tex/context/base/mkiv/driv-shp.lua index ae99d84ce..8fe2b8483 100644 --- a/tex/context/base/mkiv/driv-shp.lua +++ b/tex/context/base/mkiv/driv-shp.lua @@ -150,6 +150,7 @@ local updatefontstate local pushorientation local poporientation local flushcharacter +local flushfontchar local flushrule local flushliteral local flushsetmatrix @@ -241,6 +242,32 @@ local function flush_vf_packet(pos_h,pos_v,pos_r,font,char,data,factor,vfcommand pos_h = pos_h + flushchar(font,char,font,chr,f,e) end end + elseif command == "use" then + local index = packet[2] + if index then + local fnt + if index == 0 then + fnt = font + else + local okay = fonts and fonts[index] + if okay then + fnt = okay.id + end + end + if fnt then + -- not efficient but ok for now as experiment + local d = characters[fnt] + if d then + for i=3,#packet do + local chr = packet[i] + local dat = d[chr] + if dat then + flushfontchar(fnt,chr,dat) + end + end + end + end + end elseif command == "right" then local h = packet[2] -- * siz if factor ~= 0 and h ~= 0 then @@ -1118,6 +1145,7 @@ function drivers.converters.lmtx(driver,box,smode,objnum,specification) poporientation = flushers.poporientation flushcharacter = flushers.character + flushfontchar = flushers.fontchar flushrule = flushers.rule flushsimplerule = flushers.simplerule flushspecial = flushers.special |