diff options
| -rw-r--r-- | tex/context/base/cont-new.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/context-version.pdf | bin | 4065 -> 4065 bytes | |||
| -rw-r--r-- | tex/context/base/context.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/font-con.lua | 8 | ||||
| -rw-r--r-- | tex/context/base/lxml-ini.mkiv | 155 | ||||
| -rw-r--r-- | tex/context/base/lxml-tex.lua | 78 | ||||
| -rw-r--r-- | tex/context/base/publ-ini.lua | 14 | ||||
| -rw-r--r-- | tex/context/base/publ-ini.mkiv | 1 | ||||
| -rw-r--r-- | tex/context/base/status-files.pdf | bin | 24601 -> 24601 bytes | |||
| -rw-r--r-- | tex/context/base/status-lua.pdf | bin | 242955 -> 242950 bytes | |||
| -rw-r--r-- | tex/context/base/tabl-ntb.mkiv | 27 | ||||
| -rw-r--r-- | tex/context/base/type-imp-cambria.mkiv | 8 | ||||
| -rw-r--r-- | tex/generic/context/luatex/luatex-fonts-merged.lua | 10 | 
13 files changed, 196 insertions, 109 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index e0c78f53f..a6dffe816 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{2014.05.12 16:53} +\newcontextversion{2014.05.13 00:04}  %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 Binary files differindex 6b0f52399..46eb10bf8 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 247c79ad7..16f45aac2 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@  %D up and the dependencies are more consistent.  \edef\contextformat {\jobname} -\edef\contextversion{2014.05.12 16:53} +\edef\contextversion{2014.05.13 00:04}  \edef\contextkind   {beta}  %D For those who want to use this: diff --git a/tex/context/base/font-con.lua b/tex/context/base/font-con.lua index a34044f0b..aca705523 100644 --- a/tex/context/base/font-con.lua +++ b/tex/context/base/font-con.lua @@ -599,7 +599,7 @@ function constructors.scale(tfmdata,specification)              -- basemode hack (we try to catch missing tounicodes, e.g. needed for ssty in math cambria)              local c = changed[unicode]              if c then -local ligatures = character.ligatures +                local ligatures = character.ligatures -- the original ligatures (as we cannot rely on remapping)                  description = descriptions[c] or descriptions[unicode] or character                  character = characters[c] or character                  index = description.index or c @@ -611,9 +611,9 @@ local ligatures = character.ligatures                          touni = tounicode[i] -- nb: index!                      end                  end -if ligatures and not character.ligatures then -    character.ligatures = ligatures -end +                if ligatures and not character.ligatures then +                    character.ligatures = ligatures -- the original targets (for now at least.. see libertine smallcaps) +                end              else                  description = descriptions[unicode] or character                  index = description.index or unicode diff --git a/tex/context/base/lxml-ini.mkiv b/tex/context/base/lxml-ini.mkiv index 239fe4ac0..752e315da 100644 --- a/tex/context/base/lxml-ini.mkiv +++ b/tex/context/base/lxml-ini.mkiv @@ -27,77 +27,78 @@  \unprotect % todo \!!bs \!!es where handy (slower) -\def\ctxlxml               #1{\ctxlua{lxml.#1}} - -\def\xmlmain               #1{\ctxlxml{main("#1")}} -\def\xmlmatch              #1{\ctxlxml{match("#1")}} -\def\xmlall              #1#2{\ctxlxml{all("#1","#2")}} -\def\xmlatt              #1#2{\ctxlxml{att("#1","#2")}} -\def\xmlattdef         #1#2#3{\ctxlxml{att("#1","#2","#3")}} -\def\xmlchainatt         #1#2{\ctxlxml{chainattribute("#1","/","#2")}} -\def\xmlchainattdef    #1#2#3{\ctxlxml{chainattribute("#1","/","#2","#3")}} -\def\xmlattribute      #1#2#3{\ctxlxml{attribute("#1","#2","#3")}} -\def\xmlattributedef #1#2#3#4{\ctxlxml{attribute("#1","#2","#3","#4")}} -\def\xmlcommand        #1#2#3{\ctxlxml{command("#1","#2","#3")}} -\def\xmlconcat         #1#2#3{\ctxlxml{concat("#1","#2",[[\detokenize{#3}]])}} -\def\xmlconcatrange#1#2#3#4#5{\ctxlxml{concatrange("#1","#2","#3","#4",[[\detokenize{#5}]])}} -\def\xmlcount            #1#2{\ctxlxml{count("#1","#2")}} -\def\xmldelete           #1#2{\ctxlxml{delete("#1","#2")}} -\def\xmldirectives         #1{\ctxlxml{directives.setup("#1")}} -\def\xmldirectivesbefore   #1{\ctxlxml{directives.before("#1")}} -\def\xmldirectivesafter    #1{\ctxlxml{directives.after("#1")}} -\def\xmlfilter           #1#2{\ctxlxml{filter("#1",\!!bs#2\!!es)}} -\def\xmlfilterlist       #1#2{\ctxlxml{filterlist("#1",\!!bs#2\!!es)}} -\def\xmlfunction         #1#2{\ctxlxml{applyfunction("#1",\!!bs#2\!!es)}} -\def\xmlfirst            #1#2{\ctxlxml{first("#1","#2")}} -\def\xmlflush              #1{\ctxlxml{flush("#1")}} -\def\xmlflushlinewise      #1{\ctxlxml{flushlinewise("#1")}} -\def\xmlflushspacewise     #1{\ctxlxml{flushspacewise("#1")}} -%def\xmlcontent            #1{\ctxlxml{content("#1")}} -%def\xmlflushstripped      #1{\ctxlxml{strip("#1",true)}} -\def\xmldirect             #1{\ctxlxml{direct("#1")}} % in loops, not dt but root -\def\xmlidx            #1#2#3{\ctxlxml{idx("#1","#2",\number#3)}} -\def\xmlinclude        #1#2#3{\ctxlxml{include("#1","#2","#3",true)}} -\def\xmlsave             #1#2{\ctxlxml{save("#1","#2")}} -\def\xmlindex          #1#2#3{\ctxlxml{index("#1","#2",\number#3)}} -\def\xmlinfo               #1{\hbox{\ttxx[\ctxlxml{info("#1")}]}} -\def\xmlshow               #1{\startpacked\ttx\xmlverbatim{#1}\stoppacked} -\def\xmllast             #1#2{\ctxlxml{last("#1","#2")}} -\def\xmlname               #1{\ctxlxml{name("#1")}} -\def\xmlnamespace          #1{\ctxlxml{namespace("#1")}} -\def\xmlnonspace         #1#2{\ctxlxml{nonspace("#1","#2")}} -\def\xmlraw              #1#2{\ctxlxml{raw("#1","#2")}} -\def\xmlcontext          #1#2{\ctxlxml{context("#1","#2")}} -\def\xmlflushcontext       #1{\ctxlxml{context("#1")}} -\def\xmlsnippet          #1#2{\ctxlxml{snippet("#1",#2)}} -\def\xmlelement          #1#2{\ctxlxml{element("#1",#2)}} -\def\xmlregisterns       #1#2{\ctxlua{xml.registerns("#1","#2")}}                    % document -\def\xmlremapname    #1#2#3#4{\ctxlua{xml.remapname(lxml.id("#1"),"#2","#3","#4")}}  % element -\def\xmlremapnamespace #1#2#3{\ctxlua{xml.renamespace(lxml.id("#1"),"#2","#3")}}    % document -\def\xmlchecknamespace #1#2#3{\ctxlua{xml.checknamespace(lxml.id("#1"),"#2","#3")}} % element -\def\xmlsetfunction    #1#2#3{\ctxlxml{setaction("#1",\!!bs#2\!!es,#3)}} -\def\xmlsetsetup       #1#2#3{\ctxlxml{setsetup("#1",\!!bs#2\!!es,"#3")}} -\def\xmlstrip            #1#2{\ctxlxml{strip("#1","#2")}} -\def\xmlstripnolines     #1#2{\ctxlxml{strip("#1","#2",true)}} -\def\xmlstripanywhere    #1#2{\ctxlxml{strip("#1","#2",true,true)}} -\def\xmlstripped         #1#2{\ctxlxml{stripped("#1","#2")}} -\def\xmlstrippednolines  #1#2{\ctxlxml{stripped("#1","#2",true)}} -\def\xmltag                #1{\ctxlxml{tag("#1")}} -\def\xmltext             #1#2{\ctxlxml{text("#1","#2")}} -\def\xmlverbatim           #1{\ctxlxml{verbatim("#1")}} -\def\xmldisplayverbatim    #1{\ctxlxml{displayverbatim("#1")}} -\def\xmlinlineverbatim     #1{\ctxlxml{inlineverbatim("#1")}} - -\def\xmlload             #1#2{\ctxlxml{load("#1","#2","\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} -\def\xmlloadbuffer       #1#2{\ctxlxml{loadbuffer("#1","#2","\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} -\def\xmlloaddata         #1#2{\ctxlxml{loaddata("#1",\!!bs#2\!!es,"\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} -\def\xmlloadregistered   #1#2{\ctxlxml{loadregistered("#1","\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} -\def\xmlloaddirectives     #1{\ctxlxml{directives.load("any:///#1")}} -\def\xmlpos                #1{\ctxlxml{pos("#1")}} - -\def\xmltoparameters       #1{\ctxlxml{toparameters("#1")}} - -\def\xmltofile         #1#2#3{\ctxlxml{tofile("#1","#2","#3")}} % id pattern filename +\def\ctxlxml                #1{\ctxlua{lxml.#1}} + +\def\xmlmain                #1{\ctxlxml{main("#1")}} +\def\xmlmatch               #1{\ctxlxml{match("#1")}} +\def\xmlall               #1#2{\ctxlxml{all("#1","#2")}} +\def\xmlatt               #1#2{\ctxlxml{att("#1","#2")}} +\def\xmlattdef          #1#2#3{\ctxlxml{att("#1","#2","#3")}} +\def\xmlchainatt          #1#2{\ctxlxml{chainattribute("#1","/","#2")}} +\def\xmlchainattdef     #1#2#3{\ctxlxml{chainattribute("#1","/","#2","#3")}} +\def\xmlattribute       #1#2#3{\ctxlxml{attribute("#1","#2","#3")}} +\def\xmlattributedef  #1#2#3#4{\ctxlxml{attribute("#1","#2","#3","#4")}} +\def\xmlcommand         #1#2#3{\ctxlxml{command("#1","#2","#3")}} +\def\xmlconcat          #1#2#3{\ctxlxml{concat("#1","#2",[[\detokenize{#3}]])}} +\def\xmlconcatrange #1#2#3#4#5{\ctxlxml{concatrange("#1","#2","#3","#4",[[\detokenize{#5}]])}} +\def\xmlcount             #1#2{\ctxlxml{count("#1","#2")}} +\def\xmldelete            #1#2{\ctxlxml{delete("#1","#2")}} +\def\xmldirectives          #1{\ctxlxml{directives.setup("#1")}} +\def\xmldirectivesbefore    #1{\ctxlxml{directives.before("#1")}} +\def\xmldirectivesafter     #1{\ctxlxml{directives.after("#1")}} +\def\xmlfilter            #1#2{\ctxlxml{filter("#1",\!!bs#2\!!es)}} +\def\xmlfilterlist        #1#2{\ctxlxml{filterlist("#1",\!!bs#2\!!es)}} +\def\xmlfunction          #1#2{\ctxlxml{applyfunction("#1",\!!bs#2\!!es)}} +\def\xmlfirst             #1#2{\ctxlxml{first("#1","#2")}} +\def\xmlflush               #1{\ctxlxml{flush("#1")}} +\def\xmlflushlinewise       #1{\ctxlxml{flushlinewise("#1")}} +\def\xmlflushspacewise      #1{\ctxlxml{flushspacewise("#1")}} +%def\xmlcontent             #1{\ctxlxml{content("#1")}} +%def\xmlflushstripped       #1{\ctxlxml{strip("#1",true)}} +\def\xmldirect              #1{\ctxlxml{direct("#1")}} % in loops, not dt but root +\def\xmlidx             #1#2#3{\ctxlxml{idx("#1","#2",\number#3)}} +\def\xmlinclude         #1#2#3{\ctxlxml{include("#1","#2","#3",true)}} +\def\xmlincludeoptions#1#2#3#4{\ctxlxml{include("#1","#2","#3","#4")}} +\def\xmlsave              #1#2{\ctxlxml{save("#1","#2")}} +\def\xmlindex           #1#2#3{\ctxlxml{index("#1","#2",\number#3)}} +\def\xmlinfo                #1{\hbox{\ttxx[\ctxlxml{info("#1")}]}} +\def\xmlshow                #1{\startpacked\ttx\xmlverbatim{#1}\stoppacked} +\def\xmllast              #1#2{\ctxlxml{last("#1","#2")}} +\def\xmlname                #1{\ctxlxml{name("#1")}} +\def\xmlnamespace           #1{\ctxlxml{namespace("#1")}} +\def\xmlnonspace          #1#2{\ctxlxml{nonspace("#1","#2")}} +\def\xmlraw               #1#2{\ctxlxml{raw("#1","#2")}} +\def\xmlcontext           #1#2{\ctxlxml{context("#1","#2")}} +\def\xmlflushcontext        #1{\ctxlxml{context("#1")}} +\def\xmlsnippet           #1#2{\ctxlxml{snippet("#1",#2)}} +\def\xmlelement           #1#2{\ctxlxml{element("#1",#2)}} +\def\xmlregisterns        #1#2{\ctxlua{xml.registerns("#1","#2")}}                    % document +\def\xmlremapname     #1#2#3#4{\ctxlua{xml.remapname(lxml.id("#1"),"#2","#3","#4")}}  % element +\def\xmlremapnamespace  #1#2#3{\ctxlua{xml.renamespace(lxml.id("#1"),"#2","#3")}}    % document +\def\xmlchecknamespace  #1#2#3{\ctxlua{xml.checknamespace(lxml.id("#1"),"#2","#3")}} % element +\def\xmlsetfunction     #1#2#3{\ctxlxml{setaction("#1",\!!bs#2\!!es,#3)}} +\def\xmlsetsetup        #1#2#3{\ctxlxml{setsetup("#1",\!!bs#2\!!es,"#3")}} +\def\xmlstrip             #1#2{\ctxlxml{strip("#1","#2")}} +\def\xmlstripnolines      #1#2{\ctxlxml{strip("#1","#2",true)}} +\def\xmlstripanywhere     #1#2{\ctxlxml{strip("#1","#2",true,true)}} +\def\xmlstripped          #1#2{\ctxlxml{stripped("#1","#2")}} +\def\xmlstrippednolines   #1#2{\ctxlxml{stripped("#1","#2",true)}} +\def\xmltag                 #1{\ctxlxml{tag("#1")}} +\def\xmltext              #1#2{\ctxlxml{text("#1","#2")}} +\def\xmlverbatim            #1{\ctxlxml{verbatim("#1")}} +\def\xmldisplayverbatim     #1{\ctxlxml{displayverbatim("#1")}} +\def\xmlinlineverbatim      #1{\ctxlxml{inlineverbatim("#1")}} + +\def\xmlload              #1#2{\ctxlxml{load("#1","#2","\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} +\def\xmlloadbuffer        #1#2{\ctxlxml{loadbuffer("#1","#2","\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} +\def\xmlloaddata          #1#2{\ctxlxml{loaddata("#1",\!!bs#2\!!es,"\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} +\def\xmlloadregistered    #1#2{\ctxlxml{loadregistered("#1","\directxmlparameter\c!entities","\directxmlparameter\c!compress")}} +\def\xmlloaddirectives      #1{\ctxlxml{directives.load("any:///#1")}} +\def\xmlpos                 #1{\ctxlxml{pos("#1")}} + +\def\xmltoparameters        #1{\ctxlxml{toparameters("#1")}} + +\def\xmltofile          #1#2#3{\ctxlxml{tofile("#1","#2","#3")}} % id pattern filename  % kind of special: @@ -106,12 +107,12 @@  % todo: \xmldoifelseattribute -\def\xmldoif             #1#2{\ctxlxml{doif        (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable -\def\xmldoifnot          #1#2{\ctxlxml{doifnot     (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable -\def\xmldoifelse         #1#2{\ctxlxml{doifelse    (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable -\def\xmldoiftext         #1#2{\ctxlxml{doiftext    (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable -\def\xmldoifnottext      #1#2{\ctxlxml{doifnottext (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable -\def\xmldoifelsetext     #1#2{\ctxlxml{doifelsetext(\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable +\def\xmldoif              #1#2{\ctxlxml{doif        (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable +\def\xmldoifnot           #1#2{\ctxlxml{doifnot     (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable +\def\xmldoifelse          #1#2{\ctxlxml{doifelse    (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable +\def\xmldoiftext          #1#2{\ctxlxml{doiftext    (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable +\def\xmldoifnottext       #1#2{\ctxlxml{doifnottext (\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable +\def\xmldoifelsetext      #1#2{\ctxlxml{doifelsetext(\!!bs#1\!!es,\!!bs#2\!!es)}} % expandable  %def\xmldoifelseempty    #1#2{\ctxlxml{doifelseempty("#1","#2")}} % #2, "*" or "" == self not yet implemented  %def\xmldoifelseselfempty  #1{\ctxlxml{doifelseempty("#1")}} diff --git a/tex/context/base/lxml-tex.lua b/tex/context/base/lxml-tex.lua index 0503c511c..adeee20c3 100644 --- a/tex/context/base/lxml-tex.lua +++ b/tex/context/base/lxml-tex.lua @@ -38,9 +38,11 @@ local xmlapplylpath = xml.applylpath  local xmlunprivatized, xmlprivatetoken, xmlprivatecodes = xml.unprivatized, xml.privatetoken, xml.privatecodes  local xmlstripelement = xml.stripelement -local variables = (interfaces and interfaces.variables) or { } +local variables = interfaces and interfaces.variables or { } -local insertbeforevalue, insertaftervalue = utilities.tables.insertbeforevalue, utilities.tables.insertaftervalue +local settings_to_hash  = utilities.parsers.settings_to_hash +local insertbeforevalue = utilities.tables.insertbeforevalue +local insertaftervalue  = utilities.tables.insertaftervalue  local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming @@ -434,16 +436,74 @@ function lxml.register(id,xmltable,filename)      return xmltable  end -function lxml.include(id,pattern,attribute,recurse) +-- function lxml.include(id,pattern,attribute,recurse,resolve) +--     starttiming(xml) +--     local root = getid(id) +--     xml.include(root,pattern,attribute,recurse,function(filename) +--         if filename then +--             -- preprocessing +--             filename = commands.preparedfile(filename) +--             -- some protection +--             if file.dirname(filename) == "" and root.filename then +--                 local dn = file.dirname(root.filename) +--                 if dn ~= "" then +--                     filename = file.join(dn,filename) +--                 end +--             end +--             if trace_loading then +--                 report_lxml("including file %a",filename) +--             end +--             -- handy if we have a flattened structure +--             if resolve then +--                 filename = resolvers.resolve(filename) or filename +--             end +--             -- todo: check variants and provide +--             noffiles, nofconverted = noffiles + 1, nofconverted + 1 +--             return resolvers.loadtexfile(filename) or "" +--         else +--             return "" +--         end +--     end) +--     stoptiming(xml) +-- end + +-- recurse prepare rootpath resolve basename + +local options_true = { "recurse", "prepare", "rootpath" } +local options_nil  = { "prepare", "rootpath" } + +function lxml.include(id,pattern,attribute,options)      starttiming(xml)      local root = getid(id) -    xml.include(root,pattern,attribute,recurse,function(filename) +    if options == true then +        -- downward compatible +        options = options_true +    elseif not options then +        -- downward compatible +        options = options_nil +    else +        options = settings_to_hash(options) or { } +    end +    xml.include(root,pattern,attribute,options.recurse,function(filename)          if filename then -            filename = commands.preparedfile(filename) -            if file.dirname(filename) == "" and root.filename then -                local dn = file.dirname(root.filename) -                if dn ~= "" then -                    filename = file.join(dn,filename) +            -- preprocessing +            if options.prepare then +                filename = commands.preparedfile(filename) +            end +            -- handy if we have a flattened structure +            if options.basename then +                filename = file.basename(filename) +            end +            if options.resolve then +                filename = resolvers.resolve(filename) or filename +            end +            -- some protection +            if options.rootpath then +                if file.dirname(filename) == "" and root.filename then +                    local dn = file.dirname(root.filename) +                    if dn ~= "" then +                        filename = file.join(dn,filename) +                    end                  end              end              if trace_loading then diff --git a/tex/context/base/publ-ini.lua b/tex/context/base/publ-ini.lua index e25c57e29..afe3697c1 100644 --- a/tex/context/base/publ-ini.lua +++ b/tex/context/base/publ-ini.lua @@ -1188,6 +1188,8 @@ end  local prefixsplitter = lpeg.splitat("::") +-- num is special +  function commands.btxhandlecite(dataset,tag,mark,variant,sorttype,setup) -- variant for tracing      local prefix, rest = lpegmatch(prefixsplitter,tag)      if rest then @@ -1371,11 +1373,6 @@ function citevariants.page(dataset,tags)      end  end -function citevariants.num(dataset,tags) ---     ctx_btxdirectlink(f_destination(dataset,block,tags),listindex) -- not okay yet -    lists.resolve(dataset,tags) -end -  function citevariants.serial(dataset,tags) -- the traditional fieldname is "serial" and not "index"      local index = getfield(dataset,tags,"index")      if index then @@ -1383,6 +1380,13 @@ function citevariants.serial(dataset,tags) -- the traditional fieldname is "seri      end  end +-- num is somewhat special as it can be more and we need to deal with ranges here + +function citevariants.num(dataset,tags) +--     ctx_btxdirectlink(f_destination(dataset,block,tags),listindex) -- not okay yet +    lists.resolve(dataset,tags) +end +  -- List variants  local listvariants        = { } diff --git a/tex/context/base/publ-ini.mkiv b/tex/context/base/publ-ini.mkiv index adbf8f7fc..d3cdd1fd3 100644 --- a/tex/context/base/publ-ini.mkiv +++ b/tex/context/base/publ-ini.mkiv @@ -923,6 +923,7 @@     [\c!compress=\v!yes,      \c!inbetween={--},      \c!left={[}, +    \c!middle={, },      \c!right={]}]  \setupbtxlistvariant diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf Binary files differindex 3c137a92d..bf8fea46e 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf Binary files differindex 321d4eef7..bff2e9dc7 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf diff --git a/tex/context/base/tabl-ntb.mkiv b/tex/context/base/tabl-ntb.mkiv index 3734e5647..a7a7ae50b 100644 --- a/tex/context/base/tabl-ntb.mkiv +++ b/tex/context/base/tabl-ntb.mkiv @@ -1255,12 +1255,29 @@     \fi     \dostoptagged} % right spot +% \def\tabl_ntb_cell_finalize +%   {\doifnotinset\localwidth{\v!fit,\v!broad}% user set +%      {\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax +%       \ifdim\localwidth>\scratchdimen +%         \tabl_ntb_set_aut\c_tabl_ntb_col{\the\dimexpr\localwidth}% +%       \fi}} +  \def\tabl_ntb_cell_finalize -  {\doifnotinset\localwidth{\v!fit,\v!broad}% user set -     {\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax -      \ifdim\localwidth>\scratchdimen -        \tabl_ntb_set_aut\c_tabl_ntb_col{\the\dimexpr\localwidth}% -      \fi}} +  {\ifx\localwidth\v!fit +      % nothing +   \else\ifx\localwidth\v!broad +      % nothing +   \else\ifx\localwidth\empty +      % nothing (safeguard) +   \else +     \tabl_ntb_cell_finalize_indeed +   \fi\fi\fi} + +\def\tabl_ntb_cell_finalize_indeed +  {\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax +   \ifdim\localwidth>\scratchdimen +     \tabl_ntb_set_aut\c_tabl_ntb_col{\the\dimexpr\localwidth}% +   \fi}  \def\tabl_ntb_table_stop    {\setbox\scratchbox\hbox diff --git a/tex/context/base/type-imp-cambria.mkiv b/tex/context/base/type-imp-cambria.mkiv index 91288b6d0..9bfa2ee5c 100644 --- a/tex/context/base/type-imp-cambria.mkiv +++ b/tex/context/base/type-imp-cambria.mkiv @@ -11,6 +11,10 @@  %C therefore copyrighted by \PRAGMA. See mreadme.pdf for  %C details. +%D We use Dejavu as it covers wider range of monospaced glyphs. + +\loadtypescriptfile[dejavu] +  \starttypescriptcollection[cambria]      % microsoft: cambria.ttc cambriab.ttf cambriai.ttf cambriaz.ttf @@ -60,13 +64,13 @@      \starttypescript [cambria,cambria-m,cambria-a]          % any          \definetypeface [cambria] [\s!rm] [\s!serif] [\typescriptone] [\s!default] -        \definetypeface [cambria] [\s!tt] [\s!mono]  [modern]         [\s!default] +        \definetypeface [cambria] [\s!tt] [\s!mono]  [dejavu]         [\s!default]          \definetypeface [cambria] [\s!mm] [\s!math]  [\typescriptone] [\s!default]      \stoptypescript      \starttypescript [cambria-x,cambria-y]          % test x          \definetypeface [\typescriptone] [\s!rm] [\s!serif] [cambria]        [\s!default] -        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [modern]         [\s!default] +        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [dejavu]         [\s!default]          \definetypeface [\typescriptone] [\s!mm] [\s!math]  [\typescriptone] [\s!default]      \stoptypescript diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 381c5ca8d..ee0c00e82 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  : 05/12/14 16:53:28 +-- merge date  : 05/13/14 00:04:28  do -- begin closure to overcome local limits and interference @@ -4170,7 +4170,7 @@ function constructors.scale(tfmdata,specification)      if changed then        local c=changed[unicode]        if c then -local ligatures=character.ligatures +        local ligatures=character.ligatures           description=descriptions[c] or descriptions[unicode] or character          character=characters[c] or character          index=description.index or c @@ -4182,9 +4182,9 @@ local ligatures=character.ligatures              touni=tounicode[i]             end          end -if ligatures and not character.ligatures then -  character.ligatures=ligatures -end +        if ligatures and not character.ligatures then +          character.ligatures=ligatures  +        end        else          description=descriptions[unicode] or character          index=description.index or unicode  | 
