Last active
July 15, 2016 01:53
-
-
Save dohyunkim/b00031111bea97e5d02d8300b8185892 to your computer and use it in GitHub Desktop.
nanum unicode virtual font for luatex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| local T1toUni = { | |
| -- removed [0] = 0x0060, | |
| -- changed 0x27 from 0x2019 | |
| -- changed 0x60 from 0x2018 | |
| -- changed 0x18 nil to 0x2030 | |
| 0x00B4, 0x02C6, 0x02DC, 0x00A8, 0x02DD, 0x02DA, 0x02C7, | |
| 0x02D8, 0x00AF, 0x02D9, 0x00B8, 0x02DB, 0x201A, 0x2039, 0x203A, | |
| 0x201C, 0x201D, 0x201E, 0x00AB, 0x00BB, 0x2013, 0x2014, 0x200B, | |
| 0x2030, 0x0131, 0x0237, 0xFB00, 0xFB01, 0xFB02, 0xFB03, 0xFB04, | |
| 0x2423, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, | |
| 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, | |
| 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, | |
| 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, | |
| 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, | |
| 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, | |
| 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, | |
| 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, | |
| 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, | |
| 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, | |
| 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, | |
| 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x002D, | |
| 0x0102, 0x0104, 0x0106, 0x010C, 0x010E, 0x011A, 0x0118, 0x011E, | |
| 0x0139, 0x013D, 0x0141, 0x0143, 0x0147, 0x014A, 0x0150, 0x0154, | |
| 0x0158, 0x015A, 0x0160, 0x015E, 0x0164, 0x0162, 0x0170, 0x016E, | |
| 0x0178, 0x0179, 0x017D, 0x017B, 0x0132, 0x0130, 0x0111, 0x00A7, | |
| 0x0103, 0x0105, 0x0107, 0x010D, 0x010F, 0x011B, 0x0119, 0x011F, | |
| 0x013A, 0x013E, 0x0142, 0x0144, 0x0148, 0x014B, 0x0151, 0x0155, | |
| 0x0159, 0x015B, 0x0161, 0x015F, 0x0165, 0x0163, 0x0171, 0x016F, | |
| 0x00FF, 0x017A, 0x017E, 0x017C, 0x0133, 0x00A1, 0x00BF, 0x00A3, | |
| 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, | |
| 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, | |
| 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0152, | |
| 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x1E9E, | |
| 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, | |
| 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, | |
| 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0153, | |
| 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00DF, | |
| } | |
| return function (spec) | |
| local prefix = spec.features.normal.prefix | |
| local size = spec.size | |
| local data = { | |
| name = spec.specification, | |
| type = "virtual", | |
| fonts = {}, | |
| characters = {}, | |
| } | |
| local fonts = data.fonts | |
| local chars = data.characters | |
| local name = "t1"..prefix | |
| if kpse.find_file(name,"tfm") then | |
| local tfm = font.read_tfm(name, size) | |
| data.parameters = tfm.parameters | |
| fonts[#fonts+1] = { name=name, size=size } | |
| local fid = #fonts | |
| for i,v in pairs(tfm.characters) do | |
| local slot = T1toUni[i] | |
| if slot then | |
| chars[slot] = v | |
| chars[slot].commands = { { "slot", fid, i } } | |
| if v.ligatures then | |
| local t = chars[slot].ligatures | |
| for ii,vv in pairs(v.ligatures) do | |
| t[T1toUni[ii]] = { char = T1toUni[vv.char], type = vv.type } | |
| end | |
| end | |
| if v.kerns then | |
| local t = chars[slot].kerns | |
| for ii,vv in pairs(v.kerns) do | |
| t[T1toUni[ii]] = vv | |
| end | |
| end | |
| end | |
| end | |
| end | |
| for index = 0, 255 do | |
| local name = string.format(prefix.."%02x", index) | |
| if kpse.find_file(name,"tfm") then | |
| local tfm = font.read_tfm(name, size) | |
| fonts[#fonts+1] = { name=name, size=size } | |
| local fid = #fonts | |
| local zro = 256 * index | |
| for i,v in pairs(tfm.characters) do | |
| local slot = zro + i | |
| if not chars[slot] then | |
| chars[slot] = v | |
| chars[slot].commands = { { "slot", fid, i } } | |
| end | |
| end | |
| end | |
| end | |
| return data | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| \RequirePackage{luaotfload} | |
| \DeclareFontFamily{\f@encoding}{nanummj}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{m}{n}{<->file:nanum-uni-vf.lua:prefix=nanummjm}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{m}{sc}{<->file:nanum-uni-vf.lua:prefix=nanummjm}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{m}{sl}{<->file:nanum-uni-vf.lua:prefix=nanummjmo}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{m}{it}{<->file:nanum-uni-vf.lua:prefix=nanummjmo}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{bx}{n}{<->file:nanum-uni-vf.lua:prefix=nanummjb}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{bx}{sc}{<->file:nanum-uni-vf.lua:prefix=nanummjb}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{bx}{sl}{<->file:nanum-uni-vf.lua:prefix=nanummjbo}{} | |
| \DeclareFontShape {\f@encoding}{nanummj}{bx}{it}{<->file:nanum-uni-vf.lua:prefix=nanummjbo}{} | |
| \DeclareFontFamily{\f@encoding}{nanumgt}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{m}{n}{<->file:nanum-uni-vf.lua:prefix=nanumgtm}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{m}{sc}{<->file:nanum-uni-vf.lua:prefix=nanumgtm}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{m}{sl}{<->file:nanum-uni-vf.lua:prefix=nanumgtmo}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{m}{it}{<->file:nanum-uni-vf.lua:prefix=nanumgtmo}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{bx}{n}{<->file:nanum-uni-vf.lua:prefix=nanumgtb}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{bx}{sc}{<->file:nanum-uni-vf.lua:prefix=nanumgtb}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{bx}{sl}{<->file:nanum-uni-vf.lua:prefix=nanumgtbo}{} | |
| \DeclareFontShape {\f@encoding}{nanumgt}{bx}{it}{<->file:nanum-uni-vf.lua:prefix=nanumgtbo}{} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment