diff options
Diffstat (limited to 'tex')
20 files changed, 113 insertions, 40 deletions
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf Binary files differindex 2aacea69d..c9c3510dd 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua index bf21be70c..f112f2b67 100644 --- a/tex/context/base/mkiv/char-def.lua +++ b/tex/context/base/mkiv/char-def.lua @@ -625,7 +625,6 @@ characters.data={ direction="cs", linebreak="is", mathclass="relation", ---mathsymbol=0x2236, unicodeslot=0x3A, }, { @@ -54755,10 +54754,10 @@ characters.data={ category="lu", description="LATIN CAPITAL LETTER SHARP S", direction="l", - linebreak="al", - unicodeslot=0x1E9E, lccode=0xDF, + linebreak="al", shcode={ 0x53, 0x53 }, + unicodeslot=0x1E9E, }, [0x1E9F]={ category="ll", @@ -227052,4 +227051,4 @@ characters.data={ linebreak="cm", unicodeslot=0xE007F, }, -} +}
\ No newline at end of file diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 65128dabb..863426692 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2016.05.14 14:06} +\newcontextversion{2016.05.15 20:46} %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/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 72718b53c..7cce1c958 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -39,7 +39,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2016.05.14 14:06} +\edef\contextversion{2016.05.15 20:46} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/mkiv/font-otr.lua b/tex/context/base/mkiv/font-otr.lua index 24f68543e..c967e2411 100644 --- a/tex/context/base/mkiv/font-otr.lua +++ b/tex/context/base/mkiv/font-otr.lua @@ -1874,6 +1874,7 @@ local function getinfo(maindata,sub,platformnames,rawfamilynames) -- format = fontdata.format, fontname = fontname, fullname = fullname, + -- cfffullname = cff.fullname, family = family, subfamily = subfamily, familyname = familyname, diff --git a/tex/context/base/mkiv/font-syn.lua b/tex/context/base/mkiv/font-syn.lua index ef0d44a84..435aa1ddc 100644 --- a/tex/context/base/mkiv/font-syn.lua +++ b/tex/context/base/mkiv/font-syn.lua @@ -565,6 +565,7 @@ local function check_name(data,result,filename,modification,suffix,subfont) local familyname = result.familyname local subfamilyname = result.subfamilyname -- local compatiblename = result.compatiblename + -- local cfffullname = result.cfffullname local weight = result.weight local italicangle = tonumber(result.italicangle) local subfont = subfont @@ -579,6 +580,7 @@ local function check_name(data,result,filename,modification,suffix,subfont) familyname = familyname and cleanname(familyname) subfamilyname = subfamilyname and cleanname(subfamilyname) -- compatiblename = compatiblename and cleanname(compatiblename) + -- cfffullname = cfffullname and cleanname(cfffullname) weight = weight and cleanname(weight) italicangle = italicangle == 0 and nil -- analyze @@ -630,6 +632,7 @@ local function check_name(data,result,filename,modification,suffix,subfont) familyname = familyname, subfamilyname = subfamilyname, -- compatiblename = compatiblename, -- nor used / needed + -- cfffullname = cfffullname, weight = weight, style = style, width = width, @@ -792,18 +795,20 @@ local function collecthashes() local nofmappings = 0 local noffallbacks = 0 if specifications then - -- maybe multiple passes + -- maybe multiple passes (for the compatible and cffnames so that they have less preference) for index=1,#specifications do - local specification = specifications[index] - local format = specification.format - local fullname = specification.fullname - local fontname = specification.fontname - local familyname = specification.familyname or specification.family - local subfamilyname = specification.subfamilyname - local subfamily = specification.subfamily - local weight = specification.weight - local mapping = mappings[format] - local fallback = fallbacks[format] + local specification = specifications[index] + local format = specification.format + local fullname = specification.fullname + local fontname = specification.fontname + -- local compatiblename = specification.compatiblename + -- local cfffullname = specification.cfffullname + local familyname = specification.familyname or specification.family + local subfamilyname = specification.subfamilyname + local subfamily = specification.subfamily + local weight = specification.weight + local mapping = mappings[format] + local fallback = fallbacks[format] if fullname and not mapping[fullname] then mapping[fullname] = index nofmappings = nofmappings + 1 @@ -812,6 +817,14 @@ local function collecthashes() mapping[fontname] = index nofmappings = nofmappings + 1 end + -- if compatiblename and not mapping[compatiblename] then + -- mapping[compatiblename] = index + -- nofmappings = nofmappings + 1 + -- end + -- if cfffullname and not mapping[cfffullname] then + -- mapping[cfffullname] = index + -- nofmappings = nofmappings + 1 + -- end if familyname then if weight and weight ~= sub(familyname,#familyname-#weight+1,#familyname) then local madename = familyname .. weight diff --git a/tex/context/base/mkiv/grph-rul.lua b/tex/context/base/mkiv/grph-rul.lua index e5aa05396..e6b10cce6 100644 --- a/tex/context/base/mkiv/grph-rul.lua +++ b/tex/context/base/mkiv/grph-rul.lua @@ -69,6 +69,7 @@ FakeWord(%width%,%height%,%depth%,%line%,%color%); FakeRule(%width%,%height%,%depth%,%line%,%color%); ]], ["fake:rest"] = replacer [[ +RuleDirection := "%direction%" ; RuleOption := "%option%" ; RuleWidth := %width% ; RuleHeight := %height% ; @@ -84,15 +85,16 @@ def RuleColor = %color% enddef ; ruleactions.mp = function(p,h,v,i,n) local name = p.name or "fake:rest" local code = (predefined[name] or predefined["fake:rest"]) { - data = p.data or "", - width = p.width * bpfactor, - height = p.height * bpfactor, - depth = p.depth * bpfactor, - factor = (p.factor or 0) * bpfactor, -- needs checking - offset = p.offset or 0, - line = (p.line or 65536) * bpfactor, - color = mpcolor(p.ma,p.ca,p.ta), - option = p.option or "", + data = p.data or "", + width = p.width * bpfactor, + height = p.height * bpfactor, + depth = p.depth * bpfactor, + factor = (p.factor or 0) * bpfactor, -- needs checking + offset = p.offset or 0, + line = (p.line or 65536) * bpfactor, + color = mpcolor(p.ma,p.ca,p.ta), + option = p.option or "", + direction = p.direction or "TLT", } local m = cache[code] if trace_mp then diff --git a/tex/context/base/mkiv/math-ini.mkiv b/tex/context/base/mkiv/math-ini.mkiv index 8627436b7..2e7831d75 100644 --- a/tex/context/base/mkiv/math-ini.mkiv +++ b/tex/context/base/mkiv/math-ini.mkiv @@ -386,7 +386,7 @@ \let\mathalternate \math_set_font_alternate \unexpanded\def\mathupright {\math_set_attribute\s!regular\s!tf\math_set_font_style_alternate\s!tf} -\unexpanded\def\mathdefault {\math_set_attribute\s!regular\s!it\math_set_font_style_alternate\s!it} +\unexpanded\def\mathitalic {\math_set_attribute\s!regular\s!it\math_set_font_style_alternate\s!it} \unexpanded\def\mathscript {\math_set_alphabet \s!script \math_set_font_style_alternate\s!script} \unexpanded\def\mathfraktur {\math_set_alphabet \s!fraktur \math_set_font_style_alternate\s!fraktur} \unexpanded\def\mathblackboard{\math_set_alphabet \s!blackboard \math_set_font_style_alternate\s!blackboard} @@ -403,6 +403,20 @@ \unexpanded\def\mathbs {\math_set_font_style\s!bi \math_set_font_style_alternate\s!bi} % no sl \unexpanded\def\mathbi {\math_set_font_style\s!bi \math_set_font_style_alternate\s!bi} +\let\mathdefault\mathitalic + +\appendtoks + \edef\p_default{\mathematicsparameter\c!default}% + \ifx\p_default\v!normal + \let\mathdefault\mathupright + \else + \let\mathdefault\mathitalic + \fi +\to \everysetupmathematics + +\setupmathematics + [\c!default=\v!italic] + \let\tfmath\mathtf % maybe a grouped command \let\slmath\mathsl \let\itmath\mathit diff --git a/tex/context/base/mkiv/mult-fun.lua b/tex/context/base/mkiv/mult-fun.lua index 76a2ab915..6c722aa40 100644 --- a/tex/context/base/mkiv/mult-fun.lua +++ b/tex/context/base/mkiv/mult-fun.lua @@ -106,7 +106,7 @@ return { -- "remapcolors", "normalcolors", "resetcolormap", "remapcolor", "remappedcolor", -- "recolor", "refill", "redraw", "retext", "untext", "restroke", "reprocess", "repathed", "tensecircle", "roundedsquare", - "colortype", "whitecolor", "blackcolor", "basiccolors", + "colortype", "whitecolor", "blackcolor", "basiccolors", "complementary", -- -- "swappointlabels", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", diff --git a/tex/context/base/mkiv/page-str.lua b/tex/context/base/mkiv/page-str.lua index 56c6167aa..b2f597633 100644 --- a/tex/context/base/mkiv/page-str.lua +++ b/tex/context/base/mkiv/page-str.lua @@ -22,6 +22,12 @@ local implement = interfaces.implement local new_kern = nodepool.kern local new_glyph = nodepool.glyph +local nodecodes = nodes.nodecodes +local gluecodes = nodes.gluecodes +local hlist_code = nodecodes.hlist +local vlist_code = nodecodes.vlist +local glue_code = nodecodes.glue + local slide_nodelist = node.slide local write_node = node.write local free_node = node.free @@ -167,6 +173,16 @@ function streams.synchronize(list) -- this is an experiment ! local dana = data[name] local slot = dana[m] if slot then +-- for n in nodes.traverse(slot) do +-- local id = n.id +-- if id == hlist_code or id == vlist_code then +-- print(n,n.height,n.depth) +-- elseif id == glue_code then +-- print(n,n.width,gluecodes[n.subtype]) +-- else +-- print(n) +-- end +-- end local vbox = vpack_nodelist(slot) local ht, dp = vbox.height, vbox.depth if ht > height then diff --git a/tex/context/base/mkiv/page-str.mkiv b/tex/context/base/mkiv/page-str.mkiv index e4b2fa229..b6b8d1cce 100644 --- a/tex/context/base/mkiv/page-str.mkiv +++ b/tex/context/base/mkiv/page-str.mkiv @@ -50,7 +50,9 @@ \the\everyenableoutputstream \inoutputstreamtrue \xdef\currentoutputstream{#1}% - \clf_enablestream{#1}} + \clf_enablestream{#1} + \prevdepth\zeropoint % maybe more is needed i.e. we need to get rid of leading glue + } \unexpanded\def\disableoutputstream {\inoutputstreamfalse diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex c0eaf445a..761ce692e 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex c4c0c12ac..d805ec463 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/strc-ref.lua b/tex/context/base/mkiv/strc-ref.lua index de0577423..70d79dc57 100644 --- a/tex/context/base/mkiv/strc-ref.lua +++ b/tex/context/base/mkiv/strc-ref.lua @@ -68,7 +68,8 @@ local logsnewline = logs.newline local logspushtarget = logs.pushtarget local logspoptarget = logs.poptarget -local settings_to_array = utilities.parsers.settings_to_array +----- settings_to_array = utilities.parsers.settings_to_array +local settings_to_table = utilities.parsers.settings_to_array_obey_fences local process_settings = utilities.parsers.process_stripped_settings local unsetvalue = attributes.unsetvalue @@ -883,7 +884,8 @@ local function resolve(prefix,reference,args,set) -- we start with prefix,refere if not set.reference then set.reference = reference end if not set.prefix then set.prefix = prefix end end - local r = settings_to_array(reference) + -- local r = settings_to_array(reference) + local r = settings_to_table(reference) -- maybe option to honor () [] for i=1,#r do local ri = r[i] local d = defined[prefix][ri] or defined[""][ri] diff --git a/tex/context/base/mkiv/strc-rsc.lua b/tex/context/base/mkiv/strc-rsc.lua index 627e443b2..ee7f885e0 100644 --- a/tex/context/base/mkiv/strc-rsc.lua +++ b/tex/context/base/mkiv/strc-rsc.lua @@ -183,3 +183,7 @@ references.splitcomponent = splitcomponent -- inspect(splitreference([[special(operation{"argument,argument{whatever"})]])) -- inspect(splitreference([[special(operation{"argument{whatever"})]])) +-- inspect(splitreference([[url(http://a,b.c)]])) +-- inspect(splitcomponent([[url(http://a,b.c)]])) +-- inspect(splitcomponent([[url(http://a.b.c)]])) + diff --git a/tex/context/base/mkiv/util-prs.lua b/tex/context/base/mkiv/util-prs.lua index 01138f1bb..02729dd0e 100644 --- a/tex/context/base/mkiv/util-prs.lua +++ b/tex/context/base/mkiv/util-prs.lua @@ -36,6 +36,8 @@ local lbrace = P("{") local rbrace = P("}") local lparent = P("(") local rparent = P(")") +local lbracket = P("[") +local rbracket = P("]") local period = S(".") local punctuation = S(".,:;") local spacer = lpegpatterns.spacer @@ -44,8 +46,9 @@ local newline = lpegpatterns.newline local anything = lpegpatterns.anything local endofstring = lpegpatterns.endofstring -local nobrace = 1 - (lbrace + rbrace ) -local noparent = 1 - (lparent + rparent) +local nobrace = 1 - (lbrace + rbrace ) +local noparent = 1 - (lparent + rparent) +local nobracket = 1 - (lbracket + rbracket) -- we could use a Cf Cg construct @@ -56,11 +59,12 @@ lpegpatterns.balanced = P { [2] = left * V(1) * right } -local nestedbraces = P { lbrace * (nobrace + V(1))^0 * rbrace } -local nestedparents = P { lparent * (noparent + V(1))^0 * rparent } -local spaces = space^0 -local argument = Cs((lbrace/"") * ((nobrace + nestedbraces)^0) * (rbrace/"")) -local content = (1-endofstring)^0 +local nestedbraces = P { lbrace * (nobrace + V(1))^0 * rbrace } +local nestedparents = P { lparent * (noparent + V(1))^0 * rparent } +local nestedbrackets = P { lbracket * (nobracket + V(1))^0 * rbracket } +local spaces = space^0 +local argument = Cs((lbrace/"") * ((nobrace + nestedbraces)^0) * (rbrace/"")) +local content = (1-endofstring)^0 lpegpatterns.nestedbraces = nestedbraces -- no capture lpegpatterns.nestedparents = nestedparents -- no capture @@ -193,6 +197,16 @@ function parsers.settings_to_array(str,strict) end end +local value = P(lbrace * C((nobrace + nestedbraces)^0) * rbrace) + + C((nestedbraces + nestedbrackets + nestedparents + (1-comma))^0) +local pattern = spaces * Ct(value*(separator*value)^0) + +function parsers.settings_to_array_obey_fences(str) + return lpegmatch(pattern,str) +end + +-- inspect(parsers.settings_to_array_obey_fences("url(http://a,b.c)")) + -- this one also strips end spaces before separators -- -- "{123} , 456 " -> "123" "456" diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf Binary files differindex 47cde86b1..7ba49fa1e 100644 --- a/tex/context/interface/mkiv/i-context.pdf +++ b/tex/context/interface/mkiv/i-context.pdf diff --git a/tex/context/interface/mkiv/i-math.xml b/tex/context/interface/mkiv/i-math.xml index 894cf2a2a..d16ba5173 100644 --- a/tex/context/interface/mkiv/i-math.xml +++ b/tex/context/interface/mkiv/i-math.xml @@ -91,6 +91,10 @@ <cd:constant type="displaylimits"/> <cd:constant type="none"/> </cd:parameter> + <cd:parameter name="default"> + <cd:constant type="normal"/> + <cd:constant type="italic" default="yes"/> + </cd:parameter> </cd:assignments> </cd:arguments> </cd:command> @@ -371,6 +375,8 @@ <cd:command name="mathbs" file="math-ini.mkiv"/> + <cd:command name="mathitalic" file="math-ini.mkiv"/> + <cd:command name="mathupright" file="math-ini.mkiv"/> <cd:command name="mathdefault" file="math-ini.mkiv"/> @@ -453,4 +459,4 @@ </cd:arguments> </cd:command> -</cd:interface>
\ No newline at end of file +</cd:interface> diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf Binary files differindex 4300c8f1c..07b4c42c9 100644 --- a/tex/context/interface/mkiv/i-readme.pdf +++ b/tex/context/interface/mkiv/i-readme.pdf diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index ea46d7d35..69d5cfe14 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 : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 05/14/16 14:06:50 +-- merge date : 05/15/16 20:46:20 do -- begin closure to overcome local limits and interference |