[latex3-commits] [git/LaTeX3-latex3-luaotfload] dev: Add tounicode overloads (bc7268f)

Marcel Fabian Krüger tex at 2krueger.de
Thu Oct 31 01:02:45 CET 2019


Repository : https://github.com/latex3/luaotfload
On branch  : dev
Link       : https://github.com/latex3/luaotfload/commit/bc7268f5502f00f3c2023d996a883fcca6ad8234

>---------------------------------------------------------------

commit bc7268f5502f00f3c2023d996a883fcca6ad8234
Author: Marcel Fabian Krüger <tex at 2krueger.de>
Date:   Thu Oct 31 01:02:45 2019 +0100

    Add tounicode overloads


>---------------------------------------------------------------

bc7268f5502f00f3c2023d996a883fcca6ad8234
 src/luaotfload-filelist.lua  |   1 +
 src/luaotfload-main.lua      |   1 +
 src/luaotfload-tounicode.lua | 200 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 202 insertions(+)

diff --git a/src/luaotfload-filelist.lua b/src/luaotfload-filelist.lua
index 496fdd6..815508b 100644
--- a/src/luaotfload-filelist.lua
+++ b/src/luaotfload-filelist.lua
@@ -255,6 +255,7 @@ luaotfload.filelist.data =
     { name = "parsers"           ,kind = kind_library, ext =".lua", gitdir=gitdirsrc, texdir=texdirtex, gitpref = "luaotfload-" }, 
     { name = "resolvers"         ,kind = kind_library, ext =".lua", gitdir=gitdirsrc, texdir=texdirtex, gitpref = "luaotfload-" }, 
     { name = "unicode"           ,kind = kind_library, ext =".lua", gitdir=gitdirsrc, texdir=texdirtex, gitpref = "luaotfload-" },
+    { name = "tounicode"         ,kind = kind_library, ext =".lua", gitdir=gitdirsrc, texdir=texdirtex, gitpref = "luaotfload-" },
 
     { name = "characters"        ,kind = kind_generated, ext =".lua", gitdir=gitdirgen, texdir=texdirtex, gitpref = "luaotfload-", script="mkcharacter" },
     { name = "glyphlist"         ,kind = kind_generated, ext =".lua", gitdir=gitdirgen, texdir=texdirtex, gitpref = "luaotfload-", script="mkglyphlist" },
diff --git a/src/luaotfload-main.lua b/src/luaotfload-main.lua
index 578acdd..c17d807 100644
--- a/src/luaotfload-main.lua
+++ b/src/luaotfload-main.lua
@@ -317,6 +317,7 @@ luaotfload.main = function ()
     end
     initialize "auxiliary"    --- additional high-level functionality
     loadmodule "multiscript"  --- ...
+    loadmodule "tounicode"
 
     luaotfload.aux.start_rewrite_fontname () --- to be migrated to fontspec
 
diff --git a/src/luaotfload-tounicode.lua b/src/luaotfload-tounicode.lua
new file mode 100644
index 0000000..ea9b250
--- /dev/null
+++ b/src/luaotfload-tounicode.lua
@@ -0,0 +1,200 @@
+-----------------------------------------------------------------------
+--         FILE:  luaotfload-tounicode.lua
+--  DESCRIPTION:  part of luaotfload / tounicode overwrites
+-----------------------------------------------------------------------
+
+local ProvidesLuaModule = { 
+    name          = "luaotfload-tounicode",
+    version       = "3.0006-dev",       --TAGVERSION
+    date          = "2019-10-15", --TAGDATE
+    description   = "luaotfload submodule / tounicode",
+    license       = "GPL v2.0",
+    author        = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
+    copyright     = "PRAGMA ADE / ConTeXt Development Team",
+}
+
+if luatexbase and luatexbase.provides_module then
+  luatexbase.provides_module (ProvidesLuaModule)
+end  
+
+local overloads = {
+  -- rougly based on texglyphlist-g2u.txt
+
+  -- ff = { unicode = {0x0066, 0x0066} },
+  -- ffi = { unicode = {0x0066, 0x0066, 0x0069} },
+  -- ffl = { unicode = {0x0066, 0x0066, 0x006C} },
+  -- fi = { unicode = {0x0066, 0x0069} },
+  -- fl = { unicode = {0x0066, 0x006C} },
+  longst = { unicode = {0x017F, 0x0074} },
+  st = { unicode = {0x0073, 0x0074} },
+  AEsmall = { unicode = 0x00E6 },
+  Aacutesmall = { unicode = 0x00E1 },
+  Acircumflexsmall = { unicode = 0x00E2 },
+  Acute = { unicode = 0x00B4 },
+  Acutesmall = { unicode = 0x00B4 },
+  Adieresissmall = { unicode = 0x00E4 },
+  Agravesmall = { unicode = 0x00E0 },
+  Aringsmall = { unicode = 0x00E5 },
+  Asmall = { unicode = 0x0061 },
+  Atildesmall = { unicode = 0x00E3 },
+  Brevesmall = { unicode = 0x02D8 },
+  Bsmall = { unicode = 0x0062 },
+  Caron = { unicode = 0x02C7 },
+  Caronsmall = { unicode = 0x02C7 },
+  Ccedillasmall = { unicode = 0x00E7 },
+  Cedillasmall = { unicode = 0x00B8 },
+  Circumflexsmall = { unicode = 0x02C6 },
+  Csmall = { unicode = 0x0063 },
+  Dieresis = { unicode = 0x00A8 },
+  DieresisAcute = { unicode = 0xF6CC },
+  DieresisGrave = { unicode = 0xF6CD },
+  Dieresissmall = { unicode = 0x00A8 },
+  Dotaccentsmall = { unicode = 0x02D9 },
+  Dsmall = { unicode = 0x0064 },
+  Eacutesmall = { unicode = 0x00E9 },
+  Ecircumflexsmall = { unicode = 0x00EA },
+  Edieresissmall = { unicode = 0x00EB },
+  Egravesmall = { unicode = 0x00E8 },
+  Esmall = { unicode = 0x0065 },
+  Ethsmall = { unicode = 0x00F0 },
+  Fsmall = { unicode = 0x0066 },
+  Grave = { unicode = 0x0060 },
+  Gravesmall = { unicode = 0x0060 },
+  Gsmall = { unicode = 0x0067 },
+  Hsmall = { unicode = 0x0068 },
+  Hungarumlaut = { unicode = 0x02DD },
+  Hungarumlautsmall = { unicode = 0x02DD },
+  Iacutesmall = { unicode = 0x00ED },
+  Icircumflexsmall = { unicode = 0x00EE },
+  Idieresissmall = { unicode = 0x00EF },
+  Igravesmall = { unicode = 0x00EC },
+  Ismall = { unicode = 0x0069 },
+  Jsmall = { unicode = 0x006A },
+  Ksmall = { unicode = 0x006B },
+  LL = { unicode = {0x004C, 0x004C} },
+  Lslashsmall = { unicode = 0x0142 },
+  Lsmall = { unicode = 0x006C },
+  Macron = { unicode = 0x00AF },
+  Macronsmall = { unicode = 0x00AF },
+  Msmall = { unicode = 0x006D },
+  Nsmall = { unicode = 0x006E },
+  Ntildesmall = { unicode = 0x00F1 },
+  OEsmall = { unicode = 0x0153 },
+  Oacutesmall = { unicode = 0x00F3 },
+  Ocircumflexsmall = { unicode = 0x00F4 },
+  Odieresissmall = { unicode = 0x00F6 },
+  Ogoneksmall = { unicode = 0x02DB },
+  Ogravesmall = { unicode = 0x00F2 },
+  Oslashsmall = { unicode = 0x00F8 },
+  Osmall = { unicode = 0x006F },
+  Otildesmall = { unicode = 0x00F5 },
+  Psmall = { unicode = 0x0070 },
+  Qsmall = { unicode = 0x0071 },
+  Ringsmall = { unicode = 0x02DA },
+  Rsmall = { unicode = 0x0072 },
+  Scaronsmall = { unicode = 0x0161 },
+  Ssmall = { unicode = 0x0073 },
+  Thornsmall = { unicode = 0x00FE },
+  Tildesmall = { unicode = 0x02DC },
+  Tsmall = { unicode = 0x0074 },
+  Uacutesmall = { unicode = 0x00FA },
+  Ucircumflexsmall = { unicode = 0x00FB },
+  Udieresissmall = { unicode = 0x00FC },
+  Ugravesmall = { unicode = 0x00F9 },
+  Usmall = { unicode = 0x0075 },
+  Vsmall = { unicode = 0x0076 },
+  Wsmall = { unicode = 0x0077 },
+  Xsmall = { unicode = 0x0078 },
+  Yacutesmall = { unicode = 0x00FD },
+  Ydieresissmall = { unicode = 0x00FF },
+  Ysmall = { unicode = 0x0079 },
+  Zcaronsmall = { unicode = 0x017E },
+  Zsmall = { unicode = 0x007A },
+  ampersandsmall = { unicode = 0x0026 },
+  asuperior = { unicode = 0x0061 },
+  bsuperior = { unicode = 0x0062 },
+  centinferior = { unicode = 0x00A2 },
+  centoldstyle = { unicode = 0x00A2 },
+  centsuperior = { unicode = 0x00A2 },
+  commainferior = { unicode = 0x002C },
+  commasuperior = { unicode = 0x002C },
+  copyrightsans = { unicode = 0x00A9 },
+  copyrightserif = { unicode = 0x00A9 },
+  cyrBreve = { unicode = 0x02D8 },
+  cyrFlex = { unicode = {0x00A0, 0x0311} },
+  cyrbreve = { unicode = 0x02D8 },
+  cyrflex = { unicode = {0x00A0, 0x0311} },
+  dblGrave = { unicode = {0x00A0, 0x030F} },
+  dblgrave = { unicode = {0x00A0, 0x030F} },
+  dieresisacute = { unicode = {0x00A0, 0x0308, 0x0301} },
+  dieresisgrave = { unicode = {0x00A0, 0x0308, 0x0300} },
+  dollarinferior = { unicode = 0x0024 },
+  dollaroldstyle = { unicode = 0x0024 },
+  dollarsuperior = { unicode = 0x0024 },
+  dotlessj = { unicode = 0x0237 },
+  dsuperior = { unicode = 0x0064 },
+  eightoldstyle = { unicode = 0x0038 },
+  esuperior = { unicode = 0x0065 },
+  exclamdownsmall = { unicode = 0x00A1 },
+  exclamsmall = { unicode = 0x0021 },
+  fiveoldstyle = { unicode = 0x0035 },
+  fouroldstyle = { unicode = 0x0034 },
+  hypheninferior = { unicode = 0x002D },
+  hyphensuperior = { unicode = 0x002D },
+  isuperior = { unicode = 0x0069 },
+  ll = { unicode = {0x006C, 0x006C} },
+  lsuperior = { unicode = 0x006C },
+  msuperior = { unicode = 0x006D },
+  nineoldstyle = { unicode = 0x0039 },
+  onefitted = { unicode = 0x0031 },
+  oneoldstyle = { unicode = 0x0031 },
+  osuperior = { unicode = 0x006F },
+  periodinferior = { unicode = 0x002E },
+  periodsuperior = { unicode = 0x002E },
+  questiondownsmall = { unicode = 0x00BF },
+  questionsmall = { unicode = 0x003F },
+  registersans = { unicode = 0x00AE },
+  registerserif = { unicode = 0x00AE },
+  rsuperior = { unicode = 0x0072 },
+  rupiah = { unicode = 0x20A8 },
+  sevenoldstyle = { unicode = 0x0037 },
+  sixoldstyle = { unicode = 0x0036 },
+  ssuperior = { unicode = 0x0073 },
+  threeoldstyle = { unicode = 0x0033 },
+  trademarksans = { unicode = 0x2122 },
+  trademarkserif = { unicode = 0x2122 },
+  tsuperior = { unicode = 0x0074 },
+  twooldstyle = { unicode = 0x0032 },
+  zerooldstyle = { unicode = 0x0030 },
+  FFsmall = { unicode = {0x0066, 0x0066} },
+  FFIsmall = { unicode = {0x0066, 0x0066, 0x0069} },
+  FFLsmall = { unicode = {0x0066, 0x0066, 0x006C} },
+  FIsmall = { unicode = {0x0066, 0x0069} },
+  FLsmall = { unicode = {0x0066, 0x006C} },
+  Germandblssmall = { unicode = {0x0073, 0x0073} },
+  SSsmall = { unicode = {0x0073, 0x0073} },
+}
+-- For values that are used multiple times
+local function registeroverload(mapped)
+  mapped = {unicode = mapped}
+  local function multiset(first, ...)
+    if first then
+      rawset(overloads, first, mapped)
+      return multiset(...)
+    end
+  end
+  return multiset
+end
+
+-- These come from ConTeXt
+registeroverload { 0x49, 0x4A } ("IJ", "I_J", 0x0132)
+registeroverload { 0x69, 0x6A } ("ij", "i_j", 0x0133)
+registeroverload { 0x66, 0x66 } ("ff", "f_f", 0xFB00)
+registeroverload { 0x66, 0x69 } ("fi", "f_i", 0xFB01)
+registeroverload { 0x66, 0x6C } ("fl", "f_l", 0xFB02)
+registeroverload { 0x66, 0x66, 0x69 } ("ffi", "f_f_i", 0xFB03)
+registeroverload { 0x66, 0x66, 0x6C } ("ffl", "f_f_l", 0xFB04)
+registeroverload { 0x66, 0x6A } ("fj", "f_j")
+registeroverload { 0x66, 0x6B } ("fk", "f_k")
+
+fonts.mappings.overloads = overloads





More information about the latex3-commits mailing list