summaryrefslogtreecommitdiff
path: root/tex/context/base/lpdf-mis.lua
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2014-05-03 13:55:34 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2014-05-03 13:55:34 +0200
commit624cbb5da392e9403984dd1cf368c0d408b1c2a8 (patch)
tree489c049ac849bb5bbce7d32e4df477872c58373d /tex/context/base/lpdf-mis.lua
parent088de88944c1f2254250bb448c7371a87ff7ee39 (diff)
downloadcontext-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.lua74
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 })