diff options
Diffstat (limited to 'tex/context/base/mkiv')
-rw-r--r-- | tex/context/base/mkiv/char-def.lua | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/cont-new.mkiv | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/context.mkiv | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/font-otr.lua | 3 | ||||
-rw-r--r-- | tex/context/base/mkiv/math-fbk.lua | 30 | ||||
-rw-r--r-- | tex/context/base/mkiv/mult-def.lua | 3 | ||||
-rw-r--r-- | tex/context/base/mkiv/mult-low.lua | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/publ-aut.lua | 16 | ||||
-rw-r--r-- | tex/context/base/mkiv/status-files.pdf | bin | 24914 -> 24847 bytes | |||
-rw-r--r-- | tex/context/base/mkiv/status-lua.pdf | bin | 253654 -> 253894 bytes | |||
-rw-r--r-- | tex/context/base/mkiv/typo-drp.lua | 13 | ||||
-rw-r--r-- | tex/context/base/mkiv/util-sci.lua | 19 |
12 files changed, 75 insertions, 17 deletions
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua index aabcb0615..c8dac09c5 100644 --- a/tex/context/base/mkiv/char-def.lua +++ b/tex/context/base/mkiv/char-def.lua @@ -271537,4 +271537,4 @@ characters.data={ synonyms={ "vs17" }, unicodeslot=0xE0100, }, -}
\ 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 d7c2469e8..c8893eb1e 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2021.09.26 16:48} +\newcontextversion{2021.10.08 20:05} %D This file is loaded at runtime, thereby providing an excellent place for hacks, %D patches, extensions and new features. There can be local overloads in cont-loc diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 1a32832af..89e04f878 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2021.09.26 16:48} +\edef\contextversion{2021.10.08 20:05} %D Kind of special: diff --git a/tex/context/base/mkiv/font-otr.lua b/tex/context/base/mkiv/font-otr.lua index 3b5edebc4..286367ed9 100644 --- a/tex/context/base/mkiv/font-otr.lua +++ b/tex/context/base/mkiv/font-otr.lua @@ -1962,9 +1962,10 @@ local function getinfo(maindata,sub,platformnames,rawfamilynames,metricstoo,inst weight = weight and lower(weight), width = width and lower(width), pfmweight = metrics.weightclass or 400, -- will become weightclass - pfmwidth = metrics.widthclass or 5, -- will become widthclass + pfmwidth = metrics.widthclass or 5, -- will become widthclass panosewidth = metrics.panosewidth, panoseweight = metrics.panoseweight, + fstype = metrics.fstype or 0, -- embedding, subsetting and editing italicangle = postscript.italicangle or 0, units = fontheader.units or 0, designsize = fontdata.designsize, diff --git a/tex/context/base/mkiv/math-fbk.lua b/tex/context/base/mkiv/math-fbk.lua index f1efadc45..aecffb466 100644 --- a/tex/context/base/mkiv/math-fbk.lua +++ b/tex/context/base/mkiv/math-fbk.lua @@ -32,6 +32,7 @@ local popcommand = helpers.commands.pop local pushcommand = helpers.commands.push local virtualcharacters = { } +local virtualforced = { } local hashes = fonts.hashes local identifiers = hashes.identifiers @@ -136,7 +137,7 @@ function fallbacks.apply(target,original) local fullname = trace_fallbacks and target.properties.fullname -- for k, v in sortedhash(virtualcharacters) do - if not characters[k] then + if not characters[k] or virtualforced[k] then local tv = type(v) local cd = nil if tv == "table" then @@ -698,3 +699,30 @@ virtualcharacters[0x305] = function(data) } end +local function threedots(data,shift) + local characters = data.target.characters + local parameters = data.target.parameters + local periodchar = characters[0x002E] + local pluschar = characters[0x002B] + local period = charcommand[0x002E] + local periodwd = periodchar.width or 0 + local periodht = periodchar.height or 0 + local perioddp = periodchar.depth or 0 + local offset = 0 + if shift then + local plusht = pluschar.height or 0 + local plusdp = pluschar.depth or 0 + local axis = (plusdp + plusht)//2 - plusdp + offset = axis - periodht//2 + periodht = axis + periodht//2 + end + return { + width = 3*periodwd, + height = periodht, + depth = 0, + commands = { upcommand[offset], period, period, period } + } +end + +virtualcharacters[0x2026] = function(data) return threedots(data,false) end virtualforced[0x2026] = true +virtualcharacters[0x22EF] = function(data) return threedots(data, true) end virtualforced[0x22EF] = true diff --git a/tex/context/base/mkiv/mult-def.lua b/tex/context/base/mkiv/mult-def.lua index a06deffe5..bb3f458bf 100644 --- a/tex/context/base/mkiv/mult-def.lua +++ b/tex/context/base/mkiv/mult-def.lua @@ -17327,6 +17327,9 @@ return { ["pe"]="بدونآویزانکردن", ["ro"]="nothanging", }, + ["explicit"]={ + ["en"]="explicit", + }, ["notcollapsed"]={ ["en"]="notcollapsed", }, diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index 4842a3571..30e1eac10 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -175,7 +175,7 @@ return { "wildcardsymbol", -- "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", - "collapsehyphenationmcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", + "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", diff --git a/tex/context/base/mkiv/publ-aut.lua b/tex/context/base/mkiv/publ-aut.lua index 02f4798c5..64fecb3d5 100644 --- a/tex/context/base/mkiv/publ-aut.lua +++ b/tex/context/base/mkiv/publ-aut.lua @@ -998,6 +998,22 @@ publications.sortmethods.authoryear = { }, } +publications.sortmethods.authortitle = { + sequence = { + { field = "author", default = "", unknown = "" }, + { field = "title", default = "", unknown = "" }, + { field = "booktitle", default = "", unknown = "" }, -- if this is an untitled section (e.g., introduction, foreword, preface) of a book or a review of a book + { field = "maintitle", default = "", unknown = "" }, -- if this is an untitled section or volume in a multivolume collection + { field = "volume", default = "", unknown = "" }, + { field = "part", default = "", unknown = "" }, + { field = "date", default = "9998-13-32", unknown = "9999-14-33" }, -- some specifications allow date instead of year, month, day + { field = "year", default = "9998", unknown = "9999" }, + { field = "month", default = "13", unknown = "14" }, + { field = "day", default = "32", unknown = "33" }, + { field = "index", default = "", unknown = "" }, + }, +} + implement { name = "btxremapauthor", arguments = "2 strings", diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex 0eca85be1..c251ad6c1 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 2fe879833..50cc0ad29 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/typo-drp.lua b/tex/context/base/mkiv/typo-drp.lua index d56ba3da7..79cda3ab9 100644 --- a/tex/context/base/mkiv/typo-drp.lua +++ b/tex/context/base/mkiv/typo-drp.lua @@ -73,6 +73,7 @@ local v_default = variables.default local v_margin = variables.margin local v_auto = variables.auto local v_first = variables.first +local v_keep = variables.keep local v_last = variables.last local texget = tex.get @@ -133,6 +134,7 @@ interfaces.implement { -- a page so this has a low priority actions[v_default] = function(head,setting) + local skip = false -- begin of par local first = getnext(head) local indent = false @@ -196,6 +198,9 @@ actions[v_default] = function(head,setting) else -- keep quote etc with initial local next = getnext(first) + if next and method[v_keep] then + skip = first + end if not next then -- don't start with a quote or so return head @@ -245,7 +250,7 @@ actions[v_default] = function(head,setting) local id = getid(current) if id == kern_code then setkern(current,0) - elseif id == glyph_code then + elseif id == glyph_code and skip ~= current then local next = getnext(current) if font then setfont(current,font) @@ -301,7 +306,11 @@ actions[v_default] = function(head,setting) -- local hoffset = width + hoffset + distance + (indent and parindent or 0) for current in nextglyph, first do - setoffsets(current,-hoffset,-voffset) -- no longer - height here + if skip == current then + setoffsets(current,-hoffset,0) + else + setoffsets(current,-hoffset,-voffset) -- no longer - height here + end if current == last then break end diff --git a/tex/context/base/mkiv/util-sci.lua b/tex/context/base/mkiv/util-sci.lua index 778991ea6..67528c74e 100644 --- a/tex/context/base/mkiv/util-sci.lua +++ b/tex/context/base/mkiv/util-sci.lua @@ -23,6 +23,7 @@ do lexerroot = file.dirname(resolvers.findfile("scite-context-lexer.lua")) -- end if lfs.isdir(lexerroot) then + -- pushluapath package.extraluapath(lexerroot) package.extraluapath(lexerroot.."/themes") package.extraluapath(lexerroot.."/data") @@ -58,14 +59,14 @@ local knownlexers = { -- todo: pat/hyp ori } -lexer = nil -- main lexer, global (for the moment needed for themes) +lexers = nil -- main lexer, global (for the moment needed for themes) local function loadscitelexer() - if not lexer then - lexer = require("scite-context-lexer") - require("scite-context-theme") -- uses lexer - if lexer then - lexer.context.disablewordcheck() + if not lexers then + lexers = require("scite-context-lexer") + lexers.styles = require("scite-context-theme") -- uses lexer + if lexers then + (lexers.disablewordcheck or lexers.context.disablewordcheck)() end end return lexer @@ -74,7 +75,7 @@ end local loadedlexers = setmetatableindex(function(t,k) local l = knownlexers[k] or k loadscitelexer() - local v = lexer.load(formatters["scite-context-lexer-%s"](l)) + local v = lexers.load(formatters["scite-context-lexer-%s"](l)) t[l] = v t[k] = v return v @@ -124,7 +125,7 @@ local function exportcsslexing() return (#f == 0 and f[1] == 0) or ((f[1] == f[2]) and (f[2] == f[3]) and (f[3] == 0)) end local result, r = { }, 0 - for k, v in table.sortedhash(lexer.context.styles) do + for k, v in table.sortedhash(lexers.context.styles) do local bold = v.bold local fore = v.fore r = r + 1 @@ -149,7 +150,7 @@ local function exportwhites() end local function exportstyled(lexer,text,numbered) - local result = lexer.lex(lexer,text,0) + local result = lexers.lex(lexer,text,0) local start = 1 local whites = exportwhites() local buffer = { } |