diff options
author | Norbert Preining <norbert@preining.info> | 2019-11-12 03:01:13 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-11-12 03:01:13 +0000 |
commit | a6d73b76eb19794e956fe1f3ab1f9bab3915cd7a (patch) | |
tree | 26a9e14dec31508c4c4bd3ec69dfccef8c39bad2 /macros/luatex/generic | |
parent | 0e71c26d9aa79c6e92c3095d6c71f28a566e6054 (diff) |
CTAN sync 201911120301
Diffstat (limited to 'macros/luatex/generic')
41 files changed, 215 insertions, 104 deletions
diff --git a/macros/luatex/generic/luaotfload/NEWS b/macros/luatex/generic/luaotfload/NEWS index 86b9dd9b2d..d8c05e500a 100644 --- a/macros/luatex/generic/luaotfload/NEWS +++ b/macros/luatex/generic/luaotfload/NEWS @@ -1,5 +1,10 @@ Change History -------------- +2019-11-10 luaotfload v3.11 + * Changed the handling of the script key in harf mode to be more compatible with behaviour of the node mode. + It now expects the name of a script that is actually in the font instead of a ISO 15924 script tag. See issue 117. + * Corrected a number of small typos and bugs in harf mode. + 2019-11-04 luaotfload v3.1 * added code to use the harfbuzz library of luahbtex ("mode=harf") * fonts in ttc can now be indexed by name diff --git a/macros/luatex/generic/luaotfload/README.md b/macros/luatex/generic/luaotfload/README.md index ca760b1bab..57cae2d99b 100644 --- a/macros/luatex/generic/luaotfload/README.md +++ b/macros/luatex/generic/luaotfload/README.md @@ -1,8 +1,8 @@ # The Luaotfload Package -VERSION: 3.1 +VERSION: 3.11 -DATE: 2019-11-04 +DATE: 2019-11-10 ## Description diff --git a/macros/luatex/generic/luaotfload/filegraph.pdf b/macros/luatex/generic/luaotfload/filegraph.pdf Binary files differindex 95b296c599..9fc854a941 100644 --- a/macros/luatex/generic/luaotfload/filegraph.pdf +++ b/macros/luatex/generic/luaotfload/filegraph.pdf diff --git a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua index 9538a15bb0..fd4291f67c 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua @@ -6,8 +6,8 @@ local ProvidesLuaModule = { name = "luaotfload-auxiliary", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / auxiliary functions", license = "GPL v2.0" } @@ -33,6 +33,7 @@ local getmetatable = getmetatable local setmetatable = setmetatable local utfcodepoint = utf8.codepoint local stringlower = string.lower +local stringupper = string.upper local stringformat = string.format local stringgsub = string.gsub local stringbyte = string.byte @@ -441,7 +442,7 @@ end local function get_hbface(tfmdata) if not tfmdata.hb then return end - return tfmdata.hbshared.face + return tfmdata.hb.shared.face end --[[doc-- diff --git a/macros/luatex/generic/luaotfload/luaotfload-colors.lua b/macros/luatex/generic/luaotfload/luaotfload-colors.lua index ae78130b4f..ddc564b05b 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-colors.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-colors.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-colors", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / color", license = "GPL v2.0", author = "Khaled Hosny, Elie Roux, Philipp Gesang, Dohyun Kim, David Carlisle", diff --git a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf Binary files differindex 031fb0987a..0515095402 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf +++ b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf diff --git a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua index e9b818df2d..b9ee9a6c7a 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua @@ -7,8 +7,8 @@ local ProvidesLuaModule = { name = "luaotfload-configuration", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / config file reader", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-database.lua b/macros/luatex/generic/luaotfload/luaotfload-database.lua index 10a0853c89..ad00bb26f7 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-database.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-database.lua @@ -5,8 +5,8 @@ do -- block to avoid to many local variables error local ProvidesLuaModule = { name = "luaotfload-database", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / database", license = "GPL v2.0", author = "Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger", diff --git a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua index 1dc24ba6ee..0df0be7ff5 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua @@ -7,8 +7,8 @@ local ProvidesLuaModule = { name = "luaotfload-diagnostics", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload-tool submodule / diagnostics", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua index 8d51249976..4e16a992d0 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-embolden", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / color", license = "GPL v2.0", author = "Marcel Krüger" diff --git a/macros/luatex/generic/luaotfload/luaotfload-features.lua b/macros/luatex/generic/luaotfload/luaotfload-features.lua index bf56c4e3d1..de129891e3 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-features.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-features.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-features", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / features", license = "GPL v2.0", author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger", diff --git a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua index 24868eb315..4a1348b5f0 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua @@ -6,8 +6,8 @@ local ProvidesLuaModule = { name = "luaotfload-filelist", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / filelist", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua index fe655149ad..8e0a2dec5f 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua @@ -1,7 +1,7 @@ local ProvidesLuaModule = { name = "luaotfload-glyphlist", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / autogenerated glyphlist", copyright = "derived from https://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt", original = "Adobe Glyph List, version 2.0, September 20, 2002", diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua index e8154cb719..ad02cdb99a 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua @@ -5,8 +5,8 @@ do -- block to avoid to many local variables error local ProvidesLuaModule = { name = "luaotfload-harf-define", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / database", license = "GPL v2.0", author = "Khaled Hosny, Marcel Krüger", @@ -23,6 +23,7 @@ local stringupper = string.upper local gsub = string.gsub local hb = luaotfload.harfbuzz +local scriptlang_to_harfbuzz = require'luaotfload-scripts'.to_harfbuzz local hbfonts = {} @@ -32,6 +33,9 @@ local os2tag = hb.Tag.new("OS/2") local posttag = hb.Tag.new("post") local glyftag = hb.Tag.new("glyf") +local invalid_l = hb.Language.new() +local invalid_s = hb.Script.new() + local containers = luaotfload.fontloader.containers local hbcacheversion = 1.0 local facecache = containers.define("fonts", "hb", hbcacheversion, true) @@ -366,15 +370,23 @@ fonts.readers.harf = function(spec) local hb_features = {} spec.hb_features = hb_features - if rawfeatures.language then + if rawfeatures.script then + local script = stringlower(rawfeatures.script) + if script == "dflt" then -- Probably a noop, HarfBuzz normalizes anyway + script = "DFLT" + end + local language = stringupper(rawfeatures.language or 'dflt') + language = language == "DFLT" and "dflt" or language + local hb_script, hb_lang = scriptlang_to_harfbuzz(script, language) + spec.script, spec.language = hb.Script.new(hb_script), hb.Language.new(hb_lang) + elseif rawfeatures.language then local language = stringupper(rawfeatures.language) spec.language = hb.Language.new(language == "DFLT" and "dflt" or language) - end - if rawfeatures.script then - local script = stringlower(rawfeatures.script) - spec.script = hb.Script.new(script == "dflt" and "DFLT" - or script) + spec.script = invalid_s + else + spec.script = invalid_s + spec.language = invalid_l end for key, val in next, rawfeatures do if key:len() == 4 then diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua index 123a1c4563..528d8c1e60 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua @@ -5,8 +5,8 @@ do -- block to avoid to many local variables error local ProvidesLuaModule = { name = "luaotfload-harf-plug", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / database", license = "GPL v2.0", author = "Khaled Hosny, Marcel Krüger", @@ -98,9 +98,6 @@ local italiccorr_t = 3 local regulardisc_t = 3 local spaceskip_t = 13 -local invalid_l = hb.Language.new() -local invalid_s = hb.Script.new() - local dir_ltr = hb.Direction.new("ltr") local dir_rtl = hb.Direction.new("rtl") local fl_unsafe = hb.Buffer.GLYPH_FLAG_UNSAFE_TO_BREAK @@ -322,8 +319,8 @@ function shape(head, node, run) local hbshared = hbdata.shared local hbfont = hbshared.font - local lang = spec.language or invalid_l - local script = spec.script or invalid_s + local lang = spec.language + local script = spec.script local shapers = options.shaper and { options.shaper } or {} local buf = hb.Buffer.new() diff --git a/macros/luatex/generic/luaotfload/luaotfload-init.lua b/macros/luatex/generic/luaotfload/luaotfload-init.lua index 5f7b710d9b..e136d6cf63 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-init.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-init.lua @@ -7,8 +7,8 @@ local ProvidesLuaModule = { name = "luaotfload-init", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / initialization", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf Binary files differindex 28391b2e8a..815d215d6b 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf +++ b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf diff --git a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua index a58d59ba1a..905fc6acce 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-letterspace", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / color", license = "GPL v2.0", copyright = "PRAGMA ADE / ConTeXt Development Team", diff --git a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua index c2c2320ff8..2865bf5516 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua @@ -8,8 +8,8 @@ local ProvidesLuaModule = { name = "luaotfload-loaders", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / callback handling", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-log.lua b/macros/luatex/generic/luaotfload/luaotfload-log.lua index e6bb042b4f..9532877127 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-log.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-log.lua @@ -6,8 +6,8 @@ local ProvidesLuaModule = { name = "luaotfload-log", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / logging", license = "GPL v2.0", author = "Khaled Hosny, Elie Roux, Philipp Gesang", diff --git a/macros/luatex/generic/luaotfload/luaotfload-main.lua b/macros/luatex/generic/luaotfload/luaotfload-main.lua index d17a1d9b26..65fdc9fc00 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-main.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-main.lua @@ -20,8 +20,8 @@ local authors = "\z -- version number is used below! local ProvidesLuaModule = { name = "luaotfload-main", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload entry point", author = authors, copyright = authors, diff --git a/macros/luatex/generic/luaotfload/luaotfload-main.tex b/macros/luatex/generic/luaotfload/luaotfload-main.tex index dbc8d73e7d..9fe9060695 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-main.tex +++ b/macros/luatex/generic/luaotfload/luaotfload-main.tex @@ -32,7 +32,7 @@ \beginfrontmatter \setdocumenttitle {The \identifier{luaotfload} package} - \setdocumentdate {2019-11-04 v3.1} + \setdocumentdate {2019-11-10 v3.11} \setdocumentauthor {LaTeX3 Project\\ Elie Roux · Khaled Hosny · Philipp Gesang · Ulrike Fischer · Marcel Krüger\\ Home: \hyperlink {https://github.com/latex3/luaotfload}} @@ -62,12 +62,17 @@ Supported is the \identifier{luatex} versions of a current TeXLive 2019 (and a c \endsection \beginsection{Changes} +\beginsubsection {New in version 3.11 (by Ulrike Fischer/Marcel Krüger)} +\begin{itemize} +\item Changed the handling of the \identifier{script} key in harf mode to be more compatible with behaviour of the node mode. It now expects the name of a script that is actually in the font instead of a ISO 15924 script tag. See issue 117. +\item Corrected a number of small typos and bugs in harf mode. +\end{itemize} \beginsubsection {New in version 3.1 (by Ulrike Fischer/Marcel Krüger)} \begin{itemize} \item The package has been moved to the github of the LaTeX3 Project and is now maintained officially by the LaTeX3 Project team. \item Code to use the harfbuzz library of luahbtex has been added. See the description of the harf mode. -\item fonts in ttc-collections can now be indexed by name. +\item fonts in ttc-collections can now be indexed by name. \item To reduce the polution of the global lua enviroment a number of lua tables have been removed. Only the tables \identifier{luaotfload}, \identifier{fonts} and \identifier{nodes} have been kept there. \item The fontloader has been synched with the context files from 2019-10-29. @@ -766,13 +771,13 @@ obviously, \inlinecode{random}. \identifier{harf} mode is new in version 3.1 and needs the new \identifier{luahbtex} engine (the mode is ignored if \identifier{luahbtex} is not used). With it is possible to render a font using the harfbuzz library in-built in the new engine. \identifier{harf} mode improves greatly the rendering of indic and arabic scripts and is highly recommended for such scripts. - When using \identifier{harf} mode it is required to set also the script correctly: + When using \identifier{harf} mode it is required to set also the script correctly. \beginlisting - \font\burmesefont={file:NotoSerifMyanmar-Regular.ttf:mode=harf;script=mymr;} - \font\devafont={file:NotoSansDevanagari-Regular.ttf:mode=harf;script=deva;} - \font\banglafont={name:Noto Sans Bengali:mode=harf;script=beng;} + \font\burmesefont={file:NotoSerifMyanmar-Regular.ttf:mode=harf;script=mym2;} + \font\devafont={file:NotoSansDevanagari-Regular.ttf:mode=harf;script=dev2;} + \font\banglafont={name:Noto Sans Bengali:mode=harf;script=ben2;} \font\tibetanfont={name:Noto Serif Tibetan:mode=harf;script=tibt;} \endlisting diff --git a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua index 56d381a911..c2aa664fab 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-multiscript", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / multiscript", license = "GPL v2.0", author = "Marcel Krüger" diff --git a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua index 53f4af8e3a..9c0634f90d 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-notdef", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / color", license = "GPL v2.0", author = "Marcel Krüger" diff --git a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua index 4a2d6305e1..4cf46fe329 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua @@ -7,8 +7,8 @@ local ProvidesLuaModule = { name = "luaotfload-parsers", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / filelist", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua index 97e85f0a41..61949621cb 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua @@ -11,8 +11,8 @@ local ProvidesLuaModule = { name = "luaotfload-resolvers", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / resolvers", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-scripts.lua b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua new file mode 100644 index 0000000000..48ececf890 --- /dev/null +++ b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua @@ -0,0 +1,91 @@ +----------------------------------------------------------------------- +-- FILE: luaotfload-script.lua +-- DESCRIPTION: part of luaotfload / script +----------------------------------------------------------------------- + +local ProvidesLuaModule = { + name = "luaotfload-script", + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE + description = "luaotfload submodule / Script helpers", + license = "CC0 1.0 Universal", + author = "Marcel Krüger" +} + +if luatexbase and luatexbase.provides_module then + luatexbase.provides_module (ProvidesLuaModule) +end + +local canonical_name = { + dflt = "DFLT", + hira = "kana", + laoo = "lao", + yiii = "yi", + nkoo = "nko", + yaii = "vai", + ["lao "] = "lao", + ["yi "] = "yi", + ["nko "] = "nko", + ["vai "] = "vai", +} +local versioned_script = { + mym = "mymr", mymr = "mym", + bng = "beng", beng = "bng", + dev = "deva", deva = "dev", + gjr = "gujr", gujr = "gjr", + gur = "guru", guru = "gur", + knd = "knda", knda = "knd", + mlm = "mlym", mlym = "mlm", + ory = "orya", orya = "ory", + tml = "taml", taml = "tml", + tel = "telu", telu = "tel", +} +local function get_versioned(original) + local base = original:gsub("%d$", "") -- Strip any existing version + local versioned = versioned_script[base] + if not versioned then + return original + end + if #base == 3 then + local t = base + base = versioned + versioned = t + end + if base == "mymr" then + return "mym2", "mymr" + end + return versioned .. '3', versioned .. '2', base +end + +-- We never return trailing spaces because I consider them implementation details. +local function script_to_ot(iso) + iso = iso:lower() + return get_versioned(canonical_name[iso] or iso) +end + +local function script_to_iso(tag) + tag = tag:lower() + tag = canonical_name[tag] or tag + local stripped, did_strip = tag:gsub("%d$", "") + tag = did_strip == 1 and versioned_script[stripped] or tag + local tag_length = #tag + if tag_length == 4 then return tag end -- Optimization for common case + -- I promise you, I am not making this one up + return tag .. string.rep(tag:sub(tag_length, tag_length), 4-tag_length) +end + +local function to_harfbuzz(script, language) + local otscript = script_to_iso(script) + -- if script_to_ot(otscript) == script then + -- return otscript, language + -- end + return otscript, "x-hbot" .. language .. "-hbsc" .. script +end + +return { + to_harfbuzz = to_harfbuzz, + script = { + to_ot = script_to_ot, + to_iso = script_to_iso, + }, +} diff --git a/macros/luatex/generic/luaotfload/luaotfload-status.lua b/macros/luatex/generic/luaotfload/luaotfload-status.lua index 3221986ca7..b4bad63474 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-status.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-status.lua @@ -55,40 +55,40 @@ return { { "fontloader-reference.lua", "5be3565068a1929b173bde862b48a30e" }, { "fontloader-basics-gen.lua", "b21e91bbd534f77e368f0ec13f865aed" }, { "mktests", "c7cff7025962922944376acc1ffa9c47" }, - { "mkstatus", "32b8eee5316ca3100e4434db79d08230" }, + { "mkstatus", "1a9f8bbf36426071b6970678975360a9" }, { "mkcharacters", "92c24bb582fc84c0365634f29eb89863" }, { "mkglyphlist", "557836886d4f0e6d656eac3ded4456a2" }, { "mkimport", "60e0b11a1a68719033e86a3e0f4d5e86" }, - { "luaotfload-glyphlist.lua", "6dc41351ebdb122e044bed6d3fc2ca4b" }, + { "luaotfload-glyphlist.lua", "bb67952ea9fb1c3766402457bd477629" }, { "luaotfload-characters.lua", "593ce9dccf6ddc4f7d4be0514f581102" }, - { "luaotfload-tounicode.lua", "b87cab857631c47f5c2bbfa4dc1b5598" }, - { "luaotfload-unicode.lua", "eaf637834d735afce54cf81721b89626" }, - { "luaotfload-resolvers.lua", "7bcd23bf0c4079174679f61c315f54ed" }, - { "luaotfload-parsers.lua", "23b0550fcc6bf872714d882b8d15f465" }, - { "luaotfload-multiscript.lua", "bd0b25f9b9b21ad1e1a24fb88dc5cdbf" }, - { "luaotfload-loaders.lua", "34d130aa4e365639baecfa0481e34d13" }, - { "luaotfload-harf-plug.lua", "59429664d9bebfbf0e0bfa8a8bdd85e3" }, - { "luaotfload-harf-define.lua", "f0aafaecaddbc43f665a076195ed9205" }, - { "luaotfload-notdef.lua", "ce00644d5801c6fac2e274626a52ecf2" }, - { "luaotfload-embolden.lua", "7ff4b7e2970f2748a4d881b23085495d" }, - { "luaotfload-letterspace.lua", "2b24d57529363de4a004510da84bafd9" }, - { "luaotfload-features.lua", "b8c279955bcc473f02ad77b46942eb29" }, - { "luaotfload-database.lua", "131587572dcf49769bec7e085ab61281" }, - { "luaotfload-configuration.lua", "a59a94e07e20998144c91d5eb44b9302" }, - { "luaotfload-colors.lua", "c13f4c88058e2c4869205ad015765070" }, - { "luaotfload-auxiliary.lua", "77bcb55f9d215ad8a61701dc64e9a07e" }, - { "luaotfload-filelist.lua", "96967c2f4ad091f2a8c74a50294c25d5" }, - { "luaotfload-tool.lua", "9a53d4aedf71012530be90303aabe0d9" }, - { "luaotfload-diagnostics.lua", "f521a2b70b24bd23fb23d3d08d7845bf" }, - { "luaotfload-log.lua", "28c5c63d7af789ab7ca5757870dfc595" }, - { "luaotfload-init.lua", "ebb2e936d4c95cab76649897f6af0e25" }, - { "luaotfload-main.lua", "e4208f459c12b57a6996b4c7e9adbb8b" }, + { "luaotfload-tounicode.lua", "f37eab5828b4aee392de359bf4d57027" }, + { "luaotfload-unicode.lua", "861eb4a6332e0b7d8e757cab4759a734" }, + { "luaotfload-resolvers.lua", "5d9e254413ba333a4f559be023355224" }, + { "luaotfload-parsers.lua", "e1f4a54c2f29550d3c8ff18e19841ee4" }, + { "luaotfload-multiscript.lua", "05d2f1c9a27afdbc4b9ad95f958cb6cb" }, + { "luaotfload-loaders.lua", "cc475c8b04368d3f8ef6e52495fb579a" }, + { "luaotfload-harf-plug.lua", "ec3ad02c41bd174aedc350dc4cabbc54" }, + { "luaotfload-harf-define.lua", "7e85627ae64b749f41de5863d7c5ca86" }, + { "luaotfload-notdef.lua", "23d514bea20fcb0343a8382537ab3924" }, + { "luaotfload-embolden.lua", "bd0cd6e3951dab2862ca2d2dc1c6bccb" }, + { "luaotfload-letterspace.lua", "352d83726eead3902323d451907aeb66" }, + { "luaotfload-features.lua", "c60d2fcaab63dc338d9abd82176f96ee" }, + { "luaotfload-database.lua", "3f126f3acdcf4b90f13d6c3c41b83147" }, + { "luaotfload-configuration.lua", "fdb8f0e3b826e91b8598d4b4a387aaa5" }, + { "luaotfload-colors.lua", "7f63ffde97bb798b63f2c94c5a7e474f" }, + { "luaotfload-auxiliary.lua", "5e027ad1dde5655eaa74204cdb709098" }, + { "luaotfload-filelist.lua", "3194c19d0618e4784711e87864e625ea" }, + { "luaotfload-tool.lua", "3f989f7646d8df2aea584d2333cfb894" }, + { "luaotfload-diagnostics.lua", "b31b30dd151cd2e6c359b56f4c9fd12c" }, + { "luaotfload-log.lua", "30d00c154254ce70fe7c1a33692110e2" }, + { "luaotfload-init.lua", "e22c43529440994d0c99734c736dbb65" }, + { "luaotfload-main.lua", "9fc20061c7af28ccfcfb95a69115c3e4" }, }, ["notes"]={ ["committer"]="Ulrike Fischer <fischer@troubleshooting-tex.de>", - ["description"]="v3.1/2019-11-04", + ["description"]="v3.11/2019-11-10", ["loader"]="fontloader-2019-10-29.lua", - ["revision"]="cdc212ae76bc0f839d116c8f66af98445ba9f307", - ["timestamp"]="2019-11-03 15:29:57 +0100", + ["revision"]="d2ab135f432eadbc68f529447aa47b906ff961ab", + ["timestamp"]="2019-11-10 21:29:47 +0100", }, }
\ No newline at end of file diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.1 b/macros/luatex/generic/luaotfload/luaotfload-tool.1 index c2d754baa3..03b8373858 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-tool.1 +++ b/macros/luatex/generic/luaotfload/luaotfload-tool.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH LUAOTFLOAD-TOOL 1 "2019-11-04" "3.1" "text processing" +.TH LUAOTFLOAD-TOOL 1 "2019-11-10" "3.11" "text processing" .SH NAME luaotfload-tool \- generate and query the Luaotfload font names database . diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.lua b/macros/luatex/generic/luaotfload/luaotfload-tool.lua index 12bf2b3a42..b83cbb84bc 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-tool.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-tool.lua @@ -9,8 +9,8 @@ local ProvidesLuaModule = { name = "luaotfload-tool", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload-tool / database functionality", license = "GPL v2.0" } diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf Binary files differindex 76c2bb6df8..e810fa2ff6 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf +++ b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.rst b/macros/luatex/generic/luaotfload/luaotfload-tool.rst index 1c1ec3161e..09e4023882 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-tool.rst +++ b/macros/luatex/generic/luaotfload/luaotfload-tool.rst @@ -6,9 +6,9 @@ generate and query the Luaotfload font names database ----------------------------------------------------------------------- -:Date: 2019-11-04 +:Date: 2019-11-10 :Copyright: GPL v2.0 -:Version: 3.1 +:Version: 3.11 :Manual section: 1 :Manual group: text processing diff --git a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua index 3636f79220..560f2c83aa 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-tounicode", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / tounicode", license = "GPL v2.0", author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger", diff --git a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua index c1bdf3cbd2..659e92d938 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua +++ b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua @@ -5,8 +5,8 @@ local ProvidesLuaModule = { name = "luaotfload-unicode", - version = "3.1", --TAGVERSION - date = "2019-11-04", --TAGDATE + version = "3.11", --TAGVERSION + date = "2019-11-10", --TAGDATE description = "luaotfload submodule / Unicode helpers", license = "CC0 1.0 Universal", author = "Marcel Krüger" diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.5 b/macros/luatex/generic/luaotfload/luaotfload.conf.5 index 9726ad7aac..c6969eaec6 100644 --- a/macros/luatex/generic/luaotfload/luaotfload.conf.5 +++ b/macros/luatex/generic/luaotfload/luaotfload.conf.5 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH LUAOTFLOAD.CONF 5 "2019-11-04" "3.1" "text processing" +.TH LUAOTFLOAD.CONF 5 "2019-11-10" "3.11" "text processing" .SH NAME luaotfload.conf \- Luaotfload configuration file . diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.rst b/macros/luatex/generic/luaotfload/luaotfload.conf.rst index 18042188b8..39faaa5040 100644 --- a/macros/luatex/generic/luaotfload/luaotfload.conf.rst +++ b/macros/luatex/generic/luaotfload/luaotfload.conf.rst @@ -6,9 +6,9 @@ Luaotfload configuration file ----------------------------------------------------------------------- -:Date: 2019-11-04 +:Date: 2019-11-10 :Copyright: GPL v2.0 -:Version: 3.1 +:Version: 3.11 :Manual section: 5 :Manual group: text processing diff --git a/macros/luatex/generic/luaotfload/luaotfload.sty b/macros/luatex/generic/luaotfload/luaotfload.sty index 4dc2553d33..2c9582e464 100644 --- a/macros/luatex/generic/luaotfload/luaotfload.sty +++ b/macros/luatex/generic/luaotfload/luaotfload.sty @@ -40,7 +40,7 @@ \fi \ifdefined\ProvidesPackage \ProvidesPackage{luaotfload}% - [2019/11/04 v3.1 OpenType layout system] + [2019/11/10 v3.11 OpenType layout system] \fi \directlua{ if xpcall(function ()% diff --git a/macros/luatex/generic/luaotfload/scripts-demo.pdf b/macros/luatex/generic/luaotfload/scripts-demo.pdf Binary files differindex f0f1bb0065..34fb4bad45 100644 --- a/macros/luatex/generic/luaotfload/scripts-demo.pdf +++ b/macros/luatex/generic/luaotfload/scripts-demo.pdf diff --git a/macros/luatex/generic/luaotfload/scripts-demo.tex b/macros/luatex/generic/luaotfload/scripts-demo.tex index 4bbe06064c..63a60e5f9b 100644 --- a/macros/luatex/generic/luaotfload/scripts-demo.tex +++ b/macros/luatex/generic/luaotfload/scripts-demo.tex @@ -1,8 +1,8 @@ \documentclass{standalone} -\font\burmesefont={file:NotoSerifMyanmar-Regular.ttf:mode=harf;script=mymr;} -\font\devafont={file:NotoSansDevanagari-Regular.ttf:mode=harf;script=deva;} -\font\banglafont={file:NotoSansBengali-Regular.ttf:mode=harf;script=beng;} +\font\burmesefont={file:NotoSerifMyanmar-Regular.ttf:mode=harf;script=mym2;} +\font\devafont={file:NotoSansDevanagari-Regular.ttf:mode=harf;script=dev2;} +\font\banglafont={file:NotoSansBengali-Regular.ttf:mode=harf;script=bng2;} \font\tibetanfont={file:NotoSerifTibetan-Regular.ttf:mode=harf;script=tibt;} \standaloneenv{tabular} \begin{document} @@ -12,4 +12,4 @@ \banglafont কণ্যা এখন কি করিবে\\ \tibetanfont སྐྱེས་ཙམ་ཉིད་ནས་ཆེ་མཐོངས་དང༌། \end{tabular} -\end{document}
\ No newline at end of file +\end{document} diff --git a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf Binary files differindex 3c97c23522..b0ca589b30 100644 --- a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf +++ b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf diff --git a/macros/luatex/generic/luaotfload/shaper-demo.pdf b/macros/luatex/generic/luaotfload/shaper-demo.pdf Binary files differindex 183b062e1f..6baf30aa1d 100644 --- a/macros/luatex/generic/luaotfload/shaper-demo.pdf +++ b/macros/luatex/generic/luaotfload/shaper-demo.pdf |