diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua')
-rw-r--r-- | Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua b/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua index c0262626181..577afedaa11 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua @@ -1,5 +1,5 @@ --- Packageversion: 0.50 --- Packagedate: 2019/01/04 +-- Packageversion: 0.60 +-- Packagedate: 2019/03/20 -- tagpdf.lua -- Ulrike Fischer @@ -52,8 +52,8 @@ functions uftag.trace.showspaces : boolean --]] -local mctypeattributeid = luatexbase.registernumber ("g__uftag_mc_type_attr") -local mccntattributeid = luatexbase.registernumber ("g__uftag_mc_cnt_attr") +local mctypeattributeid = luatexbase.registernumber ("l__uftag_mc_type_attr") +local mccntattributeid = luatexbase.registernumber ("l__uftag_mc_cnt_attr") local iwspaceattributeid = luatexbase.registernumber ("g__uftag_interwordspace_attr") local iwfontattributeid = luatexbase.registernumber ("g__uftag_interwordfont_attr") @@ -184,6 +184,13 @@ local function __uftag_mark_spaces (head) if uftag.trace.showspaces then __uftag_show_spacemark (head,glyph) end + elseif glyph.next and (glyph.next.id==KERN) and not inside_math then + local kern = glyph.next + if kern.next and (kern.next.id== GLUE) and (kern.next.width >0) + then + nodesetattribute(kern.next,iwspaceattributeid,1) + nodesetattribute(kern.next,iwfontattributeid,glyph.font) + end end elseif id == PENALTY then local glyph = n @@ -297,7 +304,8 @@ function uftag.func.mark_page_elements (box,mcpagecnt,mccntprev,mcopen,name,mcty end elseif n.id == LOCAL_PAR then -- local_par is ignored elseif n.id == PENALTY then -- penalty is ignored - elseif n.id == KERN then -- kern is ignored + elseif n.id == KERN then -- kern is ignored + uftag.trace.log ("SUBTYPE KERN ".. n.subtype,3) else -- math is currently only logged. -- we could mark the whole as math @@ -504,10 +512,24 @@ function uftag.func.store_mc_kid (mcnum,kid,page) tableinsert(uftag.mc[mcnum]["kids"], kidtable ) end -function uftag.func.mc_insert_kids (mcnum) +function uftag.func.mc_num_of_kids (mcnum) + local num = 0 + if uftag.mc[mcnum] and uftag.mc[mcnum]["kids"] then + texio.write_nl("XXXXXXXXXXXXXXXXX") + texio.write_nl(table.serialize(uftag.mc[mcnum]["kids"])) + num = #uftag.mc[mcnum]["kids"] + end + uftag.trace.log ("MC" .. mcnum .. "has " .. num .. "KIDS",4) + return num +end + +function uftag.func.mc_insert_kids (mcnum,single) if uftag.mc[mcnum] then uftag.trace.log("MC-KIDS test " .. mcnum,4) if uftag.mc[mcnum]["kids"] then + if #uftag.mc[mcnum]["kids"] > 1 and single==1 then + tex.sprint("[") + end for i,kidstable in ipairs( uftag.mc[mcnum]["kids"] ) do local kidnum = kidstable["kid"] local kidpage = kidstable["page"] @@ -515,6 +537,9 @@ function uftag.func.mc_insert_kids (mcnum) uftag.trace.log("MC" .. mcnum .. " insert KID " ..i.. " with num " .. kidnum .. " on page " .. kidpage.."/"..kidpageobjnum,3) tex.sprint(catlatex,"<</Type /MCR /Pg "..kidpageobjnum .. " 0 R /MCID "..kidnum.. ">> " ) end + if #uftag.mc[mcnum]["kids"] > 1 and single==1 then + tex.sprint("]") + end else uftag.trace.log("WARN! MC"..mcnum.." has no kids",0) end @@ -561,7 +586,7 @@ function uftag.func.fill_parent_tree_line (page) mcchunks=#uftag.page[page] uftag.trace.log("PAGETREE PAGE "..page.." has "..mcchunks.."+1 Elements ",3) for i=0,mcchunks do - uftag.trace.log("PAGETREE CHUNKS "..uftag.page[page][i],0) + uftag.trace.log("PAGETREE CHUNKS "..uftag.page[page][i],3) end if mcchunks == 0 then -- only one chunk so no need for an array @@ -576,7 +601,7 @@ function uftag.func.fill_parent_tree_line (page) numsentry = pdfpage .. " [" for i=0,mcchunks do local mcnum = uftag.page[page][i] - local structnum = uftag.mc[mcnum]["parent"] + local structnum = uftag.mc[mcnum]["parent"] or 0 local propname = "g__uftag_struct_"..structnum.."_prop" local objnum = uftag.tables[propname]["objnum"] or "XXXX" numsentry = numsentry .. " ".. objnum .. " 0 R" |