summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2017-04-20 22:56:41 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2017-04-20 22:56:41 +0200
commitf2a20e191bf71094aa21d37dee2ecd2f804dbc56 (patch)
tree5c94b5e2d5c0ec7e1946bf967a982c27f99a5fdc
parent218228536ed709be8ab2dde4a00dc27249ceed8a (diff)
downloadcontext-f2a20e191bf71094aa21d37dee2ecd2f804dbc56.tar.gz
2017-04-20 21:37:00
-rw-r--r--doc/context/documents/general/qrcs/setup-cs.pdfbin808149 -> 808145 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin809575 -> 809567 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin811963 -> 811967 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin805751 -> 805757 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin809777 -> 809776 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin806220 -> 806228 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-ro.pdfbin804688 -> 804689 bytes
-rw-r--r--doc/context/scripts/mkii/texmfstart.html1
-rw-r--r--doc/context/scripts/mkii/texmfstart.man3
-rw-r--r--doc/context/scripts/mkii/texmfstart.xml1
-rw-r--r--doc/context/scripts/mkiv/mtxrun.html1
-rw-r--r--doc/context/scripts/mkiv/mtxrun.man3
-rw-r--r--doc/context/scripts/mkiv/mtxrun.xml1
-rw-r--r--scripts/context/lua/mtx-unicode.lua65
-rw-r--r--scripts/context/lua/mtxrun.lua18
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua18
-rw-r--r--scripts/context/stubs/unix/mtxrun18
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua18
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/char-def.lua583
-rw-r--r--tex/context/base/mkiv/char-ini.lua25
-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-ctx.lua96
-rw-r--r--tex/context/base/mkiv/font-dsp.lua2
-rw-r--r--tex/context/base/mkiv/font-ini.mkvi2
-rw-r--r--tex/context/base/mkiv/font-map.lua71
-rw-r--r--tex/context/base/mkiv/font-ocl.lua16
-rw-r--r--tex/context/base/mkiv/font-ttf.lua2
-rw-r--r--tex/context/base/mkiv/l-table.lua14
-rw-r--r--tex/context/base/mkiv/math-ini.lua12
-rw-r--r--tex/context/base/mkiv/math-ini.mkiv2
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin25662 -> 25644 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin424483 -> 424467 bytes
-rw-r--r--tex/context/base/mkiv/trac-vis.lua1
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin811963 -> 811967 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60771 -> 60772 bytes
-rw-r--r--tex/context/modules/mkiv/x-mathml.lua1
-rw-r--r--tex/context/modules/mkiv/x-mathml.mkiv37
-rw-r--r--tex/generic/context/luatex/luatex-core.lua7
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua82
42 files changed, 981 insertions, 127 deletions
diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index ec07cb9a9..6cd7dc620 100644
--- a/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index c68f5581e..f1b39be5a 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 5716030ad..bb6619b2e 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index 3ae35d7b3..f5ce96d5e 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index 66883a156..cecb16e89 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index 84f38e5a9..83e7b2a8e 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index 5076cdd55..4f0def580 100644
--- a/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/doc/context/scripts/mkii/texmfstart.html b/doc/context/scripts/mkii/texmfstart.html
index c51430273..9a86eeee3 100644
--- a/doc/context/scripts/mkii/texmfstart.html
+++ b/doc/context/scripts/mkii/texmfstart.html
@@ -86,6 +86,7 @@
<tr><th>--experiments</th><td></td><td>show (known) experiments</td></tr>
<tr><th/><td/><td/></tr>
<tr><th>--expand-braces</th><td></td><td>expand complex variable</td></tr>
+ <tr><th>--resolve-path</th><td></td><td>expand variable (completely resolve paths)</td></tr>
<tr><th>--expand-path</th><td></td><td>expand variable (resolve paths)</td></tr>
<tr><th>--expand-var</th><td></td><td>expand variable (resolve references)</td></tr>
<tr><th>--show-path</th><td></td><td>show path expansion of ...</td></tr>
diff --git a/doc/context/scripts/mkii/texmfstart.man b/doc/context/scripts/mkii/texmfstart.man
index a4cb78999..5ddb5f6b2 100644
--- a/doc/context/scripts/mkii/texmfstart.man
+++ b/doc/context/scripts/mkii/texmfstart.man
@@ -119,6 +119,9 @@ show (known) experiments
.B --expand-braces
expand complex variable
.TP
+.B --resolve-path
+expand variable (completely resolve paths)
+.TP
.B --expand-path
expand variable (resolve paths)
.TP
diff --git a/doc/context/scripts/mkii/texmfstart.xml b/doc/context/scripts/mkii/texmfstart.xml
index 89644caf1..a10fef328 100644
--- a/doc/context/scripts/mkii/texmfstart.xml
+++ b/doc/context/scripts/mkii/texmfstart.xml
@@ -65,6 +65,7 @@
</subcategory>
<subcategory>
<flag name="expand-braces"><short>expand complex variable</short></flag>
+ <flag name="resolve-path"><short>expand variable (completely resolve paths)</short></flag>
<flag name="expand-path"><short>expand variable (resolve paths)</short></flag>
<flag name="expand-var"><short>expand variable (resolve references)</short></flag>
<flag name="show-path"><short>show path expansion of ...</short></flag>
diff --git a/doc/context/scripts/mkiv/mtxrun.html b/doc/context/scripts/mkiv/mtxrun.html
index 91931ac8b..8b6155041 100644
--- a/doc/context/scripts/mkiv/mtxrun.html
+++ b/doc/context/scripts/mkiv/mtxrun.html
@@ -86,6 +86,7 @@
<tr><th>--experiments</th><td></td><td>show (known) experiments</td></tr>
<tr><th/><td/><td/></tr>
<tr><th>--expand-braces</th><td></td><td>expand complex variable</td></tr>
+ <tr><th>--resolve-path</th><td></td><td>expand variable (completely resolve paths)</td></tr>
<tr><th>--expand-path</th><td></td><td>expand variable (resolve paths)</td></tr>
<tr><th>--expand-var</th><td></td><td>expand variable (resolve references)</td></tr>
<tr><th>--show-path</th><td></td><td>show path expansion of ...</td></tr>
diff --git a/doc/context/scripts/mkiv/mtxrun.man b/doc/context/scripts/mkiv/mtxrun.man
index a4cb78999..5ddb5f6b2 100644
--- a/doc/context/scripts/mkiv/mtxrun.man
+++ b/doc/context/scripts/mkiv/mtxrun.man
@@ -119,6 +119,9 @@ show (known) experiments
.B --expand-braces
expand complex variable
.TP
+.B --resolve-path
+expand variable (completely resolve paths)
+.TP
.B --expand-path
expand variable (resolve paths)
.TP
diff --git a/doc/context/scripts/mkiv/mtxrun.xml b/doc/context/scripts/mkiv/mtxrun.xml
index 4d1c7e604..25f58545f 100644
--- a/doc/context/scripts/mkiv/mtxrun.xml
+++ b/doc/context/scripts/mkiv/mtxrun.xml
@@ -66,6 +66,7 @@
</subcategory>
<subcategory>
<flag name="expand-braces"><short>expand complex variable</short></flag>
+ <flag name="resolve-path"><short>expand variable (completely resolve paths)</short></flag>
<flag name="expand-path"><short>expand variable (resolve paths)</short></flag>
<flag name="expand-var"><short>expand variable (resolve references)</short></flag>
<flag name="show-path"><short>show path expansion of ...</short></flag>
diff --git a/scripts/context/lua/mtx-unicode.lua b/scripts/context/lua/mtx-unicode.lua
index 5bf12a871..418df9261 100644
--- a/scripts/context/lua/mtx-unicode.lua
+++ b/scripts/context/lua/mtx-unicode.lua
@@ -46,8 +46,8 @@ local application = logs.application {
helpinfo = helpinfo,
}
-local gmatch, match, gsub, find, lower, format = string.gmatch, string.match, string.gsub, string.find, string.lower, string.format
-local concat = table.concat
+local gmatch, match, gsub, find, lower, upper, format = string.gmatch, string.match, string.gsub, string.find, string.lower, string.upper, string.format
+local concat, sort = table.concat, table.sort
local split, splitlines, strip = string.split, string.splitlines, string.strip
local are_equal = table.are_equal
local tonumber, tostring, rawget = tonumber, tostring, rawget
@@ -90,6 +90,7 @@ function scripts.unicode.update()
local eastasianwidth = texttables.eastasianwidth
local standardizedvariants = texttables.standardizedvariants
local arabicshaping = texttables.arabicshaping
+ local index = texttables.index
local characterdata = characters.data
--
for unicode, ud in table.sortedpairs(unicodedata) do
@@ -400,6 +401,22 @@ local function splitdefinition(str,index)
return t
end
+local function splitindex(str)
+ -- ok, quick and dirty ... could be a nice lpeg instead
+ local l = splitlines(str)
+ local n = { }
+ for i=1,#l do
+ local a, b, c = match(l[i],"([^%,]+)%,?(.-)\t(.*)")
+ if a and b and c then
+ local name = b .. " " .. a
+ name = strip(name)
+ name = gsub(name,"%s+"," ")
+ n[name] = tonumber(c,16)
+ end
+ end
+ return n
+end
+
function scripts.unicode.load()
local fullname = resolvers.findfile("char-def.lua")
report("using: %s",fullname)
@@ -428,6 +445,7 @@ function scripts.unicode.load()
eastasianwidth = resolvers.findfile("eastasianwidth.txt") or "",
standardizedvariants = resolvers.findfile("standardizedvariants.txt") or "",
arabicshaping = resolvers.findfile("arabicshaping.txt") or "",
+ index = resolvers.findfile("index.txt") or "",
}
--
textdata = {
@@ -437,6 +455,7 @@ function scripts.unicode.load()
eastasianwidth = textfiles.eastasianwidth ~= "" and io.loaddata(textfiles.eastasianwidth) or "",
standardizedvariants = textfiles.standardizedvariants ~= "" and io.loaddata(textfiles.standardizedvariants) or "",
arabicshaping = textfiles.arabicshaping ~= "" and io.loaddata(textfiles.arabicshaping) or "",
+ index = textfiles.index ~= "" and io.loaddata(textfiles.index) or "",
}
texttables = {
unicodedata = splitdefinition(textdata.unicodedata,true),
@@ -445,6 +464,7 @@ function scripts.unicode.load()
eastasianwidth = splitdefinition(textdata.eastasianwidth,true),
standardizedvariants = splitdefinition(textdata.standardizedvariants,false),
arabicshaping = splitdefinition(textdata.arabicshaping,true),
+ index = splitindex(textdata.index),
}
return true
else
@@ -500,11 +520,11 @@ function scripts.unicode.extras() -- old code
end
end
end
- table.sort(result)
+ sort(result)
for i=1,#result do
report(result[i])
end
- table.sort(map)
+ sort(map)
for i=1,#map do
local m = map[i]
if not blocks[m] then
@@ -512,6 +532,43 @@ function scripts.unicode.extras() -- old code
end
end
end
+ --
+ local index = texttables.index
+ local blocks = characters.blocks
+ local data = characters.data
+ for k, v in next, index do
+ if k ~= lower(k) then
+ index[k] = nil
+ end
+ end
+-- for k, v in next, data do
+-- v.synonym = nil
+-- v.synonyms = nil
+-- end
+ for k, v in table.sortedhash(index) do
+ local d = data[v]
+ if d and d.description ~= upper(k) then
+ local synonyms = d.synonyms
+ if synonyms then
+ local n = #synonyms
+ local f = false
+ for i=1,n do
+ if synonyms[i] == k then
+ f = true
+ break
+ end
+ end
+ if not f then
+ synonyms[n+1] = k
+ end
+ -- synonyms = table.unique(synonyms)
+ -- d.synonyms = synonyms
+ sort(synonyms)
+ else
+ d.synonyms = { k }
+ end
+ end
+ end
end
-- the action
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index b2101937a..6b998eb74 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -1670,7 +1670,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2020,7 +2020,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i]=v
+ if hexify then
+ tt[i]=format("0x%X",v)
+ else
+ tt[i]=v
+ end
elseif tv=="string" then
tt[i]=format("%q",v)
elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i+1]=v
+ if hexify then
+ tt[i+1]=format("0x%X",v)
+ else
+ tt[i+1]=v
+ end
elseif tv=="string" then
tt[i+1]=format("%q",v)
elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@ end -- of closure
-- used libraries : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 841485
--- stripped bytes : 305240
+-- original bytes : 841875
+-- stripped bytes : 305446
-- end library merge
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index b2101937a..6b998eb74 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -1670,7 +1670,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2020,7 +2020,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i]=v
+ if hexify then
+ tt[i]=format("0x%X",v)
+ else
+ tt[i]=v
+ end
elseif tv=="string" then
tt[i]=format("%q",v)
elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i+1]=v
+ if hexify then
+ tt[i+1]=format("0x%X",v)
+ else
+ tt[i+1]=v
+ end
elseif tv=="string" then
tt[i+1]=format("%q",v)
elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@ end -- of closure
-- used libraries : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 841485
--- stripped bytes : 305240
+-- original bytes : 841875
+-- stripped bytes : 305446
-- end library merge
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index b2101937a..6b998eb74 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -1670,7 +1670,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2020,7 +2020,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i]=v
+ if hexify then
+ tt[i]=format("0x%X",v)
+ else
+ tt[i]=v
+ end
elseif tv=="string" then
tt[i]=format("%q",v)
elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i+1]=v
+ if hexify then
+ tt[i+1]=format("0x%X",v)
+ else
+ tt[i+1]=v
+ end
elseif tv=="string" then
tt[i+1]=format("%q",v)
elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@ end -- of closure
-- used libraries : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 841485
--- stripped bytes : 305240
+-- original bytes : 841875
+-- stripped bytes : 305446
-- end library merge
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index b2101937a..6b998eb74 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -1670,7 +1670,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2020,7 +2020,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i]=v
+ if hexify then
+ tt[i]=format("0x%X",v)
+ else
+ tt[i]=v
+ end
elseif tv=="string" then
tt[i]=format("%q",v)
elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i+1]=v
+ if hexify then
+ tt[i+1]=format("0x%X",v)
+ else
+ tt[i+1]=v
+ end
elseif tv=="string" then
tt[i+1]=format("%q",v)
elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@ end -- of closure
-- used libraries : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 841485
--- stripped bytes : 305240
+-- original bytes : 841875
+-- stripped bytes : 305446
-- end library merge
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index d256c24d9..0d52642ba 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.04.16 12:32}
+\newcontextversion{2017.04.20 21:31}
%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/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 26595dd56..6e0150998 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.04.16 12:32}
+\edef\contextversion{2017.04.20 21:31}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua
index 6a1b04e01..0618ceb2e 100644
--- a/tex/context/base/mkiv/char-def.lua
+++ b/tex/context/base/mkiv/char-def.lua
@@ -103,6 +103,7 @@ characters.data={
description="CHARACTER TABULATION",
direction="s",
linebreak="ba",
+ synonyms={ "horizontal tabulation", "ht", "tab" },
unicodeslot=0x9,
},
{
@@ -111,6 +112,7 @@ characters.data={
description="LINE FEED (LF)",
direction="b",
linebreak="lf",
+ synonyms={ "end of line", "eol", "lf", "new line", "nl" },
unicodeslot=0xA,
},
{
@@ -119,6 +121,7 @@ characters.data={
description="LINE TABULATION",
direction="s",
linebreak="bk",
+ synonyms={ "vertical tabulation", "vt" },
unicodeslot=0xB,
},
{
@@ -127,6 +130,7 @@ characters.data={
description="FORM FEED (FF)",
direction="ws",
linebreak="bk",
+ synonyms={ "ff" },
unicodeslot=0xC,
},
{
@@ -135,6 +139,7 @@ characters.data={
description="CARRIAGE RETURN (CR)",
direction="b",
linebreak="cr",
+ synonyms={ "cr" },
unicodeslot=0xD,
},
{
@@ -255,6 +260,7 @@ characters.data={
description="INFORMATION SEPARATOR FOUR",
direction="b",
linebreak="cm",
+ synonyms={ "file separator" },
unicodeslot=0x1C,
},
{
@@ -263,6 +269,7 @@ characters.data={
description="INFORMATION SEPARATOR THREE",
direction="b",
linebreak="cm",
+ synonyms={ "group separator" },
unicodeslot=0x1D,
},
{
@@ -271,6 +278,7 @@ characters.data={
description="INFORMATION SEPARATOR TWO",
direction="b",
linebreak="cm",
+ synonyms={ "record separator" },
unicodeslot=0x1E,
},
{
@@ -279,6 +287,7 @@ characters.data={
description="INFORMATION SEPARATOR ONE",
direction="s",
linebreak="cm",
+ synonyms={ "unit separator" },
unicodeslot=0x1F,
},
{
@@ -298,6 +307,7 @@ characters.data={
direction="on",
linebreak="ex",
mathclass="close",
+ synonyms={ "bang", "factorial" },
unicodeslot=0x21,
},
{
@@ -309,6 +319,7 @@ characters.data={
direction="on",
linebreak="qu",
mathclass="default",
+ synonyms={ "neutral quotation mark" },
unicodeslot=0x22,
},
{
@@ -321,11 +332,9 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="mathhash",
+ synonyms={ "crosshatch", "hash", "octothorpe", "pound sign" },
unicodeslot=0x23,
- variants={
- [0xFE0E]="text style",
- [0xFE0F]="emoji style",
- },
+ variants=variants_emoji,
},
{
adobename="dollar",
@@ -337,6 +346,7 @@ characters.data={
linebreak="pr",
mathclass="binary",
mathname="mathdollar",
+ synonyms={ "escudo", "milreis" },
unicodeslot=0x24,
},
{
@@ -372,6 +382,7 @@ characters.data={
direction="on",
linebreak="qu",
mathclass="default",
+ synonyms={ "apl quote", "apostrophe-quote", "neutral single quotation mark" },
unicodeslot=0x27,
},
{
@@ -384,6 +395,7 @@ characters.data={
mathclass="open",
mathname="lparent",
mirror=0x29,
+ synonyms={ "opening parenthesis" },
textclass="open",
unicodeslot=0x28,
},
@@ -397,6 +409,7 @@ characters.data={
mathclass="close",
mathname="rparent",
mirror=0x28,
+ synonyms={ "closing parenthesis" },
textclass="close",
unicodeslot=0x29,
},
@@ -410,6 +423,7 @@ characters.data={
mathclass="binary",
mathname="ast",
mathsymbol=0x2217,
+ synonyms={ "star" },
unicodeslot=0x2A,
variants=variants_emoji,
},
@@ -432,6 +446,7 @@ characters.data={
direction="cs",
linebreak="is",
mathclass="punctuation",
+ synonyms={ "decimal separator" },
unicodeslot=0x2C,
},
{
@@ -447,6 +462,7 @@ characters.data={
mathfiller="relfill",
mathname="mathhyphen",
mathsymbol=0x2212,
+ synonyms={ "hyphen or minus sign", "hyphus" },
unicodeslot=0x2D,
},
{
@@ -465,6 +481,7 @@ characters.data={
name="ldotp",
},
},
+ synonyms={ "decimal point", "dot", "period" },
unicodeslot=0x2E,
},
{
@@ -483,6 +500,7 @@ characters.data={
class="ordinary",
},
},
+ synonyms={ "slash", "virgule" },
unicodeslot=0x2F,
},
{
@@ -618,6 +636,7 @@ characters.data={
direction="on",
linebreak="is",
mathclass="punctuation",
+ synonyms={ "greek question mark" },
unicodeslot=0x3B,
},
{
@@ -686,6 +705,7 @@ characters.data={
description="COMMERCIAL AT",
direction="on",
linebreak="al",
+ synonyms={ "at sign" },
unicodeslot=0x40,
},
{
@@ -986,6 +1006,7 @@ characters.data={
mathclass="open",
mathname="lbracket",
mirror=0x5D,
+ synonyms={ "opening square bracket" },
textclass="open",
unicodeslot=0x5B,
},
@@ -999,6 +1020,7 @@ characters.data={
linebreak="pr",
mathclass="nothing",
mathname="backslash",
+ synonyms={ "backslash" },
unicodeslot=0x5C,
},
{
@@ -1011,6 +1033,7 @@ characters.data={
mathclass="close",
mathname="rbracket",
mirror=0x5B,
+ synonyms={ "closing square bracket" },
textclass="close",
unicodeslot=0x5D,
},
@@ -1024,6 +1047,7 @@ characters.data={
linebreak="al",
mathclass="topaccent",
mathname="Hat",
+ synonyms={ "spacing circumflex accent" },
unicodeslot=0x5E,
},
{
@@ -1034,6 +1058,7 @@ characters.data={
description="LOW LINE",
direction="on",
linebreak="al",
+ synonyms={ "spacing underscore" },
unicodeslot=0x5F,
},
{
@@ -1046,6 +1071,7 @@ characters.data={
linebreak="al",
mathclass="topaccent",
mathname="grave",
+ synonyms={ "spacing grave accent" },
unicodeslot=0x60,
},
{
@@ -1346,6 +1372,7 @@ characters.data={
mathclass="open",
mathname="lbrace",
mirror=0x7D,
+ synonyms={ "opening brace", "opening curly bracket" },
textclass="open",
unicodeslot=0x7B,
},
@@ -1384,6 +1411,7 @@ characters.data={
name="singleverticalbar",
},
},
+ synonyms={ "absolute value", "vertical bar" },
unicodeslot=0x7C,
},
{
@@ -1397,6 +1425,7 @@ characters.data={
mathclass="close",
mathname="rbrace",
mirror=0x7B,
+ synonyms={ "closing brace", "closing curly bracket" },
textclass="close",
unicodeslot=0x7D,
},
@@ -1408,6 +1437,7 @@ characters.data={
description="TILDE",
direction="on",
linebreak="al",
+ synonyms={ "spacing tilde" },
unicodeslot=0x7E,
},
{
@@ -1458,6 +1488,7 @@ characters.data={
description="NEXT LINE (NEL)",
direction="b",
linebreak="nl",
+ synonyms={ "nel" },
unicodeslot=0x85,
},
{
@@ -1650,6 +1681,7 @@ characters.data={
direction="cs",
linebreak="gl",
specials={ "nobreak", 0x20 },
+ synonyms={ "nbsp", "non-breaking space" },
unicodeslot=0xA0,
},
{
@@ -1680,6 +1712,7 @@ characters.data={
description="POUND SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "irish punt", "italian lira", "pound sterling" },
unicodeslot=0xA3,
},
{
@@ -1702,6 +1735,7 @@ characters.data={
linebreak="pr",
mathclass="nothing",
mathname="yen",
+ synonyms={ "yuan sign" },
unicodeslot=0xA5,
},
{
@@ -1712,6 +1746,7 @@ characters.data={
description="BROKEN BAR",
direction="on",
linebreak="al",
+ synonyms={ "broken vertical bar", "parted rule" },
unicodeslot=0xA6,
},
{
@@ -1724,6 +1759,7 @@ characters.data={
linebreak="ai",
mathclass="box",
mathname="S",
+ synonyms={ "european paragraph sign" },
unicodeslot=0xA7,
},
{
@@ -1737,6 +1773,7 @@ characters.data={
mathclass="topaccent",
mathname="ddot",
specials={ "compat", 0x20, 0x308 },
+ synonyms={ "spacing diaeresis" },
unicodeslot=0xA8,
},
{
@@ -1768,6 +1805,7 @@ characters.data={
direction="on",
linebreak="qu",
mirror=0xBB,
+ synonyms={ "chevrons", "left pointing guillemet" },
textclass="open",
unicodeslot=0xAB,
},
@@ -1789,6 +1827,7 @@ characters.data={
name="neg",
},
},
+ synonyms={ "angled dash" },
unicodeslot=0xAC,
},
{
@@ -1799,6 +1838,7 @@ characters.data={
description="SOFT HYPHEN",
direction="bn",
linebreak="ba",
+ synonyms={ "discretionary hyphen", "shy" },
unicodeslot=0xAD,
},
{
@@ -1809,6 +1849,7 @@ characters.data={
description="REGISTERED SIGN",
direction="on",
linebreak="al",
+ synonyms={ "registered trade mark sign" },
unicodeslot=0xAE,
variants=variants_emoji,
},
@@ -1825,6 +1866,7 @@ characters.data={
mathmleq=0x203E,
mathname="bar",
specials={ "compat", 0x20, 0x304 },
+ synonyms={ "apl overbar", "overline", "spacing macron" },
unicodeslot=0xAF,
},
{
@@ -1858,6 +1900,7 @@ characters.data={
direction="en",
linebreak="ai",
specials={ "super", 0x32 },
+ synonyms={ "squared" },
unicodeslot=0xB2,
},
{
@@ -1869,6 +1912,7 @@ characters.data={
direction="en",
linebreak="ai",
specials={ "super", 0x33 },
+ synonyms={ "cubed" },
unicodeslot=0xB3,
},
{
@@ -1882,6 +1926,7 @@ characters.data={
mathclass="topaccent",
mathname="acute",
specials={ "compat", 0x20, 0x301 },
+ synonyms={ "spacing acute accent" },
unicodeslot=0xB4,
},
{
@@ -1905,6 +1950,7 @@ characters.data={
linebreak="ai",
mathclass="box",
mathname="P",
+ synonyms={ "european section sign", "paragraph sign" },
unicodeslot=0xB6,
},
{
@@ -1917,6 +1963,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="centerdot",
+ synonyms={ "georgian comma", "greek ano teleia", "greek middle dot", "midpoint" },
unicodeslot=0xB7,
},
{
@@ -1928,6 +1975,7 @@ characters.data={
direction="on",
linebreak="ai",
specials={ "compat", 0x20, 0x327 },
+ synonyms={ "spacing cedilla" },
unicodeslot=0xB8,
},
{
@@ -1960,6 +2008,7 @@ characters.data={
direction="on",
linebreak="qu",
mirror=0xAB,
+ synonyms={ "right pointing guillemet" },
textclass="close",
unicodeslot=0xBB,
},
@@ -2004,6 +2053,7 @@ characters.data={
description="INVERTED QUESTION MARK",
direction="on",
linebreak="op",
+ synonyms={ "turned question mark" },
unicodeslot=0xBF,
},
{
@@ -2088,6 +2138,7 @@ characters.data={
lccode=0xE6,
linebreak="al",
shcode={ 0x41, 0x45 },
+ synonyms={ "latin capital ligature ae" },
unicodeslot=0xC6,
},
{
@@ -2291,6 +2342,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="times",
+ synonyms={ "cartesian product" },
unicodeslot=0xD7,
},
{
@@ -2303,6 +2355,7 @@ characters.data={
lccode=0xF8,
linebreak="al",
shcode=0x4F,
+ synonyms={ "latin capital letter o slash" },
unicodeslot=0xD8,
},
{
@@ -2386,6 +2439,7 @@ characters.data={
direction="l",
linebreak="al",
shcode={ 0x73, 0x73 },
+ synonyms={ "eszett" },
uccode={ 0x53, 0x53 },
unicodeslot=0xDF,
},
@@ -2472,6 +2526,7 @@ characters.data={
direction="l",
linebreak="al",
shcode={ 0x61, 0x65 },
+ synonyms={ "ash", "latin small ligature ae" },
uccode=0xC6,
unicodeslot=0xE6,
},
@@ -2685,6 +2740,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="div",
+ synonyms={ "obelus" },
unicodeslot=0xF7,
},
{
@@ -2696,6 +2752,7 @@ characters.data={
direction="l",
linebreak="al",
shcode=0x6F,
+ synonyms={ "latin small letter o slash" },
uccode=0xD8,
unicodeslot=0xF8,
},
@@ -3374,6 +3431,7 @@ characters.data={
linebreak="al",
shcode=0x49,
specials={ "char", 0x49, 0x307 },
+ synonyms={ "latin capital letter i dot" },
unicodeslot=0x130,
},
{
@@ -3794,6 +3852,7 @@ characters.data={
direction="l",
linebreak="al",
shcode={ 0x6F, 0x65 },
+ synonyms={ "ethel", "latin small letter o e" },
uccode=0x152,
unicodeslot=0x153,
},
@@ -4472,6 +4531,7 @@ characters.data={
direction="l",
lccode=0x1DD,
linebreak="al",
+ synonyms={ "latin capital letter turned e" },
unicodeslot=0x18E,
},
{
@@ -4491,6 +4551,7 @@ characters.data={
direction="l",
lccode=0x25B,
linebreak="al",
+ synonyms={ "latin capital letter epsilon" },
unicodeslot=0x190,
},
{
@@ -4512,6 +4573,7 @@ characters.data={
direction="l",
linebreak="al",
shcode=0x66,
+ synonyms={ "florin currency symbol", "folder", "function symbol", "latin small letter script f" },
uccode=0x191,
unicodeslot=0x192,
},
@@ -4562,6 +4624,7 @@ characters.data={
lccode=0x268,
linebreak="al",
shcode=0x49,
+ synonyms={ "latin capital letter i bar" },
unicodeslot=0x197,
},
{
@@ -4605,6 +4668,7 @@ characters.data={
linebreak="al",
mathclass="variable",
mathname="lambdabar",
+ synonyms={ "latin letter lambda bar" },
unicodeslot=0x19B,
},
{
@@ -4644,6 +4708,7 @@ characters.data={
lccode=0x275,
linebreak="al",
shcode=0x4F,
+ synonyms={ "latin capital letter barred o", "latin capital letter o bar" },
unicodeslot=0x19F,
},
{
@@ -4837,6 +4902,7 @@ characters.data={
lccode=0x28B,
linebreak="al",
shcode=0x56,
+ synonyms={ "latin capital letter script v" },
unicodeslot=0x1B2,
},
{
@@ -4880,6 +4946,7 @@ characters.data={
direction="l",
linebreak="al",
shcode=0x7A,
+ synonyms={ "latin small letter z bar" },
uccode=0x1B5,
unicodeslot=0x1B6,
},
@@ -4968,6 +5035,7 @@ characters.data={
description="LATIN LETTER DENTAL CLICK",
direction="l",
linebreak="al",
+ synonyms={ "pipe" },
unicodeslot=0x1C0,
},
{
@@ -4976,6 +5044,7 @@ characters.data={
description="LATIN LETTER LATERAL CLICK",
direction="l",
linebreak="al",
+ synonyms={ "double pipe" },
unicodeslot=0x1C1,
},
{
@@ -4984,6 +5053,7 @@ characters.data={
description="LATIN LETTER ALVEOLAR CLICK",
direction="l",
linebreak="al",
+ synonyms={ "double-barred pipe" },
unicodeslot=0x1C2,
},
{
@@ -4992,6 +5062,7 @@ characters.data={
description="LATIN LETTER RETROFLEX CLICK",
direction="l",
linebreak="al",
+ synonyms={ "latin letter exclamation mark" },
unicodeslot=0x1C3,
},
{
@@ -6549,6 +6620,7 @@ characters.data={
description="LATIN SMALL LETTER ALPHA",
direction="l",
linebreak="al",
+ synonyms={ "latin small letter script a" },
unicodeslot=0x251,
},
{
@@ -6597,6 +6669,7 @@ characters.data={
direction="l",
linebreak="al",
shcode=0x64,
+ synonyms={ "latin small letter d retroflex hook" },
uccode=0x189,
unicodeslot=0x256,
},
@@ -6645,6 +6718,7 @@ characters.data={
description="LATIN SMALL LETTER OPEN E",
direction="l",
linebreak="al",
+ synonyms={ "latin small letter epsilon" },
uccode=0x190,
unicodeslot=0x25B,
},
@@ -6670,6 +6744,7 @@ characters.data={
description="LATIN SMALL LETTER CLOSED REVERSED OPEN E",
direction="l",
linebreak="al",
+ synonyms={ "latin small letter closed reversed epsilon" },
unicodeslot=0x25E,
},
{
@@ -6722,6 +6797,7 @@ characters.data={
description="LATIN SMALL LETTER RAMS HORN",
direction="l",
linebreak="al",
+ synonyms={ "latin small letter baby gamma" },
unicodeslot=0x264,
},
{
@@ -6869,6 +6945,7 @@ characters.data={
description="LATIN SMALL LETTER BARRED O",
direction="l",
linebreak="al",
+ synonyms={ "latin small letter o bar" },
uccode=0x19F,
unicodeslot=0x275,
},
@@ -7057,6 +7134,7 @@ characters.data={
direction="l",
linebreak="al",
shcode=0x76,
+ synonyms={ "latin small letter script v" },
uccode=0x1B2,
unicodeslot=0x28B,
},
@@ -7066,6 +7144,7 @@ characters.data={
description="LATIN SMALL LETTER TURNED V",
direction="l",
linebreak="al",
+ synonyms={ "caret" },
uccode=0x245,
unicodeslot=0x28C,
},
@@ -7116,6 +7195,7 @@ characters.data={
description="LATIN SMALL LETTER EZH",
direction="l",
linebreak="al",
+ synonyms={ "dram" },
uccode=0x1B7,
unicodeslot=0x292,
},
@@ -7142,6 +7222,7 @@ characters.data={
description="LATIN LETTER PHARYNGEAL VOICED FRICATIVE",
direction="l",
linebreak="al",
+ synonyms={ "latin letter reversed glottal stop" },
unicodeslot=0x295,
},
{
@@ -7166,6 +7247,7 @@ characters.data={
description="LATIN LETTER BILABIAL CLICK",
direction="l",
linebreak="al",
+ synonyms={ "latin letter bullseye" },
unicodeslot=0x298,
},
{
@@ -7181,6 +7263,7 @@ characters.data={
description="LATIN SMALL LETTER CLOSED OPEN E",
direction="l",
linebreak="al",
+ synonyms={ "latin small letter closed epsilon" },
unicodeslot=0x29A,
},
{
@@ -7454,6 +7537,7 @@ characters.data={
description="MODIFIER LETTER APOSTROPHE",
direction="l",
linebreak="al",
+ synonyms={ "glottal stop", "neutral apostrophe" },
unicodeslot=0x2BC,
},
{
@@ -7554,6 +7638,7 @@ characters.data={
mathclass="topaccent",
mathname="check",
specials={ "compat", 0x20, 0x30C },
+ synonyms={ "mandarin chinese third tone", "modifier letter hacek" },
unicodeslot=0x2C7,
},
{
@@ -7571,6 +7656,7 @@ characters.data={
description="MODIFIER LETTER MACRON",
direction="on",
linebreak="ai",
+ synonyms={ "mandarin chinese first tone" },
unicodeslot=0x2C9,
},
{
@@ -7580,6 +7666,7 @@ characters.data={
description="MODIFIER LETTER ACUTE ACCENT",
direction="on",
linebreak="ai",
+ synonyms={ "mandarin chinese second tone" },
unicodeslot=0x2CA,
},
{
@@ -7589,6 +7676,7 @@ characters.data={
description="MODIFIER LETTER GRAVE ACCENT",
direction="on",
linebreak="ai",
+ synonyms={ "mandarin chinese fourth tone" },
unicodeslot=0x2CB,
},
{
@@ -7713,6 +7801,7 @@ characters.data={
mathclass="topaccent",
mathname="dot",
specials={ "compat", 0x20, 0x307 },
+ synonyms={ "mandarin chinese fifth or neutral tone" },
unicodeslot=0x2D9,
},
{
@@ -7776,6 +7865,7 @@ characters.data={
description="MODIFIER LETTER CROSS ACCENT",
direction="on",
linebreak="bb",
+ synonyms={ "swedish grave accent" },
unicodeslot=0x2DF,
},
{
@@ -8023,6 +8113,7 @@ characters.data={
description="COMBINING GRAVE ACCENT",
direction="nsm",
linebreak="cm",
+ synonyms={ "greek varia" },
unicodeslot=0x300,
},
{
@@ -8033,6 +8124,7 @@ characters.data={
description="COMBINING ACUTE ACCENT",
direction="nsm",
linebreak="cm",
+ synonyms={ "greek oxia", "greek tonos", "stress mark" },
unicodeslot=0x301,
},
{
@@ -8069,6 +8161,7 @@ characters.data={
description="COMBINING MACRON",
direction="nsm",
linebreak="cm",
+ synonyms={ "long" },
unicodeslot=0x304,
},
{
@@ -8079,6 +8172,7 @@ characters.data={
description="COMBINING OVERLINE",
direction="nsm",
linebreak="cm",
+ synonyms={ "overscore", "vinculum" },
unicodeslot=0x305,
},
{
@@ -8089,6 +8183,7 @@ characters.data={
description="COMBINING BREVE",
direction="nsm",
linebreak="cm",
+ synonyms={ "greek vrachy", "short" },
unicodeslot=0x306,
},
{
@@ -8099,6 +8194,7 @@ characters.data={
description="COMBINING DOT ABOVE",
direction="nsm",
linebreak="cm",
+ synonyms={ "derivative" },
unicodeslot=0x307,
},
{
@@ -8109,6 +8205,7 @@ characters.data={
description="COMBINING DIAERESIS",
direction="nsm",
linebreak="cm",
+ synonyms={ "double derivative", "double dot above", "greek dialytika", "umlaut" },
unicodeslot=0x308,
},
{
@@ -8149,6 +8246,7 @@ characters.data={
description="COMBINING CARON",
direction="nsm",
linebreak="cm",
+ synonyms={ "combining hacek", "v above" },
unicodeslot=0x30C,
},
{
@@ -8209,6 +8307,7 @@ characters.data={
description="COMBINING TURNED COMMA ABOVE",
direction="nsm",
linebreak="cm",
+ synonyms={ "cedilla above" },
unicodeslot=0x312,
},
{
@@ -8219,6 +8318,7 @@ characters.data={
description="COMBINING COMMA ABOVE",
direction="nsm",
linebreak="cm",
+ synonyms={ "greek psili", "greek smooth breathing mark" },
unicodeslot=0x313,
},
{
@@ -8229,6 +8329,7 @@ characters.data={
description="COMBINING REVERSED COMMA ABOVE",
direction="nsm",
linebreak="cm",
+ synonyms={ "greek dasia", "greek rough breathing mark" },
unicodeslot=0x314,
},
{
@@ -8430,6 +8531,7 @@ characters.data={
description="COMBINING OGONEK",
direction="nsm",
linebreak="cm",
+ synonyms={ "nasal hook" },
unicodeslot=0x328,
},
{
@@ -8530,6 +8632,7 @@ characters.data={
description="COMBINING LOW LINE",
direction="nsm",
linebreak="cm",
+ synonyms={ "underline", "underscore" },
unicodeslot=0x332,
},
{
@@ -8540,6 +8643,7 @@ characters.data={
description="COMBINING DOUBLE LOW LINE",
direction="nsm",
linebreak="cm",
+ synonyms={ "double underline", "double underscore" },
unicodeslot=0x333,
},
{
@@ -8580,6 +8684,7 @@ characters.data={
description="COMBINING SHORT SOLIDUS OVERLAY",
direction="nsm",
linebreak="cm",
+ synonyms={ "short slash overlay" },
unicodeslot=0x337,
},
{
@@ -8592,6 +8697,7 @@ characters.data={
linebreak="cm",
mathclass="relation",
mathname="not",
+ synonyms={ "long slash overlay" },
unicodeslot=0x338,
},
{
@@ -8726,6 +8832,7 @@ characters.data={
description="COMBINING GREEK YPOGEGRAMMENI",
direction="nsm",
linebreak="cm",
+ synonyms={ "greek iota subscript", "greek non-spacing iota below" },
uccode=0x399,
unicodeslot=0x345,
},
@@ -8816,6 +8923,7 @@ characters.data={
description="COMBINING GRAPHEME JOINER",
direction="nsm",
linebreak="gl",
+ synonyms={ "cgj" },
unicodeslot=0x34F,
},
{
@@ -8933,6 +9041,7 @@ characters.data={
description="COMBINING DOUBLE BREVE BELOW",
direction="nsm",
linebreak="gl",
+ synonyms={ "ligature tie below", "papyrological hyphen" },
unicodeslot=0x35C,
},
{
@@ -8980,6 +9089,7 @@ characters.data={
description="COMBINING DOUBLE INVERTED BREVE",
direction="nsm",
linebreak="gl",
+ synonyms={ "ligature tie" },
unicodeslot=0x361,
},
{
@@ -9377,6 +9487,7 @@ characters.data={
linebreak="al",
mathclass="variable",
mathname="Gamma",
+ synonyms={ "gamma function" },
unicodeslot=0x393,
},
[0x394]={
@@ -9940,6 +10051,7 @@ characters.data={
linebreak="al",
mathclass="variable",
mathname="pi",
+ synonyms={ "mathematical constant 3.141592... pi", "mathematical constant pi" },
uccode=0x3A0,
unicodeslot=0x3C0,
},
@@ -10133,6 +10245,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x3B2 },
+ synonyms={ "curled beta" },
uccode=0x392,
unicodeslot=0x3D0,
},
@@ -10146,6 +10259,7 @@ characters.data={
mathclass="variable",
mathname="varTheta",
specials={ "compat", 0x3B8 },
+ synonyms={ "script theta" },
uccode=0x398,
unicodeslot=0x3D1,
},
@@ -10199,6 +10313,7 @@ characters.data={
mathclass="variable",
mathname="varpi",
specials={ "compat", 0x3C0 },
+ synonyms={ "omega pi" },
uccode=0x3A0,
unicodeslot=0x3D6,
},
@@ -10457,6 +10572,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x3C2 },
+ synonyms={ "greek small letter lunate sigma" },
uccode=0x3F9,
unicodeslot=0x3F2,
},
@@ -10486,6 +10602,7 @@ characters.data={
mathclass="variable",
mathname="epsilon",
specials={ "compat", 0x3B5 },
+ synonyms={ "straight epsilon" },
uccode=0x395,
unicodeslot=0x3F5,
},
@@ -10496,6 +10613,7 @@ characters.data={
linebreak="al",
mathclass="variable",
mathname="backepsilon",
+ synonyms={ "reversed straight epsilon" },
unicodeslot=0x3F6,
},
[0x3F7]={
@@ -14007,6 +14125,7 @@ characters.data={
description="ARMENIAN APOSTROPHE",
direction="l",
linebreak="al",
+ synonyms={ "armenian modifier letter right half ring" },
unicodeslot=0x55A,
},
[0x55B]={
@@ -14015,6 +14134,7 @@ characters.data={
description="ARMENIAN EMPHASIS MARK",
direction="l",
linebreak="al",
+ synonyms={ "armenian shesht" },
unicodeslot=0x55B,
},
[0x55C]={
@@ -14023,6 +14143,7 @@ characters.data={
description="ARMENIAN EXCLAMATION MARK",
direction="l",
linebreak="al",
+ synonyms={ "armenian batsaganchakan nshan" },
unicodeslot=0x55C,
},
[0x55D]={
@@ -14031,6 +14152,7 @@ characters.data={
description="ARMENIAN COMMA",
direction="l",
linebreak="al",
+ synonyms={ "armenian bowt" },
unicodeslot=0x55D,
},
[0x55E]={
@@ -14039,6 +14161,7 @@ characters.data={
description="ARMENIAN QUESTION MARK",
direction="l",
linebreak="al",
+ synonyms={ "armenian hartsakan nshan" },
unicodeslot=0x55E,
},
[0x55F]={
@@ -14047,6 +14170,7 @@ characters.data={
description="ARMENIAN ABBREVIATION MARK",
direction="l",
linebreak="al",
+ synonyms={ "armenian patiw" },
unicodeslot=0x55F,
},
[0x561]={
@@ -14406,6 +14530,7 @@ characters.data={
description="ARMENIAN FULL STOP",
direction="l",
linebreak="is",
+ synonyms={ "armenian vertsaket", "georgian full stop" },
unicodeslot=0x589,
},
[0x58A]={
@@ -14413,6 +14538,7 @@ characters.data={
description="ARMENIAN HYPHEN",
direction="on",
linebreak="ba",
+ synonyms={ "armenian yentamna" },
unicodeslot=0x58A,
},
[0x58D]={
@@ -14434,6 +14560,7 @@ characters.data={
description="ARMENIAN DRAM SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "armenian currency" },
unicodeslot=0x58F,
},
[0x591]={
@@ -15747,6 +15874,7 @@ characters.data={
description="ARABIC TATWEEL",
direction="al",
linebreak="al",
+ synonyms={ "arabic kashida" },
unicodeslot=0x640,
},
[0x641]={
@@ -16117,6 +16245,7 @@ characters.data={
description="ARABIC THOUSANDS SEPARATOR",
direction="an",
linebreak="nu",
+ synonyms={ "arabic phrase separator" },
unicodeslot=0x66C,
},
[0x66D]={
@@ -16850,6 +16979,7 @@ characters.data={
linebreak="al",
shcode=0x647,
specials={ "char", 0x6D5, 0x654 },
+ synonyms={ "arabic letter hamzah on ha", "izafet" },
unicodeslot=0x6C0,
},
[0x6C1]={
@@ -17471,6 +17601,7 @@ characters.data={
description="SYRIAC ABBREVIATION MARK",
direction="al",
linebreak="al",
+ synonyms={ "syriac sam" },
unicodeslot=0x70F,
visible="yes",
},
@@ -20466,6 +20597,7 @@ characters.data={
description="DEVANAGARI SIGN CANDRABINDU",
direction="nsm",
linebreak="cm",
+ synonyms={ "devanagari anunasika" },
unicodeslot=0x901,
},
[0x902]={
@@ -20474,6 +20606,7 @@ characters.data={
description="DEVANAGARI SIGN ANUSVARA",
direction="nsm",
linebreak="cm",
+ synonyms={ "devanagari bindu" },
unicodeslot=0x902,
},
[0x903]={
@@ -21076,6 +21209,7 @@ characters.data={
description="DEVANAGARI SIGN VIRAMA",
direction="nsm",
linebreak="cm",
+ synonyms={ "halant" },
unicodeslot=0x94D,
},
[0x94E]={
@@ -21267,6 +21401,7 @@ characters.data={
description="DEVANAGARI DANDA",
direction="l",
linebreak="ba",
+ synonyms={ "devanagari phrase separator", "devanagari purna viram" },
unicodeslot=0x964,
},
[0x965]={
@@ -21275,6 +21410,7 @@ characters.data={
description="DEVANAGARI DOUBLE DANDA",
direction="l",
linebreak="ba",
+ synonyms={ "devanagari deergh viram" },
unicodeslot=0x965,
},
[0x966]={
@@ -21966,6 +22102,7 @@ characters.data={
description="BENGALI SIGN VIRAMA",
direction="nsm",
linebreak="cm",
+ synonyms={ "bengali hasant" },
unicodeslot=0x9CD,
},
[0x9CE]={
@@ -24177,6 +24314,7 @@ characters.data={
description="TAMIL SIGN VISARGA",
direction="l",
linebreak="al",
+ synonyms={ "tamil aytham" },
unicodeslot=0xB83,
},
[0xB85]={
@@ -24623,6 +24761,7 @@ characters.data={
description="TAMIL DAY SIGN",
direction="on",
linebreak="al",
+ synonyms={ "tamil naal" },
unicodeslot=0xBF3,
},
[0xBF4]={
@@ -24630,6 +24769,7 @@ characters.data={
description="TAMIL MONTH SIGN",
direction="on",
linebreak="al",
+ synonyms={ "tamil maatham" },
unicodeslot=0xBF4,
},
[0xBF5]={
@@ -24637,6 +24777,7 @@ characters.data={
description="TAMIL YEAR SIGN",
direction="on",
linebreak="al",
+ synonyms={ "tamil varudam" },
unicodeslot=0xBF5,
},
[0xBF6]={
@@ -24644,6 +24785,7 @@ characters.data={
description="TAMIL DEBIT SIGN",
direction="on",
linebreak="al",
+ synonyms={ "tamil patru" },
unicodeslot=0xBF6,
},
[0xBF7]={
@@ -24651,6 +24793,7 @@ characters.data={
description="TAMIL CREDIT SIGN",
direction="on",
linebreak="al",
+ synonyms={ "tamil varavu" },
unicodeslot=0xBF7,
},
[0xBF8]={
@@ -24658,6 +24801,7 @@ characters.data={
description="TAMIL AS ABOVE SIGN",
direction="on",
linebreak="al",
+ synonyms={ "tamil merpadi" },
unicodeslot=0xBF8,
},
[0xBF9]={
@@ -24665,6 +24809,7 @@ characters.data={
description="TAMIL RUPEE SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "tamil rupai" },
unicodeslot=0xBF9,
},
[0xBFA]={
@@ -24672,6 +24817,7 @@ characters.data={
description="TAMIL NUMBER SIGN",
direction="on",
linebreak="al",
+ synonyms={ "tamil enn" },
unicodeslot=0xBFA,
},
[0xC00]={
@@ -24693,6 +24839,7 @@ characters.data={
description="TELUGU SIGN ANUSVARA",
direction="l",
linebreak="cm",
+ synonyms={ "telugu sunna" },
unicodeslot=0xC02,
},
[0xC03]={
@@ -26465,6 +26612,7 @@ characters.data={
description="MALAYALAM SIGN VIRAMA",
direction="nsm",
linebreak="cm",
+ synonyms={ "malayalam chandrakkala", "malayalam vowel half-u" },
unicodeslot=0xD4D,
},
[0xD4E]={
@@ -27208,6 +27356,7 @@ characters.data={
description="SINHALA SIGN AL-LAKUNA",
direction="nsm",
linebreak="cm",
+ synonyms={ "sinhala virama" },
unicodeslot=0xDCA,
},
[0xDCF]={
@@ -29473,6 +29622,7 @@ characters.data={
description="TIBETAN SIGN RJES SU NGA RO",
direction="nsm",
linebreak="cm",
+ synonyms={ "tibetan anusvara" },
unicodeslot=0xF7E,
},
[0xF7F]={
@@ -29480,6 +29630,7 @@ characters.data={
description="TIBETAN SIGN RNAM BCAD",
direction="l",
linebreak="ba",
+ synonyms={ "tibetan visarga" },
unicodeslot=0xF7F,
},
[0xF80]={
@@ -29520,6 +29671,7 @@ characters.data={
description="TIBETAN MARK HALANTA",
direction="nsm",
linebreak="cm",
+ synonyms={ "tibetan srog med" },
unicodeslot=0xF84,
},
[0xF85]={
@@ -30555,6 +30707,7 @@ characters.data={
description="MYANMAR SIGN VIRAMA",
direction="nsm",
linebreak="sa",
+ synonyms={ "myanmar killer" },
unicodeslot=0x1039,
},
[0x103A]={
@@ -43535,6 +43688,7 @@ characters.data={
description="KHMER SIGN NIKAHIT",
direction="nsm",
linebreak="sa",
+ synonyms={ "khmer anusvara", "khmer srak am" },
unicodeslot=0x17C6,
},
[0x17C7]={
@@ -43542,6 +43696,7 @@ characters.data={
description="KHMER SIGN REAHMUK",
direction="l",
linebreak="sa",
+ synonyms={ "khmer srak ah", "khmer visarga" },
unicodeslot=0x17C7,
},
[0x17C8]={
@@ -43925,6 +44080,7 @@ characters.data={
description="MONGOLIAN FREE VARIATION SELECTOR ONE",
direction="nsm",
linebreak="cm",
+ synonyms={ "fvs1" },
unicodeslot=0x180B,
},
[0x180C]={
@@ -58794,6 +58950,7 @@ characters.data={
direction="ws",
linebreak="ba",
specials={ "char", 0x2003 },
+ synonyms={ "mutton quad" },
unicodeslot=0x2001,
},
[0x2002]={
@@ -58804,6 +58961,7 @@ characters.data={
direction="ws",
linebreak="ba",
specials={ "compat", 0x20 },
+ synonyms={ "nut" },
unicodeslot=0x2002,
},
[0x2003]={
@@ -58813,6 +58971,7 @@ characters.data={
direction="ws",
linebreak="ba",
specials={ "compat", 0x20 },
+ synonyms={ "mutton" },
unicodeslot=0x2003,
},
[0x2004]={
@@ -58822,6 +58981,7 @@ characters.data={
direction="ws",
linebreak="ba",
specials={ "compat", 0x20 },
+ synonyms={ "thick space" },
unicodeslot=0x2004,
},
[0x2005]={
@@ -58831,6 +58991,7 @@ characters.data={
direction="ws",
linebreak="ba",
specials={ "compat", 0x20 },
+ synonyms={ "mid space" },
unicodeslot=0x2005,
},
[0x2006]={
@@ -58885,6 +59046,7 @@ characters.data={
description="ZERO WIDTH SPACE",
direction="bn",
linebreak="zw",
+ synonyms={ "zwsp" },
unicodeslot=0x200B,
},
[0x200C]={
@@ -58895,6 +59057,7 @@ characters.data={
description="ZERO WIDTH NON-JOINER",
direction="bn",
linebreak="cm",
+ synonyms={ "zwnj" },
unicodeslot=0x200C,
},
[0x200D]={
@@ -58905,6 +59068,7 @@ characters.data={
description="ZERO WIDTH JOINER",
direction="bn",
linebreak="zwj",
+ synonyms={ "zwj" },
unicodeslot=0x200D,
},
[0x200E]={
@@ -58913,6 +59077,7 @@ characters.data={
description="LEFT-TO-RIGHT MARK",
direction="l",
linebreak="cm",
+ synonyms={ "lrm" },
unicodeslot=0x200E,
},
[0x200F]={
@@ -58921,6 +59086,7 @@ characters.data={
description="RIGHT-TO-LEFT MARK",
direction="r",
linebreak="cm",
+ synonyms={ "rlm" },
unicodeslot=0x200F,
},
[0x2010]={
@@ -58977,6 +59143,7 @@ characters.data={
description="HORIZONTAL BAR",
direction="on",
linebreak="ai",
+ synonyms={ "quotation dash" },
unicodeslot=0x2015,
},
[0x2016]={
@@ -59017,6 +59184,7 @@ characters.data={
direction="on",
linebreak="al",
specials={ "compat", 0x20, 0x333 },
+ synonyms={ "spacing double underscore" },
unicodeslot=0x2017,
},
[0x2018]={
@@ -59027,6 +59195,7 @@ characters.data={
description="LEFT SINGLE QUOTATION MARK",
direction="on",
linebreak="qu",
+ synonyms={ "single turned comma quotation mark" },
unicodeslot=0x2018,
},
[0x2019]={
@@ -59037,6 +59206,7 @@ characters.data={
description="RIGHT SINGLE QUOTATION MARK",
direction="on",
linebreak="qu",
+ synonyms={ "apostrophe", "single comma quotation mark" },
unicodeslot=0x2019,
},
[0x201A]={
@@ -59046,6 +59216,7 @@ characters.data={
description="SINGLE LOW-0x0009 QUOTATION MARK",
direction="on",
linebreak="op",
+ synonyms={ "low single comma quotation mark" },
unicodeslot=0x201A,
},
[0x201B]={
@@ -59054,6 +59225,7 @@ characters.data={
description="SINGLE HIGH-REVERSED-0x0009 QUOTATION MARK",
direction="on",
linebreak="qu",
+ synonyms={ "single reversed comma quotation mark" },
unicodeslot=0x201B,
},
[0x201C]={
@@ -59064,6 +59236,7 @@ characters.data={
description="LEFT DOUBLE QUOTATION MARK",
direction="on",
linebreak="qu",
+ synonyms={ "double turned comma quotation mark" },
unicodeslot=0x201C,
},
[0x201D]={
@@ -59074,6 +59247,7 @@ characters.data={
description="RIGHT DOUBLE QUOTATION MARK",
direction="on",
linebreak="qu",
+ synonyms={ "double comma quotation mark" },
unicodeslot=0x201D,
},
[0x201E]={
@@ -59083,6 +59257,7 @@ characters.data={
description="DOUBLE LOW-0x0009 QUOTATION MARK",
direction="on",
linebreak="op",
+ synonyms={ "low double comma quotation mark" },
unicodeslot=0x201E,
},
[0x201F]={
@@ -59090,6 +59265,7 @@ characters.data={
description="DOUBLE HIGH-REVERSED-0x0009 QUOTATION MARK",
direction="on",
linebreak="qu",
+ synonyms={ "double reversed comma quotation mark" },
unicodeslot=0x201F,
},
[0x2020]={
@@ -59110,6 +59286,7 @@ characters.data={
name="dag",
},
},
+ synonyms={ "long cross" },
unicodeslot=0x2020,
},
[0x2021]={
@@ -59130,6 +59307,7 @@ characters.data={
name="ddag",
},
},
+ synonyms={ "diesis" },
unicodeslot=0x2021,
},
[0x2022]={
@@ -59142,6 +59320,7 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="bullet",
+ synonyms={ "black small circle" },
unicodeslot=0x2022,
},
[0x2023]={
@@ -59190,6 +59369,7 @@ characters.data={
},
},
specials={ "compat", 0x2E, 0x2E, 0x2E },
+ synonyms={ "three dot leader" },
unicodeslot=0x2026,
},
[0x2027]={
@@ -59219,6 +59399,7 @@ characters.data={
description="LEFT-TO-RIGHT EMBEDDING",
direction="lre",
linebreak="cm",
+ synonyms={ "lre" },
unicodeslot=0x202A,
},
[0x202B]={
@@ -59226,6 +59407,7 @@ characters.data={
description="RIGHT-TO-LEFT EMBEDDING",
direction="rle",
linebreak="cm",
+ synonyms={ "rle" },
unicodeslot=0x202B,
},
[0x202C]={
@@ -59234,6 +59416,7 @@ characters.data={
description="POP DIRECTIONAL FORMATTING",
direction="pdf",
linebreak="cm",
+ synonyms={ "pdf" },
unicodeslot=0x202C,
},
[0x202D]={
@@ -59242,6 +59425,7 @@ characters.data={
description="LEFT-TO-RIGHT OVERRIDE",
direction="lro",
linebreak="cm",
+ synonyms={ "lro" },
unicodeslot=0x202D,
},
[0x202E]={
@@ -59250,6 +59434,7 @@ characters.data={
description="RIGHT-TO-LEFT OVERRIDE",
direction="rlo",
linebreak="cm",
+ synonyms={ "rlo" },
unicodeslot=0x202E,
},
[0x202F]={
@@ -59260,6 +59445,7 @@ characters.data={
direction="cs",
linebreak="gl",
specials={ "nobreak", 0x20 },
+ synonyms={ "nnbsp" },
unicodeslot=0x202F,
},
[0x2030]={
@@ -59270,6 +59456,7 @@ characters.data={
description="PER MILLE SIGN",
direction="et",
linebreak="po",
+ synonyms={ "per thousand" },
unicodeslot=0x2030,
},
[0x2031]={
@@ -59288,6 +59475,7 @@ characters.data={
linebreak="po",
mathclass="nothing",
mathname="prime",
+ synonyms={ "feet", "minutes" },
unicodeslot=0x2032,
},
[0x2033]={
@@ -59300,6 +59488,7 @@ characters.data={
mathclass="nothing",
mathname="doubleprime",
specials={ "compat", 0x2032, 0x2032 },
+ synonyms={ "inches", "seconds" },
unicodeslot=0x2033,
},
[0x2034]={
@@ -59358,6 +59547,7 @@ characters.data={
direction="on",
linebreak="qu",
mirror=0x203A,
+ synonyms={ "left pointing single guillemet" },
textclass="open",
unicodeslot=0x2039,
},
@@ -59369,6 +59559,7 @@ characters.data={
direction="on",
linebreak="qu",
mirror=0x2039,
+ synonyms={ "right pointing single guillemet" },
textclass="close",
unicodeslot=0x203A,
},
@@ -59379,6 +59570,7 @@ characters.data={
description="REFERENCE MARK",
direction="on",
linebreak="ai",
+ synonyms={ "japanese kome", "urdu paragraph separator" },
unicodeslot=0x203B,
},
[0x203C]={
@@ -59420,6 +59612,7 @@ characters.data={
},
mathstretch="h",
specials={ "compat", 0x20, 0x305 },
+ synonyms={ "spacing overscore" },
unicodeslot=0x203E,
},
[0x203F]={
@@ -59427,6 +59620,7 @@ characters.data={
description="UNDERTIE",
direction="on",
linebreak="al",
+ synonyms={ "greek enotikon" },
unicodeslot=0x203F,
},
[0x2040]={
@@ -59434,6 +59628,7 @@ characters.data={
description="CHARACTER TIE",
direction="on",
linebreak="al",
+ synonyms={ "sequence concatenation" },
unicodeslot=0x2040,
},
[0x2041]={
@@ -59475,6 +59670,7 @@ characters.data={
name="solidus",
},
},
+ synonyms={ "solidus" },
unicodeslot=0x2044,
},
[0x2045]={
@@ -59579,6 +59775,7 @@ characters.data={
description="COMMERCIAL MINUS SIGN",
direction="on",
linebreak="al",
+ synonyms={ "med avdrag av", "piska" },
unicodeslot=0x2052,
},
[0x2053]={
@@ -59600,6 +59797,7 @@ characters.data={
description="FLOWER PUNCTUATION MARK",
direction="on",
linebreak="al",
+ synonyms={ "phul", "puspika" },
unicodeslot=0x2055,
},
[0x2056]={
@@ -59631,6 +59829,7 @@ characters.data={
description="FIVE DOT PUNCTUATION",
direction="on",
linebreak="ba",
+ synonyms={ "greek pentonkion" },
unicodeslot=0x2059,
},
[0x205A]={
@@ -59659,6 +59858,7 @@ characters.data={
description="TRICOLON",
direction="on",
linebreak="ba",
+ synonyms={ "epidaurean acrophonic symbol three" },
unicodeslot=0x205D,
},
[0x205E]={
@@ -59675,6 +59875,7 @@ characters.data={
direction="ws",
linebreak="ba",
specials={ "compat", 0x20 },
+ synonyms={ "mmsp" },
unicodeslot=0x205F,
},
[0x2060]={
@@ -59682,6 +59883,7 @@ characters.data={
description="WORD JOINER",
direction="bn",
linebreak="wj",
+ synonyms={ "wj" },
unicodeslot=0x2060,
},
[0x2061]={
@@ -59706,6 +59908,7 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="invisibletimes",
+ synonyms={ "invisible comma" },
unicodeslot=0x2063,
},
[0x2064]={
@@ -60180,6 +60383,7 @@ characters.data={
description="COLON SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "costa rican currency", "el salvadorian currency" },
unicodeslot=0x20A1,
},
[0x20A2]={
@@ -60188,6 +60392,7 @@ characters.data={
description="CRUZEIRO SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "brazilian currency" },
unicodeslot=0x20A2,
},
[0x20A3]={
@@ -60196,6 +60401,7 @@ characters.data={
description="FRENCH FRANC SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "french currency" },
unicodeslot=0x20A3,
},
[0x20A4]={
@@ -60204,6 +60410,7 @@ characters.data={
description="LIRA SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "italian currency", "turkish currency" },
unicodeslot=0x20A4,
},
[0x20A5]={
@@ -60218,6 +60425,7 @@ characters.data={
description="NAIRA SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "nigerian currency" },
unicodeslot=0x20A6,
},
[0x20A7]={
@@ -60226,6 +60434,7 @@ characters.data={
description="PESETA SIGN",
direction="et",
linebreak="po",
+ synonyms={ "spanish currency" },
unicodeslot=0x20A7,
},
[0x20A8]={
@@ -60234,6 +60443,7 @@ characters.data={
direction="et",
linebreak="pr",
specials={ "compat", 0x52, 0x73 },
+ synonyms={ "indian currency" },
unicodeslot=0x20A8,
},
[0x20A9]={
@@ -60243,6 +60453,7 @@ characters.data={
description="WON SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "korean currency" },
unicodeslot=0x20A9,
},
[0x20AA]={
@@ -60251,6 +60462,7 @@ characters.data={
description="NEW SHEQEL SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "israeli currency" },
unicodeslot=0x20AA,
},
[0x20AB]={
@@ -60260,6 +60472,7 @@ characters.data={
description="DONG SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "vietnamese currency" },
unicodeslot=0x20AB,
},
[0x20AC]={
@@ -60270,6 +60483,7 @@ characters.data={
description="EURO SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "euro european currency" },
unicodeslot=0x20AC,
},
[0x20AD]={
@@ -60277,6 +60491,7 @@ characters.data={
description="KIP SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "laotian currency" },
unicodeslot=0x20AD,
},
[0x20AE]={
@@ -60284,6 +60499,7 @@ characters.data={
description="TUGRIK SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "mongolian currency" },
unicodeslot=0x20AE,
},
[0x20AF]={
@@ -60291,6 +60507,7 @@ characters.data={
description="DRACHMA SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "greek currency" },
unicodeslot=0x20AF,
},
[0x20B0]={
@@ -60305,6 +60522,7 @@ characters.data={
description="PESO SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "phillipine currency" },
unicodeslot=0x20B1,
},
[0x20B2]={
@@ -60312,6 +60530,7 @@ characters.data={
description="GUARANI SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "paraguayan currency" },
unicodeslot=0x20B2,
},
[0x20B3]={
@@ -60319,6 +60538,7 @@ characters.data={
description="AUSTRAL SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "argentinian former currency" },
unicodeslot=0x20B3,
},
[0x20B4]={
@@ -60326,6 +60546,7 @@ characters.data={
description="HRYVNIA SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "ukrainian currency" },
unicodeslot=0x20B4,
},
[0x20B5]={
@@ -60333,6 +60554,7 @@ characters.data={
description="CEDI SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "ghana currency" },
unicodeslot=0x20B5,
},
[0x20B6]={
@@ -60382,6 +60604,7 @@ characters.data={
description="MANAT SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "azerbaijani currency" },
unicodeslot=0x20BC,
},
[0x20BD]={
@@ -60389,6 +60612,7 @@ characters.data={
description="RUBLE SIGN",
direction="et",
linebreak="pr",
+ synonyms={ "russian currency" },
unicodeslot=0x20BD,
},
[0x20BE]={
@@ -60396,6 +60620,7 @@ characters.data={
description="LARI SIGN",
direction="et",
linebreak="po",
+ synonyms={ "georgian currency" },
unicodeslot=0x20BE,
},
[0x20D0]={
@@ -60436,6 +60661,7 @@ characters.data={
description="COMBINING ANTICLOCKWISE ARROW ABOVE",
direction="nsm",
linebreak="cm",
+ synonyms={ "combining counterclockwise arrow above" },
unicodeslot=0x20D4,
},
[0x20D5]={
@@ -60462,6 +60688,7 @@ characters.data={
linebreak="cm",
mathclass="topaccent",
mathname="vec",
+ synonyms={ "vector" },
unicodeslot=0x20D7,
},
[0x20D8]={
@@ -60486,6 +60713,7 @@ characters.data={
description="COMBINING ANTICLOCKWISE RING OVERLAY",
direction="nsm",
linebreak="cm",
+ synonyms={ "combining counterclockwise ring overlay" },
unicodeslot=0x20DA,
},
[0x20DB]={
@@ -60496,6 +60724,7 @@ characters.data={
linebreak="cm",
mathclass="topaccent",
mathname="dddot",
+ synonyms={ "third derivative" },
unicodeslot=0x20DB,
},
[0x20DC]={
@@ -60504,6 +60733,7 @@ characters.data={
description="COMBINING FOUR DOTS ABOVE",
direction="nsm",
linebreak="cm",
+ synonyms={ "fourth derivative" },
unicodeslot=0x20DC,
},
[0x20DD]={
@@ -60521,6 +60751,7 @@ characters.data={
name="bigcircle",
},
},
+ synonyms={ "jis composition circle" },
unicodeslot=0x20DD,
},
[0x20DE]={
@@ -60546,6 +60777,7 @@ characters.data={
description="COMBINING ENCLOSING CIRCLE BACKSLASH",
direction="nsm",
linebreak="cm",
+ synonyms={ "no", "prohibition" },
unicodeslot=0x20E0,
},
[0x20E1]={
@@ -60591,6 +60823,7 @@ characters.data={
description="COMBINING DOUBLE VERTICAL STROKE OVERLAY",
direction="nsm",
linebreak="cm",
+ synonyms={ "finite function diacritic" },
unicodeslot=0x20E6,
},
[0x20E7]={
@@ -60601,6 +60834,7 @@ characters.data={
linebreak="cm",
mathclass="topaccent",
mathname="actuarial",
+ synonyms={ "actuarial bend" },
unicodeslot=0x20E7,
},
[0x20E8]={
@@ -60618,6 +60852,7 @@ characters.data={
direction="nsm",
linebreak="cm",
mathclass="topaccent",
+ synonyms={ "contraction operator" },
unicodeslot=0x20E9,
},
[0x20EA]={
@@ -60634,6 +60869,7 @@ characters.data={
description="COMBINING LONG DOUBLE SOLIDUS OVERLAY",
direction="nsm",
linebreak="cm",
+ synonyms={ "long double slash overlay" },
unicodeslot=0x20EB,
},
[0x20EC]={
@@ -60700,6 +60936,7 @@ characters.data={
mathclass="variable",
mathname="complexes",
specials={ "font", 0x43 },
+ synonyms={ "complex numbers", "the set of complex numbers" },
unicodeslot=0x2102,
},
[0x2103]={
@@ -60711,6 +60948,7 @@ characters.data={
direction="on",
linebreak="po",
specials={ "compat", 0xB0, 0x43 },
+ synonyms={ "degrees centigrade" },
unicodeslot=0x2103,
},
[0x2104]={
@@ -60718,6 +60956,7 @@ characters.data={
description="CENTRE LINE SYMBOL",
direction="on",
linebreak="al",
+ synonyms={ "clone" },
unicodeslot=0x2104,
},
[0x2105]={
@@ -60771,6 +61010,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x67 },
+ synonyms={ "real number symbol" },
unicodeslot=0x210A,
},
[0x210B]={
@@ -60787,6 +61027,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x48 },
+ synonyms={ "hilbert space" },
unicodeslot=0x210C,
},
[0x210D]={
@@ -60842,6 +61083,7 @@ characters.data={
mathclass="default",
mathname="Im",
specials={ "font", 0x49 },
+ synonyms={ "imaginary part" },
unicodeslot=0x2111,
},
[0x2112]={
@@ -60850,6 +61092,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x4C },
+ synonyms={ "laplace transform" },
unicodeslot=0x2112,
},
[0x2113]={
@@ -60862,6 +61105,7 @@ characters.data={
mathclass="default",
mathname="ell",
specials={ "font", 0x6C },
+ synonyms={ "liter" },
unicodeslot=0x2113,
},
[0x2114]={
@@ -60869,6 +61113,7 @@ characters.data={
description="L B BAR SYMBOL",
direction="on",
linebreak="al",
+ synonyms={ "pounds" },
unicodeslot=0x2114,
},
[0x2115]={
@@ -60879,6 +61124,7 @@ characters.data={
mathclass="variable",
mathname="naturalnumbers",
specials={ "font", 0x4E },
+ synonyms={ "natural number" },
unicodeslot=0x2115,
},
[0x2116]={
@@ -60898,6 +61144,7 @@ characters.data={
description="SOUND RECORDING COPYRIGHT",
direction="on",
linebreak="al",
+ synonyms={ "phonorecord sign", "published" },
unicodeslot=0x2117,
},
[0x2118]={
@@ -60908,6 +61155,7 @@ characters.data={
linebreak="al",
mathclass="default",
mathname="wp",
+ synonyms={ "weierstrass elliptic function" },
unicodeslot=0x2118,
},
[0x2119]={
@@ -60928,6 +61176,7 @@ characters.data={
mathclass="variable",
mathname="rationals",
specials={ "font", 0x51 },
+ synonyms={ "rational numbers", "the set of rational numbers" },
unicodeslot=0x211A,
},
[0x211B]={
@@ -60936,6 +61185,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x52 },
+ synonyms={ "riemann integral" },
unicodeslot=0x211B,
},
[0x211C]={
@@ -60947,6 +61197,7 @@ characters.data={
mathclass="default",
mathname="Re",
specials={ "font", 0x52 },
+ synonyms={ "real part" },
unicodeslot=0x211C,
},
[0x211D]={
@@ -60957,6 +61208,7 @@ characters.data={
mathclass="variable",
mathname="reals",
specials={ "font", 0x52 },
+ synonyms={ "real numbers", "the set of real numbers" },
unicodeslot=0x211D,
},
[0x211E]={
@@ -60965,6 +61217,7 @@ characters.data={
description="PRESCRIPTION TAKE",
direction="on",
linebreak="al",
+ synonyms={ "cross ratio", "recipe" },
unicodeslot=0x211E,
},
[0x211F]={
@@ -61019,6 +61272,7 @@ characters.data={
mathclass="variable",
mathname="integers",
specials={ "font", 0x5A },
+ synonyms={ "integers", "the set of integers" },
unicodeslot=0x2124,
},
[0x2125]={
@@ -61051,6 +61305,7 @@ characters.data={
linebreak="al",
mathclass="variable",
mathname="mho",
+ synonyms={ "mho" },
unicodeslot=0x2127,
},
[0x2128]={
@@ -61068,6 +61323,7 @@ characters.data={
linebreak="al",
mathclass="variable",
mathname="turnediota",
+ synonyms={ "unique element" },
unicodeslot=0x2129,
},
[0x212A]={
@@ -61100,6 +61356,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x42 },
+ synonyms={ "bernoulli function" },
unicodeslot=0x212C,
},
[0x212D]={
@@ -61124,6 +61381,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x65 },
+ synonyms={ "error", "natural exponent" },
unicodeslot=0x212F,
},
[0x2130]={
@@ -61132,6 +61390,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x45 },
+ synonyms={ "electromotive force", "emf" },
unicodeslot=0x2130,
},
[0x2131]={
@@ -61140,6 +61399,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x46 },
+ synonyms={ "fourier transform" },
unicodeslot=0x2131,
},
[0x2132]={
@@ -61150,6 +61410,7 @@ characters.data={
linebreak="al",
mathclass="ordinary",
mathname="Finv",
+ synonyms={ "claudian digamma inversum" },
unicodeslot=0x2132,
},
[0x2133]={
@@ -61158,6 +61419,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x4D },
+ synonyms={ "german mark pre-wwii", "m-matrix" },
unicodeslot=0x2133,
},
[0x2134]={
@@ -61166,6 +61428,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x6F },
+ synonyms={ "order" },
unicodeslot=0x2134,
},
[0x2135]={
@@ -61177,6 +61440,7 @@ characters.data={
mathclass="default",
mathname="aleph",
specials={ "compat", 0x5D0 },
+ synonyms={ "first transfinite cardinal", "first transfinite cardinal countable" },
unicodeslot=0x2135,
},
[0x2136]={
@@ -61187,6 +61451,7 @@ characters.data={
mathclass="default",
mathname="beth",
specials={ "compat", 0x5D1 },
+ synonyms={ "second transfinite cardinal", "second transfinite cardinal continuum" },
unicodeslot=0x2136,
},
[0x2137]={
@@ -61197,6 +61462,7 @@ characters.data={
mathclass="default",
mathname="gimel",
specials={ "compat", 0x5D2 },
+ synonyms={ "third transfinite cardinal" },
unicodeslot=0x2137,
},
[0x2138]={
@@ -61207,6 +61473,7 @@ characters.data={
mathclass="default",
mathname="daleth",
specials={ "compat", 0x5D3 },
+ synonyms={ "fourth transfinite cardinal" },
unicodeslot=0x2138,
},
[0x2139]={
@@ -61280,6 +61547,7 @@ characters.data={
linebreak="al",
mathclass="ordinary",
mathname="Game",
+ synonyms={ "game" },
unicodeslot=0x2141,
},
[0x2142]={
@@ -61951,6 +62219,7 @@ characters.data={
direction="l",
lccode=0x2184,
linebreak="al",
+ synonyms={ "apostrophic c", "claudian antisigma" },
unicodeslot=0x2183,
},
[0x2184]={
@@ -62052,6 +62321,7 @@ characters.data={
mathclass="relation",
mathextensible="u",
mathname="uparrow",
+ synonyms={ "egressive airflow" },
unicodeslot=0x2191,
},
[0x2192]={
@@ -62082,6 +62352,7 @@ characters.data={
},
},
mathstretch="h",
+ synonyms={ "total function" },
unicodeslot=0x2192,
},
[0x2193]={
@@ -62094,6 +62365,7 @@ characters.data={
mathclass="relation",
mathextensible="d",
mathname="downarrow",
+ synonyms={ "ingressive airflow" },
unicodeslot=0x2193,
},
[0x2194]={
@@ -62106,6 +62378,7 @@ characters.data={
mathclass="relation",
mathextensible="h",
mathname="leftrightarrow",
+ synonyms={ "relation" },
unicodeslot=0x2194,
variants=variants_emoji,
},
@@ -62221,6 +62494,7 @@ characters.data={
mathextensible="l",
mathfiller="twoheadleftarrowfill",
mathname="twoheadleftarrow",
+ synonyms={ "fast cursor left" },
unicodeslot=0x219E,
},
[0x219F]={
@@ -62231,6 +62505,7 @@ characters.data={
mathclass="relation",
mathextensible="u",
mathname="twoheaduparrow",
+ synonyms={ "fast cursor up" },
unicodeslot=0x219F,
},
[0x21A0]={
@@ -62242,6 +62517,7 @@ characters.data={
mathextensible="r",
mathfiller="twoheadrightarrowfill",
mathname="twoheadrightarrow",
+ synonyms={ "fast cursor right", "total surjection" },
unicodeslot=0x21A0,
},
[0x21A1]={
@@ -62252,6 +62528,7 @@ characters.data={
mathclass="relation",
mathextensible="d",
mathname="twoheaddownarrow",
+ synonyms={ "fast cursor down", "form feed" },
unicodeslot=0x21A1,
},
[0x21A2]={
@@ -62272,6 +62549,7 @@ characters.data={
mathclass="relation",
mathextensible="r",
mathname="rightarrowtail",
+ synonyms={ "total injection" },
unicodeslot=0x21A3,
},
[0x21A4]={
@@ -62303,6 +62581,7 @@ characters.data={
mathextensible="r",
mathfiller="mapstofill",
mathname="mapsto",
+ synonyms={ "maplet" },
unicodeslot=0x21A6,
},
[0x21A7]={
@@ -62313,6 +62592,7 @@ characters.data={
mathclass="relation",
mathextensible="d",
mathname="mapsdown",
+ synonyms={ "depth symbol" },
unicodeslot=0x21A7,
},
[0x21A8]={
@@ -62399,6 +62679,7 @@ characters.data={
mathclass="relation",
mathextensible="d",
mathname="downzigzagarrow",
+ synonyms={ "electrolysis" },
unicodeslot=0x21AF,
},
[0x21B0]={
@@ -62449,6 +62730,7 @@ characters.data={
mathclass="ordinary",
mathextensible="m",
mathname="linefeed",
+ synonyms={ "line feed" },
unicodeslot=0x21B4,
},
[0x21B5]={
@@ -62500,6 +62782,7 @@ characters.data={
mathclass="relation",
mathextensible="h",
mathname="barleftarrowrightarrowbar",
+ synonyms={ "tab with shift tab" },
unicodeslot=0x21B9,
},
[0x21BA]={
@@ -62925,6 +63208,7 @@ characters.data={
mathclass="relation",
mathextensible="u",
mathname="nHuparrow",
+ synonyms={ "page up" },
unicodeslot=0x21DE,
},
[0x21DF]={
@@ -62998,6 +63282,7 @@ characters.data={
mathclass="relation",
mathextensible="l",
mathname="barleftarrow",
+ synonyms={ "leftward tab" },
unicodeslot=0x21E4,
},
[0x21E5]={
@@ -63009,6 +63294,7 @@ characters.data={
mathclass="relation",
mathextensible="r",
mathname="rightarrowbar",
+ synonyms={ "rightward tab" },
unicodeslot=0x21E5,
},
[0x21E6]={
@@ -63032,6 +63318,7 @@ characters.data={
mathclass="ordinary",
mathextensible="u",
mathname="upwhitearrow",
+ synonyms={ "shift" },
unicodeslot=0x21E7,
},
[0x21E8]={
@@ -63072,6 +63359,7 @@ characters.data={
mathclass="ordinary",
mathextensible="u",
mathname="whitearrowupfrombar",
+ synonyms={ "level 2 lock" },
unicodeslot=0x21EB,
},
[0x21EC]={
@@ -63079,6 +63367,7 @@ characters.data={
description="UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR",
direction="on",
linebreak="al",
+ synonyms={ "caps lock" },
unicodeslot=0x21EC,
},
[0x21ED]={
@@ -63086,6 +63375,7 @@ characters.data={
description="UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR",
direction="on",
linebreak="al",
+ synonyms={ "numerics lock" },
unicodeslot=0x21ED,
},
[0x21EE]={
@@ -63093,6 +63383,7 @@ characters.data={
description="UPWARDS WHITE DOUBLE ARROW",
direction="on",
linebreak="al",
+ synonyms={ "level 3 select" },
unicodeslot=0x21EE,
},
[0x21EF]={
@@ -63100,6 +63391,7 @@ characters.data={
description="UPWARDS WHITE DOUBLE ARROW ON PEDESTAL",
direction="on",
linebreak="al",
+ synonyms={ "level 3 lock" },
unicodeslot=0x21EF,
},
[0x21F0]={
@@ -63107,6 +63399,7 @@ characters.data={
description="RIGHTWARDS WHITE ARROW FROM WALL",
direction="on",
linebreak="al",
+ synonyms={ "group lock" },
unicodeslot=0x21F0,
},
[0x21F1]={
@@ -63114,6 +63407,7 @@ characters.data={
description="NORTH WEST ARROW TO CORNER",
direction="on",
linebreak="al",
+ synonyms={ "home" },
unicodeslot=0x21F1,
},
[0x21F2]={
@@ -63121,6 +63415,7 @@ characters.data={
description="SOUTH EAST ARROW TO CORNER",
direction="on",
linebreak="al",
+ synonyms={ "end" },
unicodeslot=0x21F2,
},
[0x21F3]={
@@ -63128,6 +63423,7 @@ characters.data={
description="UP DOWN WHITE ARROW",
direction="on",
linebreak="al",
+ synonyms={ "scrolling" },
unicodeslot=0x21F3,
},
[0x21F4]={
@@ -63178,6 +63474,7 @@ characters.data={
mathclass="relation",
mathextensible="r",
mathname="nvrightarrow",
+ synonyms={ "partial function" },
unicodeslot=0x21F8,
},
[0x21F9]={
@@ -63188,6 +63485,7 @@ characters.data={
mathclass="relation",
mathextensible="h",
mathname="nvleftrightarrow",
+ synonyms={ "partial relation" },
unicodeslot=0x21F9,
},
[0x21FA]={
@@ -63208,6 +63506,7 @@ characters.data={
mathclass="relation",
mathextensible="r",
mathname="nVrightarrow",
+ synonyms={ "finite function" },
unicodeslot=0x21FB,
},
[0x21FC]={
@@ -63218,6 +63517,7 @@ characters.data={
mathclass="relation",
mathextensible="h",
mathname="nVleftrightarrow",
+ synonyms={ "finite relation" },
unicodeslot=0x21FC,
},
[0x21FD]={
@@ -63259,6 +63559,7 @@ characters.data={
linebreak="ai",
mathclass="ordinary",
mathname="forall",
+ synonyms={ "universal quantifier" },
unicodeslot=0x2200,
},
[0x2201]={
@@ -63290,6 +63591,7 @@ characters.data={
linebreak="ai",
mathclass="ordinary",
mathname="exists",
+ synonyms={ "existential quantifier" },
unicodeslot=0x2203,
},
[0x2204]={
@@ -63310,6 +63612,7 @@ characters.data={
linebreak="al",
mathclass="default",
mathname="emptyset",
+ synonyms={ "null set" },
unicodeslot=0x2205,
variants={
[0xFE00]="zero with long diagonal stroke overlay form",
@@ -63321,6 +63624,7 @@ characters.data={
description="INCREMENT",
direction="on",
linebreak="al",
+ synonyms={ "forward difference", "laplace operator" },
unicodeslot=0x2206,
},
[0x2207]={
@@ -63332,6 +63636,7 @@ characters.data={
linebreak="ai",
mathclass="default",
mathname="nabla",
+ synonyms={ "backward difference", "del" },
unicodeslot=0x2207,
},
[0x2208]={
@@ -63427,6 +63732,7 @@ characters.data={
description="END OF PROOF",
direction="on",
linebreak="al",
+ synonyms={ "q.e.d." },
unicodeslot=0x220E,
},
[0x220F]={
@@ -63438,6 +63744,7 @@ characters.data={
linebreak="ai",
mathclass="limop",
mathname="prod",
+ synonyms={ "product sign" },
unicodeslot=0x220F,
},
[0x2210]={
@@ -63447,6 +63754,7 @@ characters.data={
linebreak="al",
mathclass="limop",
mathname="coprod",
+ synonyms={ "coproduct sign" },
unicodeslot=0x2210,
},
[0x2211]={
@@ -63458,6 +63766,7 @@ characters.data={
linebreak="ai",
mathclass="limop",
mathname="sum",
+ synonyms={ "summation sign" },
unicodeslot=0x2211,
},
[0x2212]={
@@ -63539,6 +63848,7 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="circ",
+ synonyms={ "apl jot", "composite function" },
unicodeslot=0x2218,
},
[0x2219]={
@@ -63572,6 +63882,7 @@ characters.data={
name="surd",
},
},
+ synonyms={ "radical sign" },
unicodeslot=0x221A,
},
[0x221B]={
@@ -63648,6 +63959,7 @@ characters.data={
linebreak="al",
mathclass="ordinary",
mathname="sphericalangle",
+ synonyms={ "angle arc" },
unicodeslot=0x2222,
},
[0x2223]={
@@ -63659,6 +63971,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="divides",
+ synonyms={ "apl stile", "such that" },
unicodeslot=0x2223,
},
[0x2224]={
@@ -63722,6 +64035,7 @@ characters.data={
name="land",
},
},
+ synonyms={ "conjunction", "wedge" },
unicodeslot=0x2227,
},
[0x2228]={
@@ -63741,6 +64055,7 @@ characters.data={
name="lor",
},
},
+ synonyms={ "disjunction", "vee" },
unicodeslot=0x2228,
},
[0x2229]={
@@ -63752,6 +64067,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="cap",
+ synonyms={ "cap", "hat" },
unicodeslot=0x2229,
variants={
[0xFE00]="with serifs",
@@ -63766,6 +64082,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="cup",
+ synonyms={ "cup" },
unicodeslot=0x222A,
variants={
[0xFE00]="with serifs",
@@ -63887,6 +64204,7 @@ characters.data={
linebreak="al",
mathclass="limop",
mathname="ointctrclockwise",
+ synonyms={ "counterclockwise contour integral" },
unicodeslot=0x2233,
},
[0x2234]={
@@ -63940,6 +64258,7 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="dotminus",
+ synonyms={ "saturating subtraction" },
unicodeslot=0x2238,
},
[0x2239]={
@@ -63975,6 +64294,7 @@ characters.data={
mathclass="relation",
mathname="sim",
mirror=0x223D,
+ synonyms={ "apl tilde", "cycle", "difference between", "not", "proportional to", "similar to", "varies with" },
unicodeslot=0x223C,
},
[0x223D]={
@@ -63987,6 +64307,7 @@ characters.data={
mathclass="relation",
mathname="backsim",
mirror=0x223C,
+ synonyms={ "lazy s" },
unicodeslot=0x223D,
},
[0x223E]={
@@ -63994,6 +64315,7 @@ characters.data={
description="INVERTED LAZY S",
direction="on",
linebreak="al",
+ synonyms={ "most positive" },
unicodeslot=0x223E,
},
[0x223F]={
@@ -64001,6 +64323,7 @@ characters.data={
description="SINE WAVE",
direction="on",
linebreak="al",
+ synonyms={ "alternating current" },
unicodeslot=0x223F,
},
[0x2240]={
@@ -64106,6 +64429,7 @@ characters.data={
linebreak="ai",
mathclass="relation",
mathname="approx",
+ synonyms={ "asymptotic to" },
unicodeslot=0x2248,
},
[0x2249]={
@@ -64207,6 +64531,7 @@ characters.data={
mathclass="relation",
mathname="fallingdotseq",
mirror=0x2253,
+ synonyms={ "nearly equals" },
unicodeslot=0x2252,
},
[0x2253]={
@@ -64258,6 +64583,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="circeq",
+ synonyms={ "approximately equal to" },
unicodeslot=0x2257,
},
[0x2258]={
@@ -64274,6 +64600,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="wedgeeq",
+ synonyms={ "corresponds to" },
unicodeslot=0x2259,
},
[0x225A]={
@@ -64301,6 +64628,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="triangleq",
+ synonyms={ "equal to by definition", "equiangular" },
unicodeslot=0x225C,
},
[0x225D]={
@@ -64507,6 +64835,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="between",
+ synonyms={ "plaintiff", "quantic" },
unicodeslot=0x226C,
},
[0x226D]={
@@ -64673,6 +65002,7 @@ characters.data={
mathclass="relation",
mathname="prec",
mirror=0x227B,
+ synonyms={ "lower rank than" },
unicodeslot=0x227A,
},
[0x227B]={
@@ -64684,6 +65014,7 @@ characters.data={
mathclass="relation",
mathname="succ",
mirror=0x227A,
+ synonyms={ "higher rank than" },
unicodeslot=0x227B,
},
[0x227C]={
@@ -64760,6 +65091,7 @@ characters.data={
mathclass="relation",
mathname="subset",
mirror=0x2283,
+ synonyms={ "included in set" },
unicodeslot=0x2282,
},
[0x2283]={
@@ -64772,6 +65104,7 @@ characters.data={
mathclass="relation",
mathname="supset",
mirror=0x2282,
+ synonyms={ "includes in set" },
unicodeslot=0x2283,
},
[0x2284]={
@@ -64893,6 +65226,7 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="uplus",
+ synonyms={ "bag addition" },
unicodeslot=0x228E,
},
[0x228F]={
@@ -64968,6 +65302,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="oplus",
+ synonyms={ "direct sum" },
unicodeslot=0x2295,
variants={
[0xFE00]="with white rim",
@@ -64981,6 +65316,7 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="ominus",
+ synonyms={ "symmetric difference" },
unicodeslot=0x2296,
},
[0x2297]={
@@ -64991,6 +65327,7 @@ characters.data={
linebreak="al",
mathclass="binary",
mathname="otimes",
+ synonyms={ "tensor product", "vector pointing into page" },
unicodeslot=0x2297,
variants={
[0xFE00]="with white rim",
@@ -65015,6 +65352,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="odot",
+ synonyms={ "direct product", "vector pointing out of page" },
unicodeslot=0x2299,
},
[0x229A]={
@@ -65100,6 +65438,7 @@ characters.data={
mathclass="relation",
mathname="vdash",
mirror=0x22A3,
+ synonyms={ "implies", "proves", "reducible", "turnstile", "yields" },
unicodeslot=0x22A2,
},
[0x22A3]={
@@ -65111,6 +65450,7 @@ characters.data={
mathclass="relation",
mathname="dashv",
mirror=0x22A2,
+ synonyms={ "does not yield", "non-theorem", "reverse turnstile" },
unicodeslot=0x22A3,
},
[0x22A4]={
@@ -65121,6 +65461,7 @@ characters.data={
linebreak="al",
mathclass="default",
mathname="top",
+ synonyms={ "top" },
unicodeslot=0x22A4,
},
[0x22A5]={
@@ -65140,6 +65481,7 @@ characters.data={
name="perp",
},
},
+ synonyms={ "base", "bottom", "orthogonal to", "perpendicular" },
unicodeslot=0x22A5,
},
[0x22A6]={
@@ -65148,6 +65490,7 @@ characters.data={
direction="on",
linebreak="al",
mirror=0x2ADE,
+ synonyms={ "reduces to" },
unicodeslot=0x22A6,
},
[0x22A7]={
@@ -65167,6 +65510,7 @@ characters.data={
mathclass="relation",
mathname="vDash",
mirror=0x2AE4,
+ synonyms={ "results in", "satisfies", "statement is true", "tautology", "valid" },
unicodeslot=0x22A8,
},
[0x22A9]={
@@ -65397,6 +65741,7 @@ characters.data={
linebreak="al",
mathclass="limop",
mathname="bigcap",
+ synonyms={ "generalized intersection" },
unicodeslot=0x22C2,
},
[0x22C3]={
@@ -65406,6 +65751,7 @@ characters.data={
linebreak="al",
mathclass="limop",
mathname="bigcup",
+ synonyms={ "generalized union" },
unicodeslot=0x22C3,
},
[0x22C4]={
@@ -65599,6 +65945,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="pitchfork",
+ synonyms={ "proper intersection" },
unicodeslot=0x22D4,
},
[0x22D5]={
@@ -66049,6 +66396,7 @@ characters.data={
description="ELECTRIC ARROW",
direction="on",
linebreak="al",
+ synonyms={ "end of transmission symbol" },
unicodeslot=0x2301,
},
[0x2302]={
@@ -66104,6 +66452,7 @@ characters.data={
mathclass="open",
mathname="lceil",
mirror=0x2309,
+ synonyms={ "apl upstile" },
unicodeslot=0x2308,
},
[0x2309]={
@@ -66124,6 +66473,7 @@ characters.data={
mathclass="open",
mathname="lfloor",
mirror=0x230B,
+ synonyms={ "apl downstile" },
unicodeslot=0x230A,
},
[0x230B]={
@@ -66170,6 +66520,7 @@ characters.data={
description="REVERSED NOT SIGN",
direction="on",
linebreak="al",
+ synonyms={ "beginning of line" },
unicodeslot=0x2310,
},
[0x2311]={
@@ -66177,6 +66528,7 @@ characters.data={
description="SQUARE LOZENGE",
direction="on",
linebreak="al",
+ synonyms={ "kissen", "pillow" },
unicodeslot=0x2311,
},
[0x2312]={
@@ -66229,6 +66581,7 @@ characters.data={
description="PLACE OF INTEREST SIGN",
direction="on",
linebreak="al",
+ synonyms={ "command key" },
unicodeslot=0x2318,
},
[0x2319]={
@@ -66236,6 +66589,7 @@ characters.data={
description="TURNED NOT SIGN",
direction="on",
linebreak="al",
+ synonyms={ "line marker" },
unicodeslot=0x2319,
},
[0x231A]={
@@ -66331,6 +66685,7 @@ characters.data={
description="UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS",
direction="on",
linebreak="al",
+ synonyms={ "enter key" },
unicodeslot=0x2324,
},
[0x2325]={
@@ -66347,6 +66702,7 @@ characters.data={
description="ERASE TO THE RIGHT",
direction="on",
linebreak="al",
+ synonyms={ "delete to the right key" },
unicodeslot=0x2326,
},
[0x2327]={
@@ -66355,6 +66711,7 @@ characters.data={
description="X IN A RECTANGLE BOX",
direction="on",
linebreak="al",
+ synonyms={ "clear key" },
unicodeslot=0x2327,
},
[0x2328]={
@@ -66393,6 +66750,7 @@ characters.data={
description="ERASE TO THE LEFT",
direction="on",
linebreak="al",
+ synonyms={ "delete to the left key" },
unicodeslot=0x232B,
},
[0x232C]={
@@ -66792,6 +67150,7 @@ characters.data={
description="APL FUNCTIONAL SYMBOL JOT DIAERESIS",
direction="l",
linebreak="al",
+ synonyms={ "hoot" },
unicodeslot=0x2364,
},
[0x2365]={
@@ -66799,6 +67158,7 @@ characters.data={
description="APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS",
direction="l",
linebreak="al",
+ synonyms={ "holler" },
unicodeslot=0x2365,
},
[0x2366]={
@@ -66820,6 +67180,7 @@ characters.data={
description="APL FUNCTIONAL SYMBOL TILDE DIAERESIS",
direction="l",
linebreak="al",
+ synonyms={ "smirk" },
unicodeslot=0x2368,
},
[0x2369]={
@@ -66967,6 +67328,7 @@ characters.data={
description="SHOULDERED OPEN BOX",
direction="on",
linebreak="al",
+ synonyms={ "keyboard symbol for no break space" },
unicodeslot=0x237D,
},
[0x237E]={
@@ -66981,6 +67343,7 @@ characters.data={
description="VERTICAL LINE WITH MIDDLE DOT",
direction="on",
linebreak="al",
+ synonyms={ "symbol for end of medium" },
unicodeslot=0x237F,
},
[0x2380]={
@@ -67023,6 +67386,7 @@ characters.data={
description="WHITE SQUARE WITH CENTRE VERTICAL LINE",
direction="on",
linebreak="al",
+ synonyms={ "center" },
unicodeslot=0x2385,
},
[0x2386]={
@@ -67044,6 +67408,7 @@ characters.data={
description="HELM SYMBOL",
direction="on",
linebreak="al",
+ synonyms={ "control" },
unicodeslot=0x2388,
},
[0x2389]={
@@ -67051,6 +67416,7 @@ characters.data={
description="CIRCLED HORIZONTAL BAR WITH NOTCH",
direction="on",
linebreak="al",
+ synonyms={ "pause" },
unicodeslot=0x2389,
},
[0x238A]={
@@ -67058,6 +67424,7 @@ characters.data={
description="CIRCLED TRIANGLE DOWN",
direction="on",
linebreak="al",
+ synonyms={ "interrupt" },
unicodeslot=0x238A,
},
[0x238B]={
@@ -67326,6 +67693,7 @@ characters.data={
linebreak="al",
mathclass="open",
mathname="lmoustache",
+ synonyms={ "left moustache" },
unicodeslot=0x23B0,
},
[0x23B1]={
@@ -67335,6 +67703,7 @@ characters.data={
linebreak="al",
mathclass="close",
mathname="rmoustache",
+ synonyms={ "right moustache" },
unicodeslot=0x23B1,
},
[0x23B2]={
@@ -67553,6 +67922,7 @@ characters.data={
description="EJECT SYMBOL",
direction="on",
linebreak="al",
+ synonyms={ "eject media" },
unicodeslot=0x23CF,
variants=variants_emoji,
},
@@ -67755,6 +68125,7 @@ characters.data={
description="BLACK RIGHT-POINTING DOUBLE TRIANGLE",
direction="on",
linebreak="al",
+ synonyms={ "fast forward" },
unicodeslot=0x23E9,
},
[0x23EA]={
@@ -67763,6 +68134,7 @@ characters.data={
description="BLACK LEFT-POINTING DOUBLE TRIANGLE",
direction="on",
linebreak="al",
+ synonyms={ "fast rewind" },
unicodeslot=0x23EA,
},
[0x23EB]={
@@ -67842,6 +68214,7 @@ characters.data={
description="BLACK MEDIUM LEFT-POINTING TRIANGLE",
direction="on",
linebreak="al",
+ synonyms={ "reverse play" },
unicodeslot=0x23F4,
},
[0x23F5]={
@@ -67849,6 +68222,7 @@ characters.data={
description="BLACK MEDIUM RIGHT-POINTING TRIANGLE",
direction="on",
linebreak="al",
+ synonyms={ "forward play" },
unicodeslot=0x23F5,
},
[0x23F6]={
@@ -67856,6 +68230,7 @@ characters.data={
description="BLACK MEDIUM UP-POINTING TRIANGLE",
direction="on",
linebreak="al",
+ synonyms={ "increase" },
unicodeslot=0x23F6,
},
[0x23F7]={
@@ -67863,6 +68238,7 @@ characters.data={
description="BLACK MEDIUM DOWN-POINTING TRIANGLE",
direction="on",
linebreak="al",
+ synonyms={ "decrease" },
unicodeslot=0x23F7,
},
[0x23F8]={
@@ -67870,6 +68246,7 @@ characters.data={
description="DOUBLE VERTICAL BAR",
direction="on",
linebreak="al",
+ synonyms={ "pause play" },
unicodeslot=0x23F8,
variants=variants_emoji,
},
@@ -67878,6 +68255,7 @@ characters.data={
description="BLACK SQUARE FOR STOP",
direction="on",
linebreak="al",
+ synonyms={ "stop play" },
unicodeslot=0x23F9,
variants=variants_emoji,
},
@@ -67886,6 +68264,7 @@ characters.data={
description="BLACK CIRCLE FOR RECORD",
direction="on",
linebreak="al",
+ synonyms={ "record" },
unicodeslot=0x23FA,
variants=variants_emoji,
},
@@ -68168,6 +68547,7 @@ characters.data={
description="OPEN BOX",
direction="on",
linebreak="al",
+ synonyms={ "graphic for space" },
unicodeslot=0x2423,
},
[0x2424]={
@@ -71002,6 +71382,7 @@ characters.data={
description="FULL BLOCK",
direction="on",
linebreak="ai",
+ synonyms={ "solid" },
unicodeslot=0x2588,
},
[0x2589]={
@@ -71209,6 +71590,7 @@ characters.data={
name="Box",
},
},
+ synonyms={ "quadrature" },
unicodeslot=0x25A1,
},
[0x25A2]={
@@ -71320,6 +71702,7 @@ characters.data={
description="BLACK VERTICAL RECTANGLE",
direction="on",
linebreak="al",
+ synonyms={ "histogram marker" },
unicodeslot=0x25AE,
},
[0x25AF]={
@@ -71371,6 +71754,7 @@ characters.data={
name="bigtriangleup",
},
},
+ synonyms={ "trine" },
unicodeslot=0x25B3,
},
[0x25B4]={
@@ -71410,6 +71794,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="triangleright",
+ synonyms={ "range restriction" },
unicodeslot=0x25B7,
},
[0x25B8]={
@@ -71440,6 +71825,7 @@ characters.data={
description="WHITE RIGHT-POINTING POINTER",
direction="on",
linebreak="al",
+ synonyms={ "forward arrow indicator" },
unicodeslot=0x25BB,
},
[0x25BC]={
@@ -71470,6 +71856,7 @@ characters.data={
name="bigtriangledown",
},
},
+ synonyms={ "hamilton operator" },
unicodeslot=0x25BD,
},
[0x25BE]={
@@ -71508,6 +71895,7 @@ characters.data={
linebreak="ai",
mathclass="binary",
mathname="triangleleft",
+ synonyms={ "domain restriction" },
unicodeslot=0x25C1,
},
[0x25C2]={
@@ -71538,6 +71926,7 @@ characters.data={
description="WHITE LEFT-POINTING POINTER",
direction="on",
linebreak="al",
+ synonyms={ "backward arrow indicator" },
unicodeslot=0x25C5,
},
[0x25C6]={
@@ -71573,6 +71962,7 @@ characters.data={
description="FISHEYE",
direction="on",
linebreak="al",
+ synonyms={ "tainome japanese bullet" },
unicodeslot=0x25C9,
},
[0x25CA]={
@@ -71952,6 +72342,7 @@ characters.data={
description="WHITE MEDIUM SQUARE",
direction="on",
linebreak="al",
+ synonyms={ "always" },
unicodeslot=0x25FB,
variants=variants_emoji,
},
@@ -71993,6 +72384,7 @@ characters.data={
description="BLACK SUN WITH RAYS",
direction="on",
linebreak="id",
+ synonyms={ "clear weather" },
unicodeslot=0x2600,
variants=variants_emoji,
},
@@ -72001,6 +72393,7 @@ characters.data={
description="CLOUD",
direction="on",
linebreak="id",
+ synonyms={ "cloudy weather" },
unicodeslot=0x2601,
variants=variants_emoji,
},
@@ -72009,6 +72402,7 @@ characters.data={
description="UMBRELLA",
direction="on",
linebreak="id",
+ synonyms={ "rainy weather" },
unicodeslot=0x2602,
variants=variants_emoji,
},
@@ -72017,6 +72411,7 @@ characters.data={
description="SNOWMAN",
direction="on",
linebreak="id",
+ synonyms={ "snowy weather" },
unicodeslot=0x2603,
variants=variants_emoji,
},
@@ -72144,6 +72539,7 @@ characters.data={
description="SALTIRE",
direction="on",
linebreak="al",
+ synonyms={ "st. andrew's cross" },
unicodeslot=0x2613,
},
[0x2614]={
@@ -72152,6 +72548,7 @@ characters.data={
description="UMBRELLA WITH RAIN DROPS",
direction="on",
linebreak="id",
+ synonyms={ "showery weather" },
unicodeslot=0x2614,
variants=variants_emoji,
},
@@ -72161,6 +72558,7 @@ characters.data={
description="HOT BEVERAGE",
direction="on",
linebreak="id",
+ synonyms={ "cup of coffee", "cup of tea" },
unicodeslot=0x2615,
variants=variants_emoji,
},
@@ -72232,6 +72630,7 @@ characters.data={
description="WHITE RIGHT POINTING INDEX",
direction="on",
linebreak="id",
+ synonyms={ "fist" },
unicodeslot=0x261E,
},
[0x261F]={
@@ -72247,6 +72646,7 @@ characters.data={
description="SKULL AND CROSSBONES",
direction="on",
linebreak="al",
+ synonyms={ "jolly roger", "poison" },
unicodeslot=0x2620,
variants=variants_emoji,
},
@@ -72300,6 +72700,7 @@ characters.data={
description="CHI RHO",
direction="on",
linebreak="al",
+ synonyms={ "christogram", "constantine's cross" },
unicodeslot=0x2627,
},
[0x2628]={
@@ -72336,6 +72737,7 @@ characters.data={
description="ADI SHAKTI",
direction="on",
linebreak="al",
+ synonyms={ "gurmukhi khanda" },
unicodeslot=0x262C,
},
[0x262D]={
@@ -72440,6 +72842,7 @@ characters.data={
description="WHITE SMILING FACE",
direction="on",
linebreak="id",
+ synonyms={ "have a nice day!" },
unicodeslot=0x263A,
variants=variants_emoji,
},
@@ -72457,6 +72860,7 @@ characters.data={
description="WHITE SUN WITH RAYS",
direction="on",
linebreak="al",
+ synonyms={ "compass" },
unicodeslot=0x263C,
},
[0x263D]={
@@ -72487,6 +72891,7 @@ characters.data={
description="FEMALE SIGN",
direction="on",
linebreak="ai",
+ synonyms={ "venus" },
unicodeslot=0x2640,
},
[0x2641]={
@@ -72504,6 +72909,7 @@ characters.data={
description="MALE SIGN",
direction="on",
linebreak="ai",
+ synonyms={ "mars" },
unicodeslot=0x2642,
},
[0x2643]={
@@ -72592,6 +72998,7 @@ characters.data={
description="VIRGO",
direction="on",
linebreak="al",
+ synonyms={ "minim alternate glyph" },
unicodeslot=0x264D,
variants=variants_emoji,
},
@@ -72610,6 +73017,7 @@ characters.data={
description="SCORPIUS",
direction="on",
linebreak="al",
+ synonyms={ "drop", "minim" },
unicodeslot=0x264F,
variants=variants_emoji,
},
@@ -72775,6 +73183,7 @@ characters.data={
linebreak="ai",
mathclass="default",
mathname="clubsuit",
+ synonyms={ "shamrock" },
unicodeslot=0x2663,
variants=variants_emoji,
},
@@ -72794,6 +73203,7 @@ characters.data={
description="BLACK HEART SUIT",
direction="on",
linebreak="ai",
+ synonyms={ "valentine" },
unicodeslot=0x2665,
variants=variants_emoji,
},
@@ -72834,6 +73244,7 @@ characters.data={
description="QUARTER NOTE",
direction="on",
linebreak="ai",
+ synonyms={ "crotchet" },
unicodeslot=0x2669,
},
[0x266A]={
@@ -72843,6 +73254,7 @@ characters.data={
description="EIGHTH NOTE",
direction="on",
linebreak="ai",
+ synonyms={ "quaver" },
unicodeslot=0x266A,
},
[0x266B]={
@@ -72851,6 +73263,7 @@ characters.data={
description="BEAMED EIGHTH NOTES",
direction="on",
linebreak="al",
+ synonyms={ "beamed quavers" },
unicodeslot=0x266B,
},
[0x266C]={
@@ -72860,6 +73273,7 @@ characters.data={
description="BEAMED SIXTEENTH NOTES",
direction="on",
linebreak="ai",
+ synonyms={ "beamed semiquavers" },
unicodeslot=0x266C,
},
[0x266D]={
@@ -72891,6 +73305,7 @@ characters.data={
linebreak="ai",
mathclass="default",
mathname="sharp",
+ synonyms={ "infix bag count" },
unicodeslot=0x266F,
},
[0x2670]={
@@ -73139,6 +73554,7 @@ characters.data={
description="HAMMER AND PICK",
direction="on",
linebreak="al",
+ synonyms={ "mining symbol", "working day symbol" },
unicodeslot=0x2692,
variants=variants_emoji,
},
@@ -73148,6 +73564,7 @@ characters.data={
description="ANCHOR",
direction="on",
linebreak="al",
+ synonyms={ "harbor symbol" },
unicodeslot=0x2693,
variants=variants_emoji,
},
@@ -73156,6 +73573,7 @@ characters.data={
description="CROSSED SWORDS",
direction="on",
linebreak="al",
+ synonyms={ "battleground symbol" },
unicodeslot=0x2694,
variants=variants_emoji,
},
@@ -73171,6 +73589,7 @@ characters.data={
description="SCALES",
direction="on",
linebreak="al",
+ synonyms={ "jurisprudence symbol" },
unicodeslot=0x2696,
variants=variants_emoji,
},
@@ -73257,6 +73676,7 @@ characters.data={
description="HIGH VOLTAGE SIGN",
direction="on",
linebreak="al",
+ synonyms={ "lightning", "thunder" },
unicodeslot=0x26A1,
variants=variants_emoji,
},
@@ -73367,6 +73787,7 @@ characters.data={
description="COFFIN",
direction="on",
linebreak="al",
+ synonyms={ "buried symbol" },
unicodeslot=0x26B0,
variants=variants_emoji,
},
@@ -73375,6 +73796,7 @@ characters.data={
description="FUNERAL URN",
direction="on",
linebreak="al",
+ synonyms={ "cremated symbol" },
unicodeslot=0x26B1,
variants=variants_emoji,
},
@@ -73479,6 +73901,7 @@ characters.data={
description="SQUARED KEY",
direction="on",
linebreak="id",
+ synonyms={ "parental lock" },
unicodeslot=0x26BF,
},
[0x26C0]={
@@ -73515,6 +73938,7 @@ characters.data={
description="SNOWMAN WITHOUT SNOW",
direction="on",
linebreak="id",
+ synonyms={ "light snow" },
unicodeslot=0x26C4,
variants=variants_emoji,
},
@@ -73524,6 +73948,7 @@ characters.data={
description="SUN BEHIND CLOUD",
direction="on",
linebreak="id",
+ synonyms={ "partly cloudy" },
unicodeslot=0x26C5,
variants=variants_emoji,
},
@@ -73541,6 +73966,7 @@ characters.data={
description="BLACK SNOWMAN",
direction="on",
linebreak="id",
+ synonyms={ "heavy snow" },
unicodeslot=0x26C7,
},
[0x26C8]={
@@ -73549,6 +73975,7 @@ characters.data={
description="THUNDER CLOUD AND RAIN",
direction="on",
linebreak="id",
+ synonyms={ "thunderstorm" },
unicodeslot=0x26C8,
variants=variants_emoji,
},
@@ -73582,6 +74009,7 @@ characters.data={
description="CROSSING LANES",
direction="on",
linebreak="ai",
+ synonyms={ "accident" },
unicodeslot=0x26CC,
},
[0x26CD]={
@@ -73606,6 +74034,7 @@ characters.data={
description="PICK",
direction="on",
linebreak="id",
+ synonyms={ "construction" },
unicodeslot=0x26CF,
variants=variants_emoji,
},
@@ -73615,6 +74044,7 @@ characters.data={
description="CAR SLIDING",
direction="on",
linebreak="id",
+ synonyms={ "icy road" },
unicodeslot=0x26D0,
},
[0x26D1]={
@@ -73632,6 +74062,7 @@ characters.data={
description="CIRCLED CROSSING LANES",
direction="on",
linebreak="ai",
+ synonyms={ "road closed" },
unicodeslot=0x26D2,
},
[0x26D3]={
@@ -73649,6 +74080,7 @@ characters.data={
description="NO ENTRY",
direction="on",
linebreak="id",
+ synonyms={ "do not enter" },
unicodeslot=0x26D4,
variants=variants_emoji,
},
@@ -73706,6 +74138,7 @@ characters.data={
description="HEAVY WHITE DOWN-POINTING TRIANGLE",
direction="on",
linebreak="ai",
+ synonyms={ "yield" },
unicodeslot=0x26DB,
},
[0x26DC]={
@@ -73738,6 +74171,7 @@ characters.data={
description="BLACK TRUCK",
direction="on",
linebreak="id",
+ synonyms={ "black lorry" },
unicodeslot=0x26DF,
},
[0x26E0]={
@@ -73761,6 +74195,7 @@ characters.data={
description="ASTRONOMICAL SYMBOL FOR URANUS",
direction="on",
linebreak="al",
+ synonyms={ "uranus" },
unicodeslot=0x26E2,
},
[0x26E3]={
@@ -73776,6 +74211,7 @@ characters.data={
description="PENTAGRAM",
direction="on",
linebreak="al",
+ synonyms={ "pentangle pentalpha" },
unicodeslot=0x26E4,
},
[0x26E5]={
@@ -73805,6 +74241,7 @@ characters.data={
description="BLACK CROSS ON SHIELD",
direction="on",
linebreak="ai",
+ synonyms={ "hospital" },
unicodeslot=0x26E8,
},
[0x26E9]={
@@ -73813,6 +74250,7 @@ characters.data={
description="SHINTO SHRINE",
direction="on",
linebreak="ai",
+ synonyms={ "torii" },
unicodeslot=0x26E9,
variants=variants_emoji,
},
@@ -73847,6 +74285,7 @@ characters.data={
description="GEAR WITHOUT HUB",
direction="on",
linebreak="ai",
+ synonyms={ "factory" },
unicodeslot=0x26ED,
},
[0x26EE]={
@@ -73855,6 +74294,7 @@ characters.data={
description="GEAR WITH HANDLES",
direction="on",
linebreak="ai",
+ synonyms={ "power plant" },
unicodeslot=0x26EE,
},
[0x26EF]={
@@ -73880,6 +74320,7 @@ characters.data={
description="UMBRELLA ON GROUND",
direction="on",
linebreak="id",
+ synonyms={ "bathing beach" },
unicodeslot=0x26F1,
variants=variants_emoji,
},
@@ -73889,6 +74330,7 @@ characters.data={
description="FOUNTAIN",
direction="on",
linebreak="id",
+ synonyms={ "park" },
unicodeslot=0x26F2,
variants=variants_emoji,
},
@@ -73898,6 +74340,7 @@ characters.data={
description="FLAG IN HOLE",
direction="on",
linebreak="id",
+ synonyms={ "golf course" },
unicodeslot=0x26F3,
variants=variants_emoji,
},
@@ -73907,6 +74350,7 @@ characters.data={
description="FERRY",
direction="on",
linebreak="id",
+ synonyms={ "boat terminal", "marina or yacht harbour" },
unicodeslot=0x26F4,
variants=variants_emoji,
},
@@ -73960,6 +74404,7 @@ characters.data={
description="TENT",
direction="on",
linebreak="id",
+ synonyms={ "camping site" },
unicodeslot=0x26FA,
variants=variants_emoji,
},
@@ -73977,6 +74422,7 @@ characters.data={
description="HEADSTONE GRAVEYARD SYMBOL",
direction="on",
linebreak="ai",
+ synonyms={ "cemetery", "graveyard" },
unicodeslot=0x26FC,
},
[0x26FD]={
@@ -73985,6 +74431,7 @@ characters.data={
description="FUEL PUMP",
direction="on",
linebreak="id",
+ synonyms={ "gas station", "petrol station" },
unicodeslot=0x26FD,
variants=variants_emoji,
},
@@ -73994,6 +74441,7 @@ characters.data={
description="CUP ON BLACK SQUARE",
direction="on",
linebreak="id",
+ synonyms={ "drive-in restaurant" },
unicodeslot=0x26FE,
},
[0x26FF]={
@@ -74084,6 +74532,7 @@ characters.data={
description="RAISED FIST",
direction="on",
linebreak="eb",
+ synonyms={ "paper, scissors game rock in rock" },
unicodeslot=0x270A,
},
[0x270B]={
@@ -74092,6 +74541,7 @@ characters.data={
description="RAISED HAND",
direction="on",
linebreak="eb",
+ synonyms={ "paper, scissors game paper in rock" },
unicodeslot=0x270B,
},
[0x270C]={
@@ -74099,6 +74549,7 @@ characters.data={
description="VICTORY HAND",
direction="on",
linebreak="eb",
+ synonyms={ "paper, scissors game scissors in rock" },
unicodeslot=0x270C,
variants=variants_emoji,
},
@@ -74409,6 +74860,7 @@ characters.data={
description="SIX POINTED BLACK STAR",
direction="on",
linebreak="al",
+ synonyms={ "sextile" },
unicodeslot=0x2736,
},
[0x2737]={
@@ -74437,6 +74889,7 @@ characters.data={
description="SIXTEEN POINTED ASTERISK",
direction="on",
linebreak="al",
+ synonyms={ "starburst" },
unicodeslot=0x273A,
},
[0x273B]={
@@ -74545,6 +74998,7 @@ characters.data={
description="BALLOON-SPOKED ASTERISK",
direction="on",
linebreak="al",
+ synonyms={ "jack" },
unicodeslot=0x2749,
},
[0x274A]={
@@ -74559,6 +75013,7 @@ characters.data={
description="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK",
direction="on",
linebreak="al",
+ synonyms={ "turbofan" },
unicodeslot=0x274B,
},
[0x274C]={
@@ -74757,6 +75212,7 @@ characters.data={
description="FLORAL HEART",
direction="on",
linebreak="al",
+ synonyms={ "aldus leaf" },
unicodeslot=0x2766,
},
[0x2767]={
@@ -74764,6 +75220,7 @@ characters.data={
description="ROTATED FLORAL HEART BULLET",
direction="on",
linebreak="al",
+ synonyms={ "hedera", "ivy leaf" },
unicodeslot=0x2767,
},
[0x2768]={
@@ -75570,6 +76027,7 @@ characters.data={
description="LOWER RIGHT CORNER WITH DOT",
direction="on",
linebreak="al",
+ synonyms={ "pullback" },
unicodeslot=0x27D3,
},
[0x27D4]={
@@ -75577,6 +76035,7 @@ characters.data={
description="UPPER LEFT CORNER WITH DOT",
direction="on",
linebreak="al",
+ synonyms={ "pushout" },
unicodeslot=0x27D4,
},
[0x27D5]={
@@ -75658,6 +76117,7 @@ characters.data={
description="UP TACK WITH CIRCLE ABOVE",
direction="on",
linebreak="al",
+ synonyms={ "radial component" },
unicodeslot=0x27DF,
},
[0x27E0]={
@@ -75715,6 +76175,7 @@ characters.data={
mathclass="open",
mathname="llbracket",
mirror=0x27E7,
+ synonyms={ "left bag bracket" },
unicodeslot=0x27E6,
},
[0x27E7]={
@@ -75726,6 +76187,7 @@ characters.data={
mathclass="close",
mathname="rrbracket",
mirror=0x27E6,
+ synonyms={ "right bag bracket" },
unicodeslot=0x27E7,
},
[0x27E8]={
@@ -75737,6 +76199,7 @@ characters.data={
mathclass="open",
mathname="langle",
mirror=0x27E9,
+ synonyms={ "bra", "left sequence bracket" },
unicodeslot=0x27E8,
},
[0x27E9]={
@@ -75748,6 +76211,7 @@ characters.data={
mathclass="close",
mathname="rangle",
mirror=0x27E8,
+ synonyms={ "ket", "right sequence bracket" },
unicodeslot=0x27E9,
},
[0x27EA]={
@@ -75759,6 +76223,7 @@ characters.data={
mathclass="open",
mathname="llangle",
mirror=0x27EB,
+ synonyms={ "left chevron bracket" },
unicodeslot=0x27EA,
},
[0x27EB]={
@@ -75770,6 +76235,7 @@ characters.data={
mathclass="close",
mathname="rrangle",
mirror=0x27EA,
+ synonyms={ "right chevron bracket" },
unicodeslot=0x27EB,
},
[0x27EC]={
@@ -75798,6 +76264,7 @@ characters.data={
mathclass="open",
mathname="lgroup",
mirror=0x27EF,
+ synonyms={ "lgroup" },
unicodeslot=0x27EE,
},
[0x27EF]={
@@ -75808,6 +76275,7 @@ characters.data={
mathclass="close",
mathname="rgroup",
mirror=0x27EE,
+ synonyms={ "rgroup" },
unicodeslot=0x27EF,
},
[0x27F0]={
@@ -77765,6 +78233,7 @@ characters.data={
direction="on",
linebreak="al",
mathextensible="r",
+ synonyms={ "partial surjection" },
unicodeslot=0x2900,
},
[0x2901]={
@@ -77773,6 +78242,7 @@ characters.data={
direction="on",
linebreak="al",
mathextensible="r",
+ synonyms={ "finite surjection" },
unicodeslot=0x2901,
},
[0x2902]={
@@ -77815,6 +78285,7 @@ characters.data={
mathclass="relation",
mathextensible="l",
mathname="Mapsfrom",
+ synonyms={ "maps from" },
unicodeslot=0x2906,
},
[0x2907]={
@@ -77825,6 +78296,7 @@ characters.data={
mathclass="relation",
mathextensible="r",
mathname="Mapsto",
+ synonyms={ "maps to" },
unicodeslot=0x2907,
},
[0x2908]={
@@ -77939,6 +78411,7 @@ characters.data={
direction="on",
linebreak="al",
mathextensible="r",
+ synonyms={ "partial injection" },
unicodeslot=0x2914,
},
[0x2915]={
@@ -77947,6 +78420,7 @@ characters.data={
direction="on",
linebreak="al",
mathextensible="r",
+ synonyms={ "finite injection" },
unicodeslot=0x2915,
},
[0x2916]={
@@ -77957,6 +78431,7 @@ characters.data={
mathclass="relation",
mathextensible="r",
mathname="twoheadrightarrowtail",
+ synonyms={ "bijection" },
unicodeslot=0x2916,
},
[0x2917]={
@@ -77966,6 +78441,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathextensible="r",
+ synonyms={ "surjective injection" },
unicodeslot=0x2917,
},
[0x2918]={
@@ -77974,6 +78450,7 @@ characters.data={
direction="on",
linebreak="al",
mathextensible="r",
+ synonyms={ "finite surjective injection" },
unicodeslot=0x2918,
},
[0x2919]={
@@ -78945,8 +79422,8 @@ characters.data={
},
},
mirror=0x2998,
- unicodeslot=0x2997,
textclass="open",
+ unicodeslot=0x2997,
},
[0x2998]={
category="pe",
@@ -78972,8 +79449,8 @@ characters.data={
},
},
mirror=0x2997,
- unicodeslot=0x2998,
textclass="close",
+ unicodeslot=0x2998,
},
[0x2999]={
category="sm",
@@ -79418,6 +79895,7 @@ characters.data={
description="WHITE HOURGLASS",
direction="on",
linebreak="al",
+ synonyms={ "vertical bowtie", "white framus" },
unicodeslot=0x29D6,
},
[0x29D7]={
@@ -79464,6 +79942,7 @@ characters.data={
description="INCOMPLETE INFINITY",
direction="on",
linebreak="al",
+ synonyms={ "isotech entity &iinfin;" },
unicodeslot=0x29DC,
},
[0x29DD]={
@@ -79492,6 +79971,7 @@ characters.data={
description="SQUARE WITH CONTOURED OUTLINE",
direction="on",
linebreak="al",
+ synonyms={ "d'alembertian" },
unicodeslot=0x29E0,
},
[0x29E1]={
@@ -79534,6 +80014,7 @@ characters.data={
description="GLEICH STARK",
direction="on",
linebreak="al",
+ synonyms={ "tautological equivalent" },
unicodeslot=0x29E6,
},
[0x29E7]={
@@ -79635,6 +80116,7 @@ characters.data={
description="RULE-DELAYED",
direction="on",
linebreak="al",
+ synonyms={ "colon right arrow" },
unicodeslot=0x29F4,
},
[0x29F5]={
@@ -79673,6 +80155,7 @@ characters.data={
direction="on",
linebreak="al",
mirror=0x29F8,
+ synonyms={ "schema hiding" },
unicodeslot=0x29F9,
},
[0x29FA]={
@@ -79787,6 +80270,7 @@ characters.data={
description="TWO LOGICAL AND OPERATOR",
direction="on",
linebreak="al",
+ synonyms={ "merge" },
unicodeslot=0x2A07,
},
[0x2A08]={
@@ -79871,6 +80355,7 @@ characters.data={
description="ANTICLOCKWISE INTEGRATION",
direction="on",
linebreak="al",
+ synonyms={ "counterclockwise integration" },
unicodeslot=0x2A11,
},
[0x2A12]={
@@ -79942,6 +80427,7 @@ characters.data={
description="INTEGRAL WITH OVERBAR",
direction="on",
linebreak="al",
+ synonyms={ "upper integral" },
unicodeslot=0x2A1B,
},
[0x2A1C]={
@@ -79949,6 +80435,7 @@ characters.data={
description="INTEGRAL WITH UNDERBAR",
direction="on",
linebreak="al",
+ synonyms={ "lower integral" },
unicodeslot=0x2A1C,
},
[0x2A1D]={
@@ -79956,6 +80443,7 @@ characters.data={
description="JOIN",
direction="on",
linebreak="al",
+ synonyms={ "large bowtie" },
unicodeslot=0x2A1D,
},
[0x2A1E]={
@@ -80005,6 +80493,7 @@ characters.data={
description="PLUS SIGN WITH TILDE ABOVE",
direction="on",
linebreak="al",
+ synonyms={ "positive difference or sum" },
unicodeslot=0x2A24,
},
[0x2A25]={
@@ -80019,6 +80508,7 @@ characters.data={
description="PLUS SIGN WITH TILDE BELOW",
direction="on",
linebreak="al",
+ synonyms={ "sum or positive difference" },
unicodeslot=0x2A26,
},
[0x2A27]={
@@ -80026,6 +80516,7 @@ characters.data={
description="PLUS SIGN WITH SUBSCRIPT TWO",
direction="on",
linebreak="al",
+ synonyms={ "nim-addition" },
unicodeslot=0x2A27,
},
[0x2A28]={
@@ -80224,6 +80715,7 @@ characters.data={
description="UNION WITH MINUS SIGN",
direction="on",
linebreak="al",
+ synonyms={ "bag subtraction" },
unicodeslot=0x2A41,
},
[0x2A42]={
@@ -80958,6 +81450,7 @@ characters.data={
direction="on",
linebreak="al",
mirror=0x2AA2,
+ synonyms={ "absolute continuity" },
unicodeslot=0x2AA1,
},
[0x2AA2]={
@@ -81451,6 +81944,7 @@ characters.data={
direction="on",
linebreak="al",
specials={ "char", 0x2ADD, 0x338 },
+ synonyms={ "not independent" },
unicodeslot=0x2ADC,
},
[0x2ADD]={
@@ -81458,6 +81952,7 @@ characters.data={
description="NONFORKING",
direction="on",
linebreak="al",
+ synonyms={ "independent" },
unicodeslot=0x2ADD,
},
[0x2ADE]={
@@ -81494,6 +81989,7 @@ characters.data={
description="VERTICAL BAR TRIPLE RIGHT TURNSTILE",
direction="on",
linebreak="al",
+ synonyms={ "ordinarily satisfies" },
unicodeslot=0x2AE2,
},
[0x2AE3]={
@@ -81560,6 +82056,7 @@ characters.data={
description="DOUBLE UP TACK",
direction="on",
linebreak="al",
+ synonyms={ "independence" },
unicodeslot=0x2AEB,
},
[0x2AEC]={
@@ -81604,6 +82101,7 @@ characters.data={
description="DOWN TACK WITH CIRCLE BELOW",
direction="on",
linebreak="al",
+ synonyms={ "necessarily satisfies" },
unicodeslot=0x2AF1,
},
[0x2AF2]={
@@ -81625,6 +82123,7 @@ characters.data={
description="TRIPLE VERTICAL BAR BINARY RELATION",
direction="on",
linebreak="al",
+ synonyms={ "interleave" },
unicodeslot=0x2AF4,
},
[0x2AF5]={
@@ -81699,6 +82198,7 @@ characters.data={
description="WHITE VERTICAL BAR",
direction="on",
linebreak="al",
+ synonyms={ "dijkstra choice" },
unicodeslot=0x2AFE,
},
[0x2AFF]={
@@ -81706,6 +82206,7 @@ characters.data={
description="N-ARY WHITE VERTICAL BAR",
direction="on",
linebreak="al",
+ synonyms={ "n-ary dijkstra choice" },
unicodeslot=0x2AFF,
},
[0x2B00]={
@@ -82527,6 +83028,7 @@ characters.data={
description="LEFTWARDS TRIANGLE-HEADED ARROW TO BAR",
direction="on",
linebreak="al",
+ synonyms={ "left tab" },
unicodeslot=0x2B70,
},
[0x2B71]={
@@ -82534,6 +83036,7 @@ characters.data={
description="UPWARDS TRIANGLE-HEADED ARROW TO BAR",
direction="on",
linebreak="al",
+ synonyms={ "up tab" },
unicodeslot=0x2B71,
},
[0x2B72]={
@@ -82541,6 +83044,7 @@ characters.data={
description="RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR",
direction="on",
linebreak="al",
+ synonyms={ "right tab" },
unicodeslot=0x2B72,
},
[0x2B73]={
@@ -82548,6 +83052,7 @@ characters.data={
description="DOWNWARDS TRIANGLE-HEADED ARROW TO BAR",
direction="on",
linebreak="al",
+ synonyms={ "down tab" },
unicodeslot=0x2B73,
},
[0x2B76]={
@@ -82604,6 +83109,7 @@ characters.data={
description="DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE",
direction="on",
linebreak="al",
+ synonyms={ "page down" },
unicodeslot=0x2B7D,
},
[0x2B7E]={
@@ -83010,6 +83516,7 @@ characters.data={
description="UP ARROWHEAD IN A RECTANGLE BOX",
direction="on",
linebreak="al",
+ synonyms={ "escape" },
unicodeslot=0x2BB9,
},
[0x2BBD]={
@@ -86874,6 +87381,7 @@ characters.data={
description="INVERTED INTERROBANG",
direction="on",
linebreak="op",
+ synonyms={ "gnaborretni" },
unicodeslot=0x2E18,
},
[0x2E19]={
@@ -87124,6 +87632,7 @@ characters.data={
description="TWO-EM DASH",
direction="on",
linebreak="b2",
+ synonyms={ "omission dash" },
unicodeslot=0x2E3A,
},
[0x2E3B]={
@@ -90399,6 +90908,7 @@ characters.data={
direction="on",
linebreak="op",
mirror=0x301B,
+ synonyms={ "left abstract syntax bracket" },
unicodeslot=0x301A,
},
[0x301B]={
@@ -90408,6 +90918,7 @@ characters.data={
direction="on",
linebreak="cl",
mirror=0x301A,
+ synonyms={ "right abstract syntax bracket" },
unicodeslot=0x301B,
},
[0x301C]={
@@ -91788,6 +92299,7 @@ characters.data={
direction="nsm",
linebreak="cm",
sound="voiced",
+ synonyms={ "combining japanese daku-on" },
unicodeslot=0x3099,
},
[0x309A]={
@@ -91798,6 +92310,7 @@ characters.data={
direction="nsm",
linebreak="cm",
sound="semivoiced",
+ synonyms={ "combining japanese han-daku-on" },
unicodeslot=0x309A,
},
[0x309B]={
@@ -91809,6 +92322,7 @@ characters.data={
linebreak="ns",
sound="voiced",
specials={ "compat", 0x20, 0x3099 },
+ synonyms={ "japanese daku-on" },
unicodeslot=0x309B,
},
[0x309C]={
@@ -91820,6 +92334,7 @@ characters.data={
linebreak="ns",
sound="semivoiced",
specials={ "compat", 0x20, 0x309A },
+ synonyms={ "japanese han-daku-on" },
unicodeslot=0x309C,
},
[0x309D]={
@@ -98710,6 +99225,7 @@ characters.data={
direction="l",
linebreak="id",
specials={ "square", 0x682A, 0x5F0F, 0x4F1A, 0x793E },
+ synonyms={ "japanese incorporated", "kabusiki-gaisya" },
unicodeslot=0x337F,
},
[0x3380]={
@@ -131918,6 +132434,7 @@ characters.data={
direction="al",
linebreak="po",
specials={ "isolated", 0x631, 0x6CC, 0x627, 0x644 },
+ synonyms={ "iranian currency" },
unicodeslot=0xFDFC,
},
[0xFDFD]={
@@ -131927,6 +132444,11 @@ characters.data={
linebreak="al",
unicodeslot=0xFDFD,
},
+ [0xFE00]={
+ description="VARIATION SELECTOR-0x0001",
+ synonyms={ "vs1" },
+ unicodeslot=0xFE00,
+ },
[0xFE10]={
category="po",
cjkwd="w",
@@ -133961,6 +134483,7 @@ characters.data={
description="ZERO WIDTH NO-BREAK SPACE",
direction="bn",
linebreak="wj",
+ synonyms={ "bom", "byte order mark", "zwnbsp" },
unicodeslot=0xFEFF,
},
[0xFF01]={
@@ -198804,6 +199327,7 @@ characters.data={
description="MUSICAL SYMBOL WHOLE NOTE",
direction="l",
linebreak="al",
+ synonyms={ "semibreve" },
unicodeslot=0x1D15D,
},
[0x1D15E]={
@@ -198836,6 +199360,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "char", 0x1D15F, 0x1D16F },
+ synonyms={ "semiquaver" },
unicodeslot=0x1D161,
},
[0x1D162]={
@@ -202515,6 +203040,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x50 },
+ synonyms={ "power set" },
unicodeslot=0x1D4AB,
},
[0x1D4AC]={
@@ -203319,6 +203845,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x4D },
+ synonyms={ "new testament majority text" },
unicodeslot=0x1D510,
},
[0x1D511]={
@@ -203359,6 +203886,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "font", 0x53 },
+ synonyms={ "greek old testament", "septuagint" },
unicodeslot=0x1D516,
},
[0x1D517]={
@@ -220711,6 +221239,7 @@ characters.data={
direction="on",
linebreak="al",
specials={ "super", 0x4D, 0x43 },
+ synonyms={ "marque de commerce" },
unicodeslot=0x1F16A,
},
[0x1F16B]={
@@ -220719,6 +221248,7 @@ characters.data={
direction="on",
linebreak="al",
specials={ "super", 0x4D, 0x44 },
+ synonyms={ "marque deposee" },
unicodeslot=0x1F16B,
},
[0x1F170]={
@@ -222357,6 +222887,7 @@ characters.data={
description="HOT PEPPER",
direction="on",
linebreak="id",
+ synonyms={ "spicy" },
unicodeslot=0x1F336,
variants=variants_emoji,
},
@@ -222854,6 +223385,7 @@ characters.data={
description="FORK AND KNIFE",
direction="on",
linebreak="id",
+ synonyms={ "meal (glyph may vary) restaurant" },
unicodeslot=0x1F374,
},
[0x1F375]={
@@ -222925,6 +223457,7 @@ characters.data={
description="FORK AND KNIFE WITH PLATE",
direction="on",
linebreak="id",
+ synonyms={ "dining available symbol", "food available symbol" },
unicodeslot=0x1F37D,
variants=variants_emoji,
},
@@ -222990,6 +223523,7 @@ characters.data={
description="FATHER CHRISTMAS",
direction="on",
linebreak="eb",
+ synonyms={ "santa claus" },
unicodeslot=0x1F385,
},
[0x1F386]={
@@ -223102,6 +223636,7 @@ characters.data={
description="GRADUATION CAP",
direction="on",
linebreak="id",
+ synonyms={ "mortarboard" },
unicodeslot=0x1F393,
},
[0x1F394]={
@@ -223305,6 +223840,7 @@ characters.data={
description="PERFORMING ARTS",
direction="on",
linebreak="id",
+ synonyms={ "masks of comedy and tragedy", "theater masks" },
unicodeslot=0x1F3AD,
},
[0x1F3AE]={
@@ -223998,6 +224534,7 @@ characters.data={
description="COW",
direction="on",
linebreak="id",
+ synonyms={ "beef (on menus)" },
unicodeslot=0x1F404,
},
[0x1F405]={
@@ -224126,6 +224663,7 @@ characters.data={
description="CHICKEN",
direction="on",
linebreak="id",
+ synonyms={ "poultry (on menus)" },
unicodeslot=0x1F414,
},
[0x1F415]={
@@ -224142,6 +224680,7 @@ characters.data={
description="PIG",
direction="on",
linebreak="id",
+ synonyms={ "pork (on menus)" },
unicodeslot=0x1F416,
},
[0x1F417]={
@@ -224174,6 +224713,7 @@ characters.data={
description="SPIRAL SHELL",
direction="on",
linebreak="id",
+ synonyms={ "seashell" },
unicodeslot=0x1F41A,
},
[0x1F41B]={
@@ -224558,6 +225098,7 @@ characters.data={
description="FISTED HAND SIGN",
direction="on",
linebreak="eb",
+ synonyms={ "punch" },
unicodeslot=0x1F44A,
},
[0x1F44B]={
@@ -224766,6 +225307,7 @@ characters.data={
description="BUST IN SILHOUETTE",
direction="on",
linebreak="id",
+ synonyms={ "guest account" },
unicodeslot=0x1F464,
},
[0x1F465]={
@@ -224774,6 +225316,7 @@ characters.data={
description="BUSTS IN SILHOUETTE",
direction="on",
linebreak="id",
+ synonyms={ "accounts" },
unicodeslot=0x1F465,
},
[0x1F466]={
@@ -224918,6 +225461,7 @@ characters.data={
description="CONSTRUCTION WORKER",
direction="on",
linebreak="eb",
+ synonyms={ "hardhat" },
unicodeslot=0x1F477,
},
[0x1F478]={
@@ -225254,6 +225798,7 @@ characters.data={
description="ELECTRIC LIGHT BULB",
direction="on",
linebreak="id",
+ synonyms={ "idea" },
unicodeslot=0x1F4A1,
},
[0x1F4A2]={
@@ -225294,6 +225839,7 @@ characters.data={
description="SPLASHING SWEAT SYMBOL",
direction="on",
linebreak="id",
+ synonyms={ "plewds" },
unicodeslot=0x1F4A6,
},
[0x1F4A7]={
@@ -225310,6 +225856,7 @@ characters.data={
description="DASH SYMBOL",
direction="on",
linebreak="id",
+ synonyms={ "briffits" },
unicodeslot=0x1F4A8,
},
[0x1F4A9]={
@@ -225334,6 +225881,7 @@ characters.data={
description="DIZZY SYMBOL",
direction="on",
linebreak="id",
+ synonyms={ "squeans" },
unicodeslot=0x1F4AB,
},
[0x1F4AC]={
@@ -225494,6 +226042,7 @@ characters.data={
description="OPTICAL DISC",
direction="on",
linebreak="id",
+ synonyms={ "cd", "compact disc" },
unicodeslot=0x1F4BF,
},
[0x1F4C0]={
@@ -226093,6 +226642,7 @@ characters.data={
description="SPEAKER WITH THREE SOUND WAVES",
direction="on",
linebreak="id",
+ synonyms={ "sound" },
unicodeslot=0x1F50A,
},
[0x1F50B]={
@@ -226989,6 +227539,7 @@ characters.data={
description="RIGHT HAND TELEPHONE RECEIVER",
direction="on",
linebreak="id",
+ synonyms={ "telephone handset" },
unicodeslot=0x1F57D,
},
[0x1F57E]={
@@ -227594,6 +228145,7 @@ characters.data={
description="WASTEBASKET",
direction="on",
linebreak="id",
+ synonyms={ "trashcan" },
unicodeslot=0x1F5D1,
variants=variants_emoji,
},
@@ -227835,6 +228387,7 @@ characters.data={
description="LIGHTNING MOOD",
direction="on",
linebreak="id",
+ synonyms={ "lightning bolt" },
unicodeslot=0x1F5F2,
},
[0x1F5F3]={
@@ -229476,6 +230029,7 @@ characters.data={
description="TRIANGLE WITH ROUNDED CORNERS",
direction="on",
linebreak="id",
+ synonyms={ "caution" },
unicodeslot=0x1F6C6,
},
[0x1F6C7]={
@@ -229490,6 +230044,7 @@ characters.data={
description="CIRCLED INFORMATION SOURCE",
direction="on",
linebreak="id",
+ synonyms={ "information" },
unicodeslot=0x1F6C8,
},
[0x1F6C9]={
@@ -229560,6 +230115,7 @@ characters.data={
description="OCTAGONAL SIGN",
direction="on",
linebreak="id",
+ synonyms={ "stop sign" },
unicodeslot=0x1F6D1,
},
[0x1F6D2]={
@@ -229568,6 +230124,7 @@ characters.data={
description="SHOPPING TROLLEY",
direction="on",
linebreak="id",
+ synonyms={ "shopping cart" },
unicodeslot=0x1F6D2,
},
[0x1F6E0]={
@@ -230618,6 +231175,7 @@ characters.data={
description="ROUND TARGET",
direction="on",
linebreak="al",
+ synonyms={ "bullseye" },
unicodeslot=0x1F78B,
},
[0x1F78C]={
@@ -232285,6 +232843,7 @@ characters.data={
description="HAND WITH INDEX AND MIDDLE FINGERS CROSSED",
direction="on",
linebreak="eb",
+ synonyms={ "crossed fingers", "fingers crossed" },
unicodeslot=0x1F91E,
},
[0x1F920]={
@@ -232317,6 +232876,7 @@ characters.data={
description="ROLLING ON THE FLOOR LAUGHING",
direction="on",
linebreak="id",
+ synonyms={ "rofl" },
unicodeslot=0x1F923,
},
[0x1F924]={
@@ -232517,6 +233077,7 @@ characters.data={
description="FIRST PLACE MEDAL",
direction="on",
linebreak="id",
+ synonyms={ "gold medal" },
unicodeslot=0x1F947,
},
[0x1F948]={
@@ -232525,6 +233086,7 @@ characters.data={
description="SECOND PLACE MEDAL",
direction="on",
linebreak="id",
+ synonyms={ "silver medal" },
unicodeslot=0x1F948,
},
[0x1F949]={
@@ -232533,6 +233095,7 @@ characters.data={
description="THIRD PLACE MEDAL",
direction="on",
linebreak="id",
+ synonyms={ "bronze medal" },
unicodeslot=0x1F949,
},
[0x1F94A]={
@@ -232621,6 +233184,7 @@ characters.data={
description="SHALLOW PAN OF FOOD",
direction="on",
linebreak="id",
+ synonyms={ "paella" },
unicodeslot=0x1F958,
},
[0x1F959]={
@@ -238380,4 +238944,9 @@ characters.data={
linebreak="cm",
unicodeslot=0xE007F,
},
-}
+ [0xE0100]={
+ description="VARIATION SELECTOR-0x0011",
+ synonyms={ "vs17" },
+ unicodeslot=0xE0100,
+ },
+} \ No newline at end of file
diff --git a/tex/context/base/mkiv/char-ini.lua b/tex/context/base/mkiv/char-ini.lua
index a9ea52cce..3cebeabd9 100644
--- a/tex/context/base/mkiv/char-ini.lua
+++ b/tex/context/base/mkiv/char-ini.lua
@@ -14,7 +14,7 @@ if not modules then modules = { } end modules ['char-ini'] = {
local utfchar, utfbyte, utfvalues, ustring, utotable = utf.char, utf.byte, utf.values, utf.ustring, utf.totable
local concat, unpack, tohash, insert = table.concat, table.unpack, table.tohash, table.insert
local next, tonumber, type, rawget, rawset = next, tonumber, type, rawget, rawset
-local format, lower, gsub = string.format, string.lower, string.gsub
+local format, lower, gsub, find = string.format, string.lower, string.gsub, string.find
local P, R, S, Cs = lpeg.P, lpeg.R, lpeg.S, lpeg.Cs
if not characters then require("char-def") end
@@ -942,6 +942,7 @@ end)
local specialchars = allocate() characters.specialchars = specialchars -- lazy table
local descriptions = allocate() characters.descriptions = descriptions -- lazy table
+local synonyms = allocate() characters.synonyms = synonyms -- lazy table
setmetatableindex(specialchars, function(t,u)
if u then
@@ -975,7 +976,9 @@ setmetatableindex(descriptions, function(t,k)
for u, c in next, data do
local d = c.description
if d then
- d = gsub(d," ","")
+ if find(d," ") then
+ d = gsub(d," ","")
+ end
d = lower(d)
t[d] = u
end
@@ -987,6 +990,24 @@ setmetatableindex(descriptions, function(t,k)
return d
end)
+setmetatableindex(synonyms, function(t,k)
+ for u, c in next, data do
+ local s = c.synonyms
+ if s then
+ if find(s," ") then
+ s = gsub(s," ","")
+ end
+ -- s = lower(s) -- is already lowercase
+ t[s] = u
+ end
+ end
+ local s = rawget(t,k)
+ if not s then
+ t[s] = s
+ end
+ return s
+end)
+
function characters.unicodechar(asked)
local n = tonumber(asked)
if n then
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 0d9ecfdd7..a6623f5c0 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{2017.04.16 12:32}
+\newcontextversion{2017.04.20 21:31}
%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 c4446b3dd..220ec71db 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{2017.04.16 12:32}
+\edef\contextversion{2017.04.20 21:31}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/font-ctx.lua b/tex/context/base/mkiv/font-ctx.lua
index 9e53b2c25..c81f9e2cb 100644
--- a/tex/context/base/mkiv/font-ctx.lua
+++ b/tex/context/base/mkiv/font-ctx.lua
@@ -14,7 +14,7 @@ if not modules then modules = { } end modules ['font-ctx'] = {
local context, commands = context, commands
-local format, gmatch, match, find, lower, gsub, byte, topattern = string.format, string.gmatch, string.match, string.find, string.lower, string.gsub, string.byte, string.topattern
+local format, gmatch, match, find, lower, upper, gsub, byte, topattern = string.format, string.gmatch, string.match, string.find, string.lower, string.upper, string.gsub, string.byte, string.topattern
local concat, serialize, sort, fastcopy, mergedtable = table.concat, table.serialize, table.sort, table.fastcopy, table.merged
local sortedhash, sortedkeys, sequenced = table.sortedhash, table.sortedkeys, table.sequenced
local settings_to_hash, hash_to_string = utilities.parsers.settings_to_hash, utilities.parsers.hash_to_string
@@ -48,6 +48,8 @@ local setmetatableindex = table.setmetatableindex
local implement = interfaces.implement
+local chardata = characters.data
+
local fonts = fonts
local handlers = fonts.handlers
local otf = handlers.otf -- brrr
@@ -1629,7 +1631,6 @@ implement {
local function nametoslot(name)
local t = type(name)
- local s = nil
if t == "string" then
local slot = unicodes[true][name]
if slot then
@@ -1638,12 +1639,82 @@ local function nametoslot(name)
if not aglunicodes then
aglunicodes = encodings.agl.unicodes
end
- slot = aglunicodes[name]
- if characters[true][slot] then
+ local char = characters[true]
+ local slot = aglunicodes[name]
+ if char[slot] then
+ return slot
+ end
+ -- not in font
+ elseif t == "number" then
+ if characters[true][name] then
return slot
else
-- not in font
end
+ end
+end
+
+
+local found = { }
+
+local function descriptiontoslot(name)
+ local t = type(name)
+ if t == "string" then
+ -- slow
+ local list = sortedkeys(chardata)
+ local slot = found[name]
+ local char = characters[true]
+ if slot then
+ return char[slot] and slot or nil
+ end
+ local NAME = upper(name)
+ for i=1,#list do
+ slot = list[i]
+ local c = chardata[slot]
+ local d = c.description
+ if d == NAME then
+ found[name] = slot
+ return char[slot] and slot or nil
+ end
+ end
+ for i=1,#list do
+ slot = list[i]
+ local c = chardata[slot]
+ local s = c.synonyms
+ if s then
+ for i=1,#s do
+ local si = s[i]
+ if si == name then
+ found[name] = si
+ return char[slot] and slot or nil
+ end
+ end
+ end
+ end
+ for i=1,#list do
+ slot = list[i]
+ local c = chardata[slot]
+ local d = c.description
+ if d and find(d,NAME) then
+ found[name] = slot
+ return char[slot] and slot or nil
+ end
+ end
+ for i=1,#list do
+ slot = list[i]
+ local c = chardata[slot]
+ local s = c.synonyms
+ if s then
+ for i=1,#s do
+ local si = s[i]
+ if find(s[i],name) then
+ found[name] = si
+ return char[slot] and slot or nil
+ end
+ end
+ end
+ end
+ -- not in font
elseif t == "number" then
if characters[true][name] then
return slot
@@ -1720,6 +1791,16 @@ do -- else too many locals
local n = nametoslot(name)
return n and utfchar(n) or name
end,
+ -- unicode description (synonym)
+ u = function(name)
+ local n = descriptiontoslot(name,false)
+ return n and utfchar(n) or name
+ end,
+ -- all
+ a = function(name)
+ local n = nametoslot(name) or descriptiontoslot(name)
+ return n and utfchar(n) or name
+ end,
-- char
c = function(name)
return name
@@ -1752,9 +1833,10 @@ do -- else too many locals
end
end
- helpers.nametoslot = nametoslot
- helpers.indextoslot = indextoslot
- helpers.tochar = tochar
+ helpers.nametoslot = nametoslot
+ helpers.descriptiontoslot = descriptiontoslot
+ helpers.indextoslot = indextoslot
+ helpers.tochar = tochar
-- interfaces:
diff --git a/tex/context/base/mkiv/font-dsp.lua b/tex/context/base/mkiv/font-dsp.lua
index d2aea7037..1ea6a4908 100644
--- a/tex/context/base/mkiv/font-dsp.lua
+++ b/tex/context/base/mkiv/font-dsp.lua
@@ -2917,7 +2917,7 @@ function readers.colr(f,fontdata,specification)
-- than 'palette'.
setposition(f,tableoffset + layeroffset)
for i=1,noflayers do
- local slot = readushort(f)
+ local slot = readushort(f)
local class = readushort(f)
if class < 0xFFFF then
class = class + 1
diff --git a/tex/context/base/mkiv/font-ini.mkvi b/tex/context/base/mkiv/font-ini.mkvi
index ad36e2e25..2697dff2e 100644
--- a/tex/context/base/mkiv/font-ini.mkvi
+++ b/tex/context/base/mkiv/font-ini.mkvi
@@ -2528,6 +2528,8 @@
%D \NC i \NC decimal index \NC i:456 \NC \NR
%D \NC n \NC name \NC n:eight \NC \NR
%D \NC c \NC name \NC c:x \NC \NR
+%D \NC u \NC unicode descriptions \NC u:dog \NC \NR
+%D \NC a \NC all (also descriptions) \NC a:rewind \NC \NR
%D \stoptabulate
%D
%D This is an expandable command!
diff --git a/tex/context/base/mkiv/font-map.lua b/tex/context/base/mkiv/font-map.lua
index 37a7f03af..cf369708c 100644
--- a/tex/context/base/mkiv/font-map.lua
+++ b/tex/context/base/mkiv/font-map.lua
@@ -19,7 +19,9 @@ local trace_mapping = false trackers.register("fonts.mapping", function(v) trac
local report_fonts = logs.reporter("fonts","loading") -- not otf only
-local force_ligatures = false directives.register("fonts.mapping.forceligatures",function(v) force_ligatures = v end)
+-- force_ligatures is true per 2017-04-20 so that these emoji's with bad names work too
+
+local force_ligatures = true directives.register("fonts.mapping.forceligatures",function(v) force_ligatures = v end)
local fonts = fonts or { }
local mappings = fonts.mappings or { }
@@ -242,6 +244,8 @@ mappings.tounicode16 = tounicode16
mappings.tounicode16sequence = tounicode16sequence
mappings.fromunicode16 = fromunicode16
+-- mozilla emoji has bad lig names: name = gsub(name,"(u[a-f0-9_]+)%-([a-f0-9_]+)","%1_%2")
+
local ligseparator = P("_")
local varseparator = P(".")
local namesplitter = Ct(C((1 - ligseparator - varseparator)^1) * (ligseparator * C((1 - ligseparator - varseparator)^1))^0)
@@ -490,41 +494,50 @@ function mappings.addtounicode(data,filename,checklookups)
checklookups(data,missing,nofmissing)
end
- -- todo: go lowercase
-
- local collected = false
local unicoded = 0
- -- for du, glyph in next, descriptions do
- for i=1,#dlist do
- local du = dlist[i]
- local glyph = descriptions[du]
- if glyph.class == "ligature" and (force_ligatures or not glyph.unicode) then
- if not collected then
- collected = fonts.handlers.otf.readers.getcomponents(data)
- if not collected then
- break
- end
+ local collected = fonts.handlers.otf.readers.getcomponents(data) -- neglectable overhead
+
+ local function resolve(glyph,u)
+ local n = #u
+ for i=1,n do
+ if u[i] > private then
+ n = 0
+ break
+ end
+ end
+ if n > 0 then
+ if n > 1 then
+ glyph.unicode = u
+ else
+ glyph.unicode = u[1]
end
- local u = collected[du] -- always tables
+ unicoded = unicoded + 1
+ end
+ end
+
+ if not collected then
+ -- move on
+ elseif force_ligatures then
+ for i=1,#dlist do
+ local du = dlist[i]
+ local u = collected[du] -- always tables
if u then
- local n = #u
- for i=1,n do
- if u[i] > private then
- n = 0
- break
- end
- end
- if n > 0 then
- if n > 1 then
- glyph.unicode = u
- else
- glyph.unicode = u[1]
- end
- unicoded = unicoded + 1
+ resolve(descriptions[du],u)
+ end
+ end
+ else
+ for i=1,#dlist do
+ local du = dlist[i]
+ local glyph = descriptions[du]
+ if glyph.class == "ligature" and not glyph.unicode then
+ local u = collected[du] -- always tables
+ if u then
+ resolve(glyph,u)
end
end
end
end
+
if trace_mapping and unicoded > 0 then
report_fonts("%n ligature tounicode mappings deduced from gsub ligature features",unicoded)
end
diff --git a/tex/context/base/mkiv/font-ocl.lua b/tex/context/base/mkiv/font-ocl.lua
index 2cb0c1eb7..c1ab2e592 100644
--- a/tex/context/base/mkiv/font-ocl.lua
+++ b/tex/context/base/mkiv/font-ocl.lua
@@ -141,10 +141,10 @@ local function initializecolr(tfmdata,kind,value) -- hm, always value
-- are somewhat inefficient as each glyph gets the font set. It's a
-- side effect of the fact that a font is handled when a character gets
-- flushed.
- -- { "special", "pdf:page:q" },
- -- { "special", "pdf:raw:" .. b }
- -- This seems to be okay too:
- { "special", "pdf:direct:q " .. b },
+ { "special", "pdf:page:q" },
+ { "special", "pdf:raw:" .. b }
+ -- This is not ok:
+ -- { "special", "pdf:direct:q " .. b },
}
local n = #t
for i=1,s do
@@ -155,10 +155,10 @@ local function initializecolr(tfmdata,kind,value) -- hm, always value
n = n + 1 t[n] = { "right", -w }
end
end
- -- n = n + 1 t[n] = { "special", "pdf:page:" .. e }
- -- n = n + 1 t[n] = { "special", "pdf:raw:Q" }
- -- This seems to be okay too:
- n = n + 1 t[n] = { "special", "pdf:direct:" .. e .. " Q"}
+ n = n + 1 t[n] = { "special", "pdf:page:" .. e }
+ n = n + 1 t[n] = { "special", "pdf:raw:Q" }
+ -- This is not ok:
+ -- n = n + 1 t[n] = { "special", "pdf:direct:" .. e .. " Q"}
character.commands = t
end
end
diff --git a/tex/context/base/mkiv/font-ttf.lua b/tex/context/base/mkiv/font-ttf.lua
index 96c1d165a..b44f5d7bd 100644
--- a/tex/context/base/mkiv/font-ttf.lua
+++ b/tex/context/base/mkiv/font-ttf.lua
@@ -904,7 +904,7 @@ function readers.glyf(f,fontdata,specification) -- part goes to cff module
else
contours2outlines_shaped(glyphs,shapes,specification.shapes)
end
- elseif specification.loadshapes then
+ elseif specification.shapes then
contours2outlines_normal(glyphs,shapes)
end
end
diff --git a/tex/context/base/mkiv/l-table.lua b/tex/context/base/mkiv/l-table.lua
index 5deb795d1..6bb0ef637 100644
--- a/tex/context/base/mkiv/l-table.lua
+++ b/tex/context/base/mkiv/l-table.lua
@@ -573,7 +573,12 @@ local function is_simple_table(t) -- also used in util-tab so maybe public
local v = t[i]
local tv = type(v)
if tv == "number" then
- tt[i] = v -- not needed tostring(v)
+ -- tt[i] = v -- not needed tostring(v)
+ if hexify then
+ tt[i] = format("0x%X",v)
+ else
+ tt[i] = v -- not needed tostring(v)
+ end
elseif tv == "string" then
tt[i] = format("%q",v) -- f_string(v)
elseif tv == "boolean" then
@@ -589,7 +594,12 @@ local function is_simple_table(t) -- also used in util-tab so maybe public
local v = t[i]
local tv = type(v)
if tv == "number" then
- tt[i+1] = v -- not needed tostring(v)
+ -- tt[i+1] = v -- not needed tostring(v)
+ if hexify then
+ tt[i+1] = format("0x%X",v)
+ else
+ tt[i+1] = v -- not needed tostring(v)
+ end
elseif tv == "string" then
tt[i+1] = format("%q",v) -- f_string(v)
elseif tv == "boolean" then
diff --git a/tex/context/base/mkiv/math-ini.lua b/tex/context/base/mkiv/math-ini.lua
index 321014d94..2cb4e2413 100644
--- a/tex/context/base/mkiv/math-ini.lua
+++ b/tex/context/base/mkiv/math-ini.lua
@@ -365,6 +365,11 @@ local function utfmathclass(chr, default)
return cd and cd.mathclass or default or "unknown"
end
+local function utfmathlimop(chr)
+ local cd = somechar[chr]
+ return cd and cd.mathclass == "limop" or false
+end
+
local function utfmathaccent(chr,default,asked1,asked2)
local cd = somechar[chr]
if not cd then
@@ -513,6 +518,7 @@ implement {
actions = { utfmathcommand, context },
arguments = { "string", false, "'botaccent'","'under'" }
}
+
implement {
name = "utfmathcommandfiller",
actions = { utfmathfiller, context },
@@ -545,6 +551,12 @@ implement {
arguments = "string",
}
+implement {
+ name = "doifelseutfmathlimop",
+ actions = { utfmathlimop, ctx_doifelsesomething },
+ arguments = "string",
+}
+
-- helpers
--
-- 1: step 1
diff --git a/tex/context/base/mkiv/math-ini.mkiv b/tex/context/base/mkiv/math-ini.mkiv
index 3b57c56da..8c682bdcb 100644
--- a/tex/context/base/mkiv/math-ini.mkiv
+++ b/tex/context/base/mkiv/math-ini.mkiv
@@ -557,11 +557,13 @@
\unexpanded\def\doifelseutfmathabove #1{\clf_doifelseutfmathabove {#1}}
\unexpanded\def\doifelseutfmathbelow #1{\clf_doifelseutfmathbelow {#1}}
\unexpanded\def\doifelseutfmathfiller#1{\clf_doifelseutfmathfiller{#1}}
+\unexpanded\def\doifelseutfmathlimop #1{\clf_doifelseutfmathlimop {#1}}
\let\doifutfmathaccentelse \doifelseutfmathaccent
\let\doifutfmathaboveelse \doifelseutfmathabove
\let\doifutfmathbelowelse \doifelseutfmathbelow
\let\doifutfmathfillerelse \doifelseutfmathfiller
+\let\doifutfmathlimopelse \doifelseutfmathlimop
%D Not used that much:
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 94d382b63..a27cfc42f 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 c66f8765b..c80930664 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/trac-vis.lua b/tex/context/base/mkiv/trac-vis.lua
index 5d69b406d..1e7165abd 100644
--- a/tex/context/base/mkiv/trac-vis.lua
+++ b/tex/context/base/mkiv/trac-vis.lua
@@ -423,6 +423,7 @@ local fontkern do
setlistcolor(list,c_zero_d)
end
setlisttransparency(list,c_text_d)
+ setcolor(rule,c_text_d)
settransparency(rule,c_text_d)
setshift(text,-5 * exheight)
info = new_hlist(setlink(rule,text))
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 5716030ad..bb6619b2e 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 61f901149..675d2a7c9 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/context/modules/mkiv/x-mathml.lua b/tex/context/modules/mkiv/x-mathml.lua
index 7d0b42d21..9650afab8 100644
--- a/tex/context/modules/mkiv/x-mathml.lua
+++ b/tex/context/modules/mkiv/x-mathml.lua
@@ -187,6 +187,7 @@ local i_replacements = {
["true"] = "{\\mathrm true}",
["declare"] = "{\\mathrm declare}",
["as"] = "{\\mathrm as}",
+
}
-- we could use a metatable or when accessing fallback on the
diff --git a/tex/context/modules/mkiv/x-mathml.mkiv b/tex/context/modules/mkiv/x-mathml.mkiv
index 7ed1b4322..50d31da0e 100644
--- a/tex/context/modules/mkiv/x-mathml.mkiv
+++ b/tex/context/modules/mkiv/x-mathml.mkiv
@@ -204,7 +204,7 @@
%D The second implementation expanded the whole math sequence
%D into an internal \TEX\ representation. This is a rather clean
%D and fast process. Filtering and testing takes place by
-%D redefining teh internal representation macros.
+%D redefining the internal representation macros.
%D
%D The third implementation may look a bit more messy in some
%D respects. This is because in \TEX\ it's not that trivial to
@@ -1849,9 +1849,13 @@
\let\mmlfrac\frac
\xmlmapvalue {mml:l} {+} {\let\mmlfrac\sfrac}
+\xmlmapvalue {mml:d} {true} {\displaystyle}
+\xmlmapvalue {mml:d} {false} {\textstyle} % or whatever
+
% todo: displaystyle=true/false (or whatever else shows up)
\starttexdefinition setmmlmathstyle #1
+ \xmlval{mml:d}{\xmlatt{#1}{displaystyle}}\empty % was: \mmmr
\xmlval{mml:s}{\xmlatt{#1}{mathvariant}}\empty % was: \mmmr
\stoptexdefinition
@@ -2268,9 +2272,9 @@
\def\mmlextensible#1{\ctxmodulemathml{extensible(\!!bs#1\!!es)}}
-\definemathtriplet [\v!mathematics] [mmlovertriplet] % or will we use a special instance
-\definemathtriplet [\v!mathematics] [mmlundertriplet] % or will we use a special instance
-\definemathtriplet [\v!mathematics] [mmldoubletriplet] % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmlovertriplet] % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmlundertriplet] % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmldoubletriplet] % or will we use a special instance
% common to munder/mover/munderover : will become core helper (speed up too)
@@ -2319,9 +2323,15 @@
\startxmlsetups mml:mover
\edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
- \doifelseutfmathfiller\mmlbasetoken \mmloverbasefiller \mmloveraccentchecker {#1}
+ \doifelseutfmathlimop\mmlbasetoken
+ {\mmllimopover{#1}}
+ {\doifelseutfmathfiller\mmlbasetoken \mmloverbasefiller \mmloveraccentchecker {#1}}
\stopxmlsetups
+\starttexdefinition mmllimopover #1
+ \mmlbasetoken ^{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
% munder
\starttexdefinition unexpanded mmlunderbelow #1
@@ -2351,9 +2361,15 @@
\startxmlsetups mml:munder
\edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
- \doifelseutfmathfiller\mmlbasetoken \mmlunderbasefiller \mmlunderaccentchecker {#1}
+ \doifelseutfmathlimop\mmlbasetoken
+ {\mmllimopunder{#1}}
+ {\doifelseutfmathfiller\mmlbasetoken \mmlunderbasefiller \mmlunderaccentchecker {#1}}
\stopxmlsetups
+\starttexdefinition mmllimopunder #1
+ \mmlbasetoken _{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
% munderover
\starttexdefinition unexpanded mmlunderoveraccentcheckerUO #1
@@ -2412,11 +2428,18 @@
\edef\mmlbasecommand{e\utfmathcommandfiller\mmlbasetoken}%
\mmlexecuteifdefined\mmlbasecommand \relax {\mmlfencedthird{#1}} {\mmlfencedsecond{#1}}
\stoptexdefinition
+
\startxmlsetups mml:munderover
\edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
- \doifelseutfmathfiller\mmlbasetoken \mmlunderoverbasefiller \mmlunderoveraccentchecker {#1}
+ \doifelseutfmathlimop\mmlbasetoken
+ {\mmllimopunderover{#1}}
+ {\doifelseutfmathfiller\mmlbasetoken \mmlunderoverbasefiller \mmlunderoveraccentchecker {#1}}
\stopxmlsetups
+\starttexdefinition mmllimopunderover #1
+ \mmlbasetoken ^{\mmlfencedthird{#1}}_{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
% tables (mml:mtable, mml:mtr, mml:mlabledtr, mml:mtd)
\startxmlsetups mml:mtable % some more attributes need to be supported
diff --git a/tex/generic/context/luatex/luatex-core.lua b/tex/generic/context/luatex/luatex-core.lua
index b32be8095..16df01707 100644
--- a/tex/generic/context/luatex/luatex-core.lua
+++ b/tex/generic/context/luatex/luatex-core.lua
@@ -25,8 +25,8 @@ local fio_recordfilename = fio.recordfilename
local mt = getmetatable(io.stderr)
local mt_lines = mt.lines
local saferoption = status.safer_option
-local shellescape = status.shell_escape -- 0 (disabled) 1 (restricted) 2 (everything)
-local kpseused = status.kpse_used -- 0 1
+local shellescape = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted)
+local kpseused = status.kpse_used -- 0 1
io.saved_open = io_open -- can be protected
io.saved_popen = io_popen -- can be protected
@@ -127,7 +127,7 @@ if saferoption == 1 then
end
-if saferoption == 1 or shellescape ~= 2 then
+if saferoption == 1 or shellescape ~= 1 then
ffi = require('ffi')
for k, v in next, ffi do
@@ -136,6 +136,7 @@ if saferoption == 1 or shellescape ~= 2 then
end
end
ffi = nil
+
end
-- os.[execute|os.spawn|os.exec] already are shellescape aware)
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index c671651ef..093846c7a 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 : 04/16/17 12:32:21
+-- merge date : 04/20/17 21:31:47
do -- begin closure to overcome local limits and interference
@@ -1389,7 +1389,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i]=v
+ if hexify then
+ tt[i]=format("0x%X",v)
+ else
+ tt[i]=v
+ end
elseif tv=="string" then
tt[i]=format("%q",v)
elseif tv=="boolean" then
@@ -1405,7 +1409,11 @@ local function is_simple_table(t)
local v=t[i]
local tv=type(v)
if tv=="number" then
- tt[i+1]=v
+ if hexify then
+ tt[i+1]=format("0x%X",v)
+ else
+ tt[i+1]=v
+ end
elseif tv=="string" then
tt[i+1]=format("%q",v)
elseif tv=="boolean" then
@@ -7541,8 +7549,8 @@ local formatters=string.formatters
local sortedhash,sortedkeys=table.sortedhash,table.sortedkeys
local trace_loading=false trackers.register("fonts.loading",function(v) trace_loading=v end)
local trace_mapping=false trackers.register("fonts.mapping",function(v) trace_mapping=v end)
-local report_fonts=logs.reporter("fonts","loading")
-local force_ligatures=false directives.register("fonts.mapping.forceligatures",function(v) force_ligatures=v end)
+local report_fonts=logs.reporter("fonts","loading")
+local force_ligatures=true directives.register("fonts.mapping.forceligatures",function(v) force_ligatures=v end)
local fonts=fonts or {}
local mappings=fonts.mappings or {}
fonts.mappings=mappings
@@ -7825,34 +7833,42 @@ function mappings.addtounicode(data,filename,checklookups)
if type(checklookups)=="function" then
checklookups(data,missing,nofmissing)
end
- local collected=false
local unicoded=0
- for i=1,#dlist do
- local du=dlist[i]
- local glyph=descriptions[du]
- if glyph.class=="ligature" and (force_ligatures or not glyph.unicode) then
- if not collected then
- collected=fonts.handlers.otf.readers.getcomponents(data)
- if not collected then
- break
- end
+ local collected=fonts.handlers.otf.readers.getcomponents(data)
+ local function resolve(glyph,u)
+ local n=#u
+ for i=1,n do
+ if u[i]>private then
+ n=0
+ break
end
+ end
+ if n>0 then
+ if n>1 then
+ glyph.unicode=u
+ else
+ glyph.unicode=u[1]
+ end
+ unicoded=unicoded+1
+ end
+ end
+ if not collected then
+ elseif force_ligatures then
+ for i=1,#dlist do
+ local du=dlist[i]
local u=collected[du]
if u then
- local n=#u
- for i=1,n do
- if u[i]>private then
- n=0
- break
- end
- end
- if n>0 then
- if n>1 then
- glyph.unicode=u
- else
- glyph.unicode=u[1]
- end
- unicoded=unicoded+1
+ resolve(descriptions[du],u)
+ end
+ end
+ else
+ for i=1,#dlist do
+ local du=dlist[i]
+ local glyph=descriptions[du]
+ if glyph.class=="ligature" and not glyph.unicode then
+ local u=collected[du]
+ if u then
+ resolve(glyph,u)
end
end
end
@@ -12463,7 +12479,7 @@ function readers.glyf(f,fontdata,specification)
else
contours2outlines_shaped(glyphs,shapes,specification.shapes)
end
- elseif specification.loadshapes then
+ elseif specification.shapes then
contours2outlines_normal(glyphs,shapes)
end
end
@@ -26006,7 +26022,8 @@ local function initializecolr(tfmdata,kind,value)
local w=character.width or 0
local s=#colorlist
local t={
- { "special","pdf:direct:q "..b },
+ { "special","pdf:page:q" },
+ { "special","pdf:raw:"..b }
}
local n=#t
for i=1,s do
@@ -26017,7 +26034,8 @@ local function initializecolr(tfmdata,kind,value)
n=n+1 t[n]={ "right",-w }
end
end
- n=n+1 t[n]={ "special","pdf:direct:"..e.." Q"}
+ n=n+1 t[n]={ "special","pdf:page:"..e }
+ n=n+1 t[n]={ "special","pdf:raw:Q" }
character.commands=t
end
end