From cef5e3d62b5db1988c912a1166e26e40f2c0d4ae Mon Sep 17 00:00:00 2001 From: Marius Date: Sun, 23 Sep 2012 14:00:19 +0300 Subject: beta 2012.09.23 12:40 --- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4140 -> 4146 bytes tex/context/base/context-version.png | Bin 106731 -> 106782 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/font-sol.lua | 45 ++++++++++++++------- tex/context/base/lpdf-fmt.lua | 1 + tex/context/base/node-tra.lua | 2 +- tex/context/base/status-files.pdf | Bin 24577 -> 24590 bytes tex/context/base/status-lua.pdf | Bin 195092 -> 195090 bytes tex/context/base/typo-mar.mkiv | 2 +- tex/context/test/pdf-x1a-2001.mkiv | 2 +- tex/context/test/pdf-x1a-2003.mkiv | 2 +- tex/context/test/pdf-x3-2002.mkiv | 2 +- tex/context/test/pdf-x3-2003.mkiv | 2 +- tex/context/test/pdf-x4.mkiv | 2 +- tex/context/test/pdf-x4p.mkiv | 4 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 19 files changed, 46 insertions(+), 28 deletions(-) (limited to 'tex') diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index d7edc921c..cf8f6e8fc 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2012.09.21 20:58} +\newcontextversion{2012.09.23 12:40} %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/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 2f90130c7..1903c8021 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2012.09.21 20:58} +\newcontextversion{2012.09.23 12:40} %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/context-version.pdf b/tex/context/base/context-version.pdf index e232cfeb6..5704374eb 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png index 048d04143..cd12a10ca 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index 0aab24aad..ba9e7146b 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2012.09.21 20:58} +\edef\contextversion{2012.09.23 12:40} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index d19d90a93..36401fbd3 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2012.09.21 20:58} +\edef\contextversion{2012.09.23 12:40} %D For those who want to use this: diff --git a/tex/context/base/font-sol.lua b/tex/context/base/font-sol.lua index 1c341129c..b44594349 100644 --- a/tex/context/base/font-sol.lua +++ b/tex/context/base/font-sol.lua @@ -53,8 +53,6 @@ local free_node = node.free local free_nodelist = node.flush_list local has_attribute = node.has_attribute local set_attribute = node.set_attribute -local new_node = node.new -local copy_node = node.copy local copy_nodelist = node.copy_list local traverse_nodes = node.traverse local traverse_ids = node.traverse_id @@ -89,6 +87,8 @@ local usernodeids = nodepool.userids local new_textdir = nodepool.textdir local new_usernumber = nodepool.usernumber +local new_glue = nodepool.glue +local new_leftskip = nodepool.leftskip local starttiming = statistics.starttiming local stoptiming = statistics.stoptiming @@ -355,7 +355,7 @@ function splitters.split(head) font = font } if trace_split then - report_splitters("cached %4i: font: %s, attribute: %s, word: %s, direction: %s", + report_splitters("cached %4i: font: %s, attribute: %s, direction: %s, word: %s", n, font, attribute, nodes_to_utf(list,true), rlmode and "r2l" or "l2r") end cache[n] = c @@ -439,7 +439,7 @@ local function collect_words(list) -- can be made faster for attributes while current do -- todo: disc and kern local id = current.id - if id == glyph_code then + if id == glyph_code or id == disc_code then local a = has_attribute(current,a_word) if a then if a == index then @@ -467,7 +467,11 @@ local function collect_words(list) -- can be made faster for attributes index = nil first = nil elseif trace_split then - report_splitters("skipped: %s",utfchar(current.char)) + if id == disc_code then + report_splitters("skipped: disc node") + else + report_splitters("skipped: %s",utfchar(current.char)) + end end elseif id == kern_code and (current.subtype == fontkern_code or has_attribute(current,a_fontkern)) then if first then @@ -506,7 +510,7 @@ local function collect_words(list) -- can be made faster for attributes end end end - return words -- check for empty (elsewhere) + return words, list -- check for empty (elsewhere) end -- we could avoid a hpack but hpack is not that slow @@ -524,7 +528,6 @@ local function doit(word,list,best,width,badness,line,set,listdir) h = word[2] t = word[3] end - if splitwords then -- there are no lines crossed in a word else @@ -540,10 +543,10 @@ local function doit(word,list,best,width,badness,line,set,listdir) end if not ok then report_solutions("skipping hyphenated word (for now)") + -- todo: mark in words as skipped, saves a bit runtime return false, changed end end - local original, attribute, direction = found.original, found.attribute, found.direction local solution = solutions[attribute] local features = solution and solution[set] @@ -596,10 +599,13 @@ local function doit(word,list,best,width,badness,line,set,listdir) end local last = find_node_tail(first) -- replace [u]h->t by [u]first->last - local next, prev = t.next, h.prev - prev.next, first.prev = first, prev + local prev = h.prev + local next = t.next + prev.next = first + first.prev = prev if next then - last.next, next.prev = next, last + last.next = next + next.prev = last end -- check new pack local temp, b = repack_hlist(list,width,'exactly',listdir) @@ -608,9 +614,11 @@ local function doit(word,list,best,width,badness,line,set,listdir) report_optimizers("line %s, badness before: %s, after: %s, criterium: %s -> quit",line,badness,b,criterium) end -- remove last insert - prev.next, h.prev = h, prev + prev.next = h + h.prev = prev if next then - t.next, next.prev = next, t + t.next = next + next.prev = t else t.next = nil end @@ -622,7 +630,11 @@ local function doit(word,list,best,width,badness,line,set,listdir) end -- free old h->t t.next = nil - free_nodelist(h) + free_nodelist(h) -- somhow fails + if not encapsulate then + word[2] = first + word[3] = last + end changed, badness = changed + 1, b end if b <= criterium then @@ -731,6 +743,11 @@ function splitters.optimize(head) -- report_splitters("before: [%s] => %s",current.dir,nodes.tosequence(current.list,nil)) line = line + 1 local sign, dir, list, width = current.glue_sign, current.dir, current.list, current.width +if not encapsulate and list.id == glyph_code then + -- nasty .. we always assume a prev being there .. future luatex will always have a leftskip set + -- current.list, list = insert_node_before(list,list,new_glue(0)) + current.list, list = insert_node_before(list,list,new_leftskip(0)) +end local temp, badness = repack_hlist(list,width,'exactly',dir) -- it would be nice if the badness was stored in the node if badness > 0 then if sign == 0 then diff --git a/tex/context/base/lpdf-fmt.lua b/tex/context/base/lpdf-fmt.lua index 626e66d3c..859a489ef 100644 --- a/tex/context/base/lpdf-fmt.lua +++ b/tex/context/base/lpdf-fmt.lua @@ -629,6 +629,7 @@ lpdf.registerdocumentfinalizer(flushoutputintents,2,"output intents") function codeinjections.setformat(s) local format = s.format or "" local level = tonumber(s.level) + local intent = s.intent or "" local profile = s.profile or "" local option = s.option or "" local filename = s.file or "" diff --git a/tex/context/base/node-tra.lua b/tex/context/base/node-tra.lua index 4ff6c1033..387dd99a6 100644 --- a/tex/context/base/node-tra.lua +++ b/tex/context/base/node-tra.lua @@ -557,7 +557,7 @@ local function listtoutf(h,joiner,textonly,last) mid and listtoutf(mid,joiner,textonly) or "" ) elseif textonly then - if id == glue_code and h.width > 0 then + if id == glue_code and h.spec and h.spec.width > 0 then w[#w+1] = " " end else diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index e5263bffa..68184675b 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 6a8332f63..a2d807b15 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/typo-mar.mkiv b/tex/context/base/typo-mar.mkiv index 4db0a9b66..08d8b0cf0 100644 --- a/tex/context/base/typo-mar.mkiv +++ b/tex/context/base/typo-mar.mkiv @@ -243,7 +243,7 @@ \hsize\currentmargindatawidth \raggedcommand \ifx\currentmargindatastrut\empty \else - \dosetupstrut[\currentmargindatastrut]% + \synchronizestrut\currentmargindatastrut \fi \begstrut \strc_references_flush_destination_nodes diff --git a/tex/context/test/pdf-x1a-2001.mkiv b/tex/context/test/pdf-x1a-2001.mkiv index a304c8963..f1c5ef531 100644 --- a/tex/context/test/pdf-x1a-2001.mkiv +++ b/tex/context/test/pdf-x1a-2001.mkiv @@ -1,6 +1,6 @@ % PDF/X-1a:2001 -\enabletrackers[backend.pdfx] +\enabletrackers[backend.format,backend.variables] \setupbackend [format=PDF/X-1a:2001, diff --git a/tex/context/test/pdf-x1a-2003.mkiv b/tex/context/test/pdf-x1a-2003.mkiv index 89a0f6066..7fbec5acb 100644 --- a/tex/context/test/pdf-x1a-2003.mkiv +++ b/tex/context/test/pdf-x1a-2003.mkiv @@ -1,6 +1,6 @@ % PDF/X-1a:2003 -\enabletrackers[backend.pdfx] +\enabletrackers[backend.format,backend.variables] \setupbackend [format=PDF/X-1a:2003, diff --git a/tex/context/test/pdf-x3-2002.mkiv b/tex/context/test/pdf-x3-2002.mkiv index 1e2310135..be757212e 100644 --- a/tex/context/test/pdf-x3-2002.mkiv +++ b/tex/context/test/pdf-x3-2002.mkiv @@ -1,6 +1,6 @@ % PDF/X-3:2002 -\enabletrackers[backend.pdfx] +\enabletrackers[backend.format,backend.variables] \setupbackend [format=PDF/X-3:2002, diff --git a/tex/context/test/pdf-x3-2003.mkiv b/tex/context/test/pdf-x3-2003.mkiv index bedcde527..cbebe1033 100644 --- a/tex/context/test/pdf-x3-2003.mkiv +++ b/tex/context/test/pdf-x3-2003.mkiv @@ -1,6 +1,6 @@ % PDF/X-3:2003 -\enabletrackers[backend.pdfx] +\enabletrackers[backend.format,backend.variables] \setupbackend [format=PDF/X-3:2003, diff --git a/tex/context/test/pdf-x4.mkiv b/tex/context/test/pdf-x4.mkiv index 0566475b5..062de3b34 100644 --- a/tex/context/test/pdf-x4.mkiv +++ b/tex/context/test/pdf-x4.mkiv @@ -2,7 +2,7 @@ % \nopdfcompression -\enabletrackers[backend.pdfx] +\enabletrackers[backend.format,backend.variables] \setupbackend [format=PDF/X-4, diff --git a/tex/context/test/pdf-x4p.mkiv b/tex/context/test/pdf-x4p.mkiv index 9ec8897f8..bfee0b238 100644 --- a/tex/context/test/pdf-x4p.mkiv +++ b/tex/context/test/pdf-x4p.mkiv @@ -1,10 +1,10 @@ % PDF/X-4p -\enabletrackers[backend.pdfx] +\enabletrackers[backend.format,backend.variables] \setupbackend [format=PDF/X-4p, - intent=ISOcoated_v2_eci.icc, + intent={ISO Coated v2 (ECI)}, profile=sRGB.icc] % test for default colorspace \input pdf-x-common.mkiv diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 323c70c3e..36a74ff01 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 : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 09/21/12 20:58:19 +-- merge date : 09/23/12 12:40:12 do -- begin closure to overcome local limits and interference -- cgit v1.2.3