diff options
Diffstat (limited to 'tex')
| -rw-r--r-- | tex/context/base/mkii/cont-new.mkii | 2 | ||||
| -rw-r--r-- | tex/context/base/mkii/context.mkii | 2 | ||||
| -rw-r--r-- | tex/context/base/mkiv/cont-new.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/mkiv/context.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/mkiv/font-ext.lua | 2 | ||||
| -rw-r--r-- | tex/context/base/mkiv/font-otc.lua | 9 | ||||
| -rw-r--r-- | tex/context/base/mkiv/font-oup.lua | 50 | ||||
| -rw-r--r-- | tex/context/base/mkiv/font-pre.mkiv | 1 | ||||
| -rw-r--r-- | tex/context/base/mkiv/status-files.pdf | bin | 25727 -> 25716 bytes | |||
| -rw-r--r-- | tex/context/base/mkiv/status-lua.pdf | bin | 426070 -> 426097 bytes | |||
| -rw-r--r-- | tex/context/interface/mkiv/i-context.pdf | bin | 848082 -> 848080 bytes | |||
| -rw-r--r-- | tex/context/interface/mkiv/i-readme.pdf | bin | 60775 -> 60774 bytes | |||
| -rw-r--r-- | tex/generic/context/luatex/luatex-fonts-merged.lua | 49 | 
13 files changed, 69 insertions, 50 deletions
| diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index ef89a2e2b..9c02951b9 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@  %C therefore copyrighted by \PRAGMA. See mreadme.pdf for  %C details. -\newcontextversion{2017.07.16 12:08} +\newcontextversion{2017.07.17 00:20}  %D This file is loaded at runtime, thereby providing an  %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii index c8c537e1f..b6ffca4a5 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@  %D your styles an modules.  \edef\contextformat {\jobname} -\edef\contextversion{2017.07.16 12:08} +\edef\contextversion{2017.07.17 00:20}  %D For those who want to use this: diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 73554a80f..94b08824b 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@  %C therefore copyrighted by \PRAGMA. See mreadme.pdf for  %C details. -\newcontextversion{2017.07.16 12:08} +\newcontextversion{2017.07.17 00:20}  %D This file is loaded at runtime, thereby providing an excellent place for  %D hacks, patches, extensions and new features. diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index e20b29168..802d4fa29 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -41,7 +41,7 @@  %D up and the dependencies are more consistent.  \edef\contextformat {\jobname} -\edef\contextversion{2017.07.16 12:08} +\edef\contextversion{2017.07.17 00:20}  \edef\contextkind   {beta}  %D For those who want to use this: diff --git a/tex/context/base/mkiv/font-ext.lua b/tex/context/base/mkiv/font-ext.lua index d008cf235..8e0971ca6 100644 --- a/tex/context/base/mkiv/font-ext.lua +++ b/tex/context/base/mkiv/font-ext.lua @@ -747,6 +747,8 @@ local push  = { "push" }  local pop   = { "pop" }  local gray  = { "pdf", "origin", ".75 g" }  local black = { "pdf", "origin", "0 g"   } +-- local gray  = { "pdf", ".75 g" } +-- local black = { "pdf", "0 g"   }  local downcache = { } -- handy for huge cjk fonts  local rulecache = { } -- handy for huge cjk fonts diff --git a/tex/context/base/mkiv/font-otc.lua b/tex/context/base/mkiv/font-otc.lua index b7c296809..4a26820f3 100644 --- a/tex/context/base/mkiv/font-otc.lua +++ b/tex/context/base/mkiv/font-otc.lua @@ -405,7 +405,7 @@ local function addfeature(data,feature,specifications)          return coverage      end -    local prepare_single = prepare_pair +    local prepare_single = prepare_pair -- we could have a better test on the spec      local function prepare_chain(list,featuretype,sublookups)          -- todo: coveractions @@ -604,6 +604,7 @@ local function addfeature(data,feature,specifications)              local steps         = { }              local sublookups    = specification.lookups              local category      = nil +            --              if sublookups then                  local s = { }                  for i=1,#sublookups do @@ -640,6 +641,9 @@ local function addfeature(data,feature,specifications)                              steps[nofsteps] = register(coverage,featuretype,format,feature,nofsteps,descriptions,resources)                          end                      end +                    -- +                    setmetatableindex(steps,fonts.helpers.mergesteps) -- speedup +                    --                      s[i] = {                          [stepkey] = steps,                          nofsteps  = nofsteps, @@ -699,6 +703,9 @@ local function addfeature(data,feature,specifications)                          askedfeatures[k] = tohash(v)                      end                  end +                -- +                setmetatableindex(steps,fonts.helpers.mergesteps) -- speedup +                --                  if featureflags[1] then featureflags[1] = "mark" end                  if featureflags[2] then featureflags[2] = "ligature" end                  if featureflags[3] then featureflags[3] = "base" end diff --git a/tex/context/base/mkiv/font-oup.lua b/tex/context/base/mkiv/font-oup.lua index 9f4ded5b5..6084d1941 100644 --- a/tex/context/base/mkiv/font-oup.lua +++ b/tex/context/base/mkiv/font-oup.lua @@ -1376,7 +1376,7 @@ function readers.pack(data)                                          step.coverage = pack_normal(c)                                      else                                          for g1, d1 in next, c do -                                            if d1 ~= true then +                                            if d1 and d1 ~= true then                                                  c[g1] = pack_indexed(d1)                                              end                                          end @@ -2383,6 +2383,32 @@ function readers.compact(data)      end  end +local function mergesteps(t,k) +    if k == "merged" then +        local merged = { } +        for i=1,#t do +            local step     = t[i] +            local coverage = step.coverage +            for k in next, coverage do +                local m = merged[k] +                if m then +                    m[2] = i +                 -- m[#m+1] = step +                else +                    merged[k] = { i, i } +                 -- merged[k] = { step } +                end +            end +        end +        t.merged = merged +        return merged +    end +end + +if fonts.helpers then +    fonts.helpers.mergesteps = mergesteps +end +  function readers.expand(data)      if not data or data.expanded then          return @@ -2429,28 +2455,6 @@ function readers.expand(data)      -- about 15% on arabtype .. then moving the a test also saves a bit (even when      -- often a is not set at all so that one is a bit debatable -    local function mergesteps(t,k) -        if k == "merged" then -            local merged = { } -            for i=1,#t do -                local step     = t[i] -                local coverage = step.coverage -                for k in next, coverage do -                    local m = merged[k] -                    if m then -                        m[2] = i -                     -- m[#m+1] = step -                    else -                        merged[k] = { i, i } -                     -- merged[k] = { step } -                    end -                end -            end -            t.merged = merged -            return merged -        end -    end -      local function expandlookups(sequences)          if sequences then              -- we also need to do sublookups diff --git a/tex/context/base/mkiv/font-pre.mkiv b/tex/context/base/mkiv/font-pre.mkiv index ead98e391..d9e367a2b 100644 --- a/tex/context/base/mkiv/font-pre.mkiv +++ b/tex/context/base/mkiv/font-pre.mkiv @@ -736,6 +736,7 @@  \definefontfeature[f:oldstyle] [onum=yes]  \definefontfeature[f:tabular]  [tnum=yes]  \definefontfeature[f:superiors][sups=yes] +\definefontfeature[f:inferiors][subs=yes]  \definefontfeature[f:fractions][frac=yes]  \definefontfeature[f:kern]     [kern=yes]  \definefontfeature[f:kerns]    [kern=yes] diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdfBinary files differ index 46f3be41e..a233248a0 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdfBinary files differ index d29dcd024..52156f07e 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdfBinary files differ index f2b57f4a7..2cc4b4461 100644 --- a/tex/context/interface/mkiv/i-context.pdf +++ b/tex/context/interface/mkiv/i-context.pdf diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdfBinary files differ index 4d3ea3867..90c08a129 100644 --- a/tex/context/interface/mkiv/i-readme.pdf +++ b/tex/context/interface/mkiv/i-readme.pdf diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 1557ce22d..a8a7889ca 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@  -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua  -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date  : 07/16/17 12:08:43 +-- merge date  : 07/17/17 00:20:46  do -- begin closure to overcome local limits and interference @@ -18508,7 +18508,7 @@ function readers.pack(data)                      step.coverage=pack_normal(c)                    else                      for g1,d1 in next,c do -                      if d1~=true then +                      if d1 and d1~=true then                          c[g1]=pack_indexed(d1)                        end                      end @@ -19376,6 +19376,28 @@ function readers.compact(data)      report("%i steps of %i steps turned from pairs into kerns",kerned,allsteps)    end  end +local function mergesteps(t,k) +  if k=="merged" then +    local merged={} +    for i=1,#t do +      local step=t[i] +      local coverage=step.coverage +      for k in next,coverage do +        local m=merged[k] +        if m then +          m[2]=i +        else +          merged[k]={ i,i } +        end +      end +    end +    t.merged=merged +    return merged +  end +end +if fonts.helpers then +  fonts.helpers.mergesteps=mergesteps +end  function readers.expand(data)    if not data or data.expanded then      return @@ -19414,25 +19436,6 @@ function readers.expand(data)        end      end    end -  local function mergesteps(t,k) -    if k=="merged" then -      local merged={} -      for i=1,#t do -        local step=t[i] -        local coverage=step.coverage -        for k in next,coverage do -          local m=merged[k] -          if m then -            m[2]=i -          else -            merged[k]={ i,i } -          end -        end -      end -      t.merged=merged -      return merged -    end -  end    local function expandlookups(sequences)      if sequences then        for i=1,#sequences do @@ -29107,7 +29110,7 @@ local function addfeature(data,feature,specifications)      end      return coverage    end -  local prepare_single=prepare_pair +  local prepare_single=prepare_pair     local function prepare_chain(list,featuretype,sublookups)      local rules=list.rules      local coverage={} @@ -29332,6 +29335,7 @@ local function addfeature(data,feature,specifications)                steps[nofsteps]=register(coverage,featuretype,format,feature,nofsteps,descriptions,resources)              end            end +          setmetatableindex(steps,fonts.helpers.mergesteps)            s[i]={              [stepkey]=steps,              nofsteps=nofsteps, @@ -29390,6 +29394,7 @@ local function addfeature(data,feature,specifications)              askedfeatures[k]=tohash(v)            end          end +        setmetatableindex(steps,fonts.helpers.mergesteps)          if featureflags[1] then featureflags[1]="mark" end          if featureflags[2] then featureflags[2]="ligature" end          if featureflags[3] then featureflags[3]="base" end | 
