diff options
| -rw-r--r-- | luaotfload.dtx | 24 | 
1 files changed, 13 insertions, 11 deletions
| diff --git a/luaotfload.dtx b/luaotfload.dtx index feeeb49..fd6a8b1 100644 --- a/luaotfload.dtx +++ b/luaotfload.dtx @@ -668,19 +668,21 @@ local res1 = tex.pdfpageresources  local res2 = '/TransGs1<</ca 1/CA 1>>'  local function hex2dec(hex) -    return tonumber(hex, 16)/255 +    return format("%.3g", tonumber(hex, 16)/255)  end  local function hex_to_rgba(hex)      local r, g, b, a, push, pop, res3 -    if hex and #hex == 6 then -        _, _, r, g, b = hex:find('(..)(..)(..)') -    elseif #hex == 8 then -        _, _, r, g, b, a     = hex:find('(..)(..)(..)(..)') -        a                    = format('%1.g', hex2dec(a)) -        res3                 = format('/TransGs%g<</ca %g/CA %g>>', a, a, a) -        res2                 = format('%s%s', res2, res2:find(res3) and "" or res3) -        tex.pdfpageresources = format('%s/ExtGState<<%s>>', res1, res2) +    if hex then +        if #hex == 6 then +            _, _, r, g, b = hex:find('(..)(..)(..)') +        elseif #hex == 8 then +            _, _, r, g, b, a     = hex:find('(..)(..)(..)(..)') +            a                    = hex2dec(a) +            res3                 = format('/TransGs%g<</ca %g/CA %g>>', a, a, a) +            res2                 = format('%s%s', res2, res2:find(res3) and "" or res3) +            tex.pdfpageresources = format('%s/ExtGState<<%s>>', res1, res2) +        end      else          return nil      end @@ -688,10 +690,10 @@ local function hex_to_rgba(hex)      g = hex2dec(g)      b = hex2dec(b)      if a then -        push = format('/TransGs%g gs %.3g %.3g %.3g rg', a, r, g, b) +        push = format('/TransGs%g gs %s %s %s rg', a, r, g, b)          pop  = '0 g /TransGs1 gs'      else -        push = format('%.3g %.3g %.3g rg', r, g, b) +        push = format('%s %s %s rg', r, g, b)          pop  = '0 g'      end      return push, pop | 
