diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2014-05-03 13:55:34 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2014-05-03 13:55:34 +0200 |
commit | 624cbb5da392e9403984dd1cf368c0d408b1c2a8 (patch) | |
tree | 489c049ac849bb5bbce7d32e4df477872c58373d /tex/context/base/lpdf-mis.lua | |
parent | 088de88944c1f2254250bb448c7371a87ff7ee39 (diff) | |
download | context-624cbb5da392e9403984dd1cf368c0d408b1c2a8.tar.gz |
2014-01-03 00:42:00
Diffstat (limited to 'tex/context/base/lpdf-mis.lua')
-rw-r--r-- | tex/context/base/lpdf-mis.lua | 74 |
1 files changed, 11 insertions, 63 deletions
diff --git a/tex/context/base/lpdf-mis.lua b/tex/context/base/lpdf-mis.lua index 43f6cb7e1..174d17427 100644 --- a/tex/context/base/lpdf-mis.lua +++ b/tex/context/base/lpdf-mis.lua @@ -43,7 +43,6 @@ local pdfflushobject = lpdf.flushobject local pdfflushstreamobject = lpdf.flushstreamobject local variables = interfaces.variables -local v_stop = variables.stop local positive = register(pdfliteral("/GSpositive gs")) local negative = register(pdfliteral("/GSnegative gs")) @@ -338,82 +337,31 @@ local map = { characters = "a", } --- local function featurecreep() --- local pages, lastconversion, list = structures.pages.tobesaved, nil, pdfarray() --- local getstructureset = structures.sets.get --- for i=1,#pages do --- local p = pages[i] --- if not p then --- return -- fatal error --- else --- local numberdata = p.numberdata --- if numberdata then --- local conversionset = numberdata.conversionset --- if conversionset then --- local conversion = getstructureset("structure:conversions",p.block,conversionset,1,"numbers") --- if conversion ~= lastconversion then --- lastconversion = conversion --- list[#list+1] = i - 1 -- pdf starts numbering at 0 --- list[#list+1] = pdfdictionary { S = pdfconstant(map[conversion] or map.numbers) } --- end --- end --- end --- if not lastconversion then --- lastconversion = "numbers" --- list[#list+1] = i - 1 -- pdf starts numbering at 0 --- list[#list+1] = pdfdictionary { S = pdfconstant(map.numbers) } --- end --- end --- end --- lpdf.addtocatalog("PageLabels", pdfdictionary { Nums = list }) --- end - local function featurecreep() - local pages = structures.pages.tobesaved - local list = pdfarray() - local getset = structures.sets.get - local stopped = false - local oldlabel = nil - local olconversion = nil + local pages, lastconversion, list = structures.pages.tobesaved, nil, pdfarray() + local getstructureset = structures.sets.get for i=1,#pages do local p = pages[i] if not p then return -- fatal error - end - local label = p.viewerprefix or "" - if p.status == v_stop then - if not stopped then - list[#list+1] = i - 1 -- pdf starts numbering at 0 - list[#list+1] = pdfdictionary { - P = pdfunicode(label), - } - stopped = true - end - oldlabel = nil - oldconversion = nil - stopped = false else local numberdata = p.numberdata - local conversion = nil - local number = p.number if numberdata then local conversionset = numberdata.conversionset if conversionset then - conversion = getset("structure:conversions",p.block,conversionset,1,"numbers") + local conversion = getstructureset("structure:conversions",p.block,conversionset,1,"numbers") + if conversion ~= lastconversion then + lastconversion = conversion + list[#list+1] = i - 1 -- pdf starts numbering at 0 + list[#list+1] = pdfdictionary { S = pdfconstant(map[conversion] or map.numbers) } + end end end - conversion = conversion and map[conversion] or map.numbers - if number == 1 or oldlabel ~= label or oldconversion ~= conversion then + if not lastconversion then + lastconversion = "numbers" list[#list+1] = i - 1 -- pdf starts numbering at 0 - list[#list+1] = pdfdictionary { - S = pdfconstant(conversion), - St = number, - P = label ~= "" and pdfunicode(label) or nil, - } + list[#list+1] = pdfdictionary { S = pdfconstant(map.numbers) } end - oldlabel = label - oldconversion = conversion - stopped = false end end lpdf.addtocatalog("PageLabels", pdfdictionary { Nums = list }) |