summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv')
-rw-r--r--tex/context/base/mkiv/char-def.lua2
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/font-otr.lua3
-rw-r--r--tex/context/base/mkiv/math-fbk.lua30
-rw-r--r--tex/context/base/mkiv/mult-def.lua3
-rw-r--r--tex/context/base/mkiv/mult-low.lua2
-rw-r--r--tex/context/base/mkiv/publ-aut.lua16
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24914 -> 24847 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin253654 -> 253894 bytes
-rw-r--r--tex/context/base/mkiv/typo-drp.lua13
-rw-r--r--tex/context/base/mkiv/util-sci.lua19
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
index 0eca85be1..c251ad6c1 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 2fe879833..50cc0ad29 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
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 = { }