diff options
Diffstat (limited to 'Master/texmf-dist/source/ptex-fontmaps/jis04cmap_exp/mk_jis_to_aj16_cid.lua')
-rwxr-xr-x | Master/texmf-dist/source/ptex-fontmaps/jis04cmap_exp/mk_jis_to_aj16_cid.lua | 572 |
1 files changed, 572 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/ptex-fontmaps/jis04cmap_exp/mk_jis_to_aj16_cid.lua b/Master/texmf-dist/source/ptex-fontmaps/jis04cmap_exp/mk_jis_to_aj16_cid.lua new file mode 100755 index 00000000000..e069c5d17db --- /dev/null +++ b/Master/texmf-dist/source/ptex-fontmaps/jis04cmap_exp/mk_jis_to_aj16_cid.lua @@ -0,0 +1,572 @@ +#!/usr/bin/env texlua + +-- JIS->Unicode->CID ではうまくいかない部分 +local nonuni_cid = { + -- 鼻濁音 + [0x2477] = 16209, + [0x2478] = 16210, + [0x2479] = 16211, + [0x247A] = 16212, + [0x247B] = 16213, + [0x2577] = 16214, + [0x2578] = 16215, + [0x2579] = 16216, + [0x257A] = 16217, + [0x257B] = 16218, + [0x257C] = 16219, + [0x257D] = 16220, + [0x257E] = 16221, + [0x2678] = 16246, + -- from http://examples.oreilly.de/english_examples/nutshell/cjkv/adobe/jisx0213-all.txt + [0x2B44] = 9422, + [0x2B48] = 9425, + [0x2B49] = 9424, + [0x2B4A] = 9440, + [0x2B4B] = 9439, + [0x2B4C] = 9428, + [0x2B4D] = 9427, + [0x2B4E] = 9431, + [0x2B4F] = 9430, + [0x2B65] = 15856, + [0x2B66] = 15857, +} + +-- 小塚明朝 Pr6 R の fwid feature による変換テーブル +local prop_to_full = { + [1]=633, [2]=642, [3]=8007, [4]=716, + [5]=712, [6]=715, [7]=717, [8]=8006, + [9]=674, [10]=675, [11]=718, [12]=692, + [13]=636, [14]=662, [15]=637, [16]=663, + [17]=780, [18]=781, [19]=782, [20]=783, + [21]=784, [22]=785, [23]=786, [24]=787, + [25]=788, [26]=789, [27]=639, [28]=640, + [29]=699, [30]=697, [31]=700, [32]=641, + [33]=719, [34]=790, [35]=791, [36]=792, + [37]=793, [38]=794, [39]=795, [40]=796, + [41]=797, [42]=798, [43]=799, [44]=800, + [45]=801, [46]=802, [47]=803, [48]=804, + [49]=805, [50]=806, [51]=807, [52]=808, + [53]=809, [54]=810, [55]=811, [56]=812, + [57]=813, [58]=814, [59]=815, [60]=678, + [61]=711, [62]=679, [63]=648, [64]=650, + [65]=646, [66]=816, [67]=817, [68]=818, + [69]=819, [70]=820, [71]=821, [72]=822, + [73]=823, [74]=824, [75]=825, [76]=826, + [77]=827, [78]=828, [79]=829, [80]=830, + [81]=831, [82]=832, [83]=833, [84]=834, + [85]=835, [86]=836, [87]=837, [88]=838, + [89]=839, [90]=840, [91]=841, [92]=680, + [93]=8005, [94]=681, [95]=665, [96]=671, + [97]=664, [98]=670, [99]=667, [100]=665, + [102]=713, [103]=714, [106]=720, [107]=16280, + [108]=672, [109]=684, [110]=682, [111]=683, + [114]=16206, [115]=776, [116]=777, [117]=638, + [118]=778, [119]=12256, [120]=636, [121]=8280, + [122]=673, [123]=685, [124]=668, [125]=772, + [127]=645, [128]=648, [129]=649, [132]=647, + [138]=661, [151]=693, [152]=8059, [153]=8008, + [154]=8060, [155]=707, [156]=694, [159]=12093, + [161]=8185, [162]=8184, [163]=9783, [186]=695, + [215]=696, [226]=649, [228]=11853, [230]=8228, + [231]=633, [232]=642, [233]=673, [234]=716, + [235]=712, [236]=715, [237]=717, [238]=671, + [239]=674, [240]=675, [241]=718, [242]=692, + [243]=636, [244]=662, [245]=637, [246]=663, + [247]=780, [248]=781, [249]=782, [250]=783, + [251]=784, [252]=785, [253]=786, [254]=787, + [255]=788, [256]=789, [257]=639, [258]=640, + [259]=699, [260]=697, [261]=700, [262]=641, + [263]=719, [264]=790, [265]=791, [266]=792, + [267]=793, [268]=794, [269]=795, [270]=796, + [271]=797, [272]=798, [273]=799, [274]=800, + [275]=801, [276]=802, [277]=803, [278]=804, + [279]=805, [280]=806, [281]=807, [282]=808, + [283]=809, [284]=810, [285]=811, [286]=812, + [287]=813, [288]=814, [289]=815, [290]=678, + [291]=711, [292]=679, [293]=648, [294]=650, + [295]=670, [296]=816, [297]=817, [298]=818, + [299]=819, [300]=820, [301]=821, [302]=822, + [303]=823, [304]=824, [305]=825, [306]=826, + [307]=827, [308]=828, [309]=829, [310]=830, + [311]=831, [312]=832, [313]=833, [314]=834, + [315]=835, [316]=836, [317]=837, [318]=838, + [319]=839, [320]=840, [321]=841, [322]=680, + [323]=8005, [324]=681, [325]=649, [327]=635, + [328]=686, [329]=687, [330]=634, [331]=638, + [332]=1006, [333]=925, [334]=927, [335]=929, + [336]=931, [337]=933, [338]=991, [339]=993, + [340]=995, [341]=959, [342]=660, [343]=926, + [344]=928, [345]=930, [346]=932, [347]=934, + [348]=935, [349]=937, [350]=939, [351]=941, + [352]=943, [353]=945, [354]=947, [355]=949, + [356]=951, [357]=953, [358]=955, [359]=957, + [360]=960, [361]=962, [362]=964, [363]=966, + [364]=967, [365]=968, [366]=969, [367]=970, + [368]=971, [369]=974, [370]=977, [371]=980, + [372]=983, [373]=986, [374]=987, [375]=988, + [376]=989, [377]=990, [378]=992, [379]=994, + [380]=996, [381]=997, [382]=998, [383]=999, + [384]=1000, [385]=1001, [386]=1003, [387]=1007, + [388]=643, [389]=644, [390]=646, [391]=1004, + [392]=1005, [393]=1002, [394]=1009, [395]=1010, + [396]=1008, [397]=936, [398]=938, [399]=940, + [400]=942, [401]=944, [402]=946, [403]=948, + [404]=950, [405]=952, [406]=954, [407]=956, + [408]=958, [409]=961, [410]=963, [411]=965, + [412]=972, [413]=973, [414]=975, [415]=976, + [416]=978, [417]=979, [418]=981, [419]=982, + [420]=984, [421]=985, [423]=7608, [424]=7609, + [425]=7479, [426]=7480, [427]=7481, [428]=7482, + [429]=7483, [430]=7484, [431]=7485, [432]=7486, + [433]=7487, [434]=7488, [435]=7489, [436]=7490, + [437]=7491, [438]=7492, [439]=7493, [440]=7494, + [441]=7495, [442]=7496, [443]=7497, [444]=7498, + [445]=7499, [446]=7500, [447]=7501, [448]=7502, + [449]=7503, [450]=7504, [451]=7505, [452]=7506, + [453]=7507, [454]=7508, [455]=7509, [456]=7510, + [457]=7511, [458]=7512, [459]=7513, [460]=7514, + [461]=7515, [462]=7516, [463]=7517, [464]=7518, + [465]=7519, [466]=7520, [467]=7521, [468]=7522, + [469]=7523, [470]=7524, [471]=7525, [472]=7526, + [473]=7527, [474]=7528, [475]=7529, [476]=7530, + [477]=7531, [478]=7532, [479]=7533, [480]=7534, + [481]=7535, [482]=7536, [483]=7537, [484]=7538, + [485]=7539, [486]=7540, [487]=7541, [488]=7542, + [489]=7543, [490]=7544, [491]=7545, [492]=7546, + [493]=7547, [494]=7548, [495]=7549, [496]=7550, + [497]=7551, [498]=7552, [499]=7553, [500]=7554, + [501]=645, [502]=647, [503]=672, [504]=676, + [505]=677, [506]=682, [507]=683, [508]=684, + [509]=685, [510]=688, [511]=689, [512]=690, + [513]=691, [514]=693, [516]=923, [517]=842, + [518]=844, [519]=846, [520]=848, [521]=850, + [522]=908, [523]=910, [524]=912, [525]=876, + [526]=843, [527]=845, [528]=847, [529]=849, + [530]=851, [531]=852, [532]=854, [533]=856, + [534]=858, [535]=860, [536]=862, [537]=864, + [538]=866, [539]=868, [540]=870, [541]=872, + [542]=874, [543]=877, [544]=879, [545]=881, + [546]=883, [547]=884, [548]=885, [549]=886, + [550]=887, [551]=888, [552]=891, [553]=894, + [554]=897, [555]=900, [556]=903, [557]=904, + [558]=905, [559]=906, [560]=907, [561]=909, + [562]=911, [563]=913, [564]=914, [565]=915, + [566]=916, [567]=917, [568]=918, [569]=920, + [570]=924, [571]=921, [572]=922, [573]=919, + [574]=853, [575]=855, [576]=857, [577]=859, + [578]=861, [579]=863, [580]=865, [581]=867, + [582]=869, [583]=871, [584]=873, [585]=875, + [586]=878, [587]=880, [588]=882, [589]=889, + [590]=890, [591]=892, [592]=893, [593]=895, + [594]=896, [595]=898, [596]=899, [597]=901, + [598]=902, [608]=713, [609]=714, [614]=9826, + [629]=731, [631]=665, [632]=8228, [8718]=8008, + [8719]=664, [9354]=9779, [9355]=1034, [9356]=708, + [9357]=709, [9371]=9796, [9372]=9797, [9373]=9798, + [9374]=9799, [9375]=9781, [9376]=9782, [9442]=769, + [12063]=661, [12064]=697, [12065]=710, [12066]=706, + [12067]=705, [12068]=740, [12069]=735, [12070]=12123, + [12071]=12124, [12072]=12125, [12073]=12126, [12074]=12127, + [12075]=12128, [12076]=12129, [12077]=12130, [12078]=12131, + [12079]=12132, [12080]=12169, [12081]=12170, [12086]=8006, + [12087]=8007, [15449]=651, [15450]=652, [15451]=653, + [15452]=654, [15453]=655, [15454]=658, [15455]=660, + [15456]=698, [15457]=701, [15458]=702, [15459]=703, + [15460]=704, [15461]=710, [15462]=16195, [15463]=12181, + [15464]=741, [15465]=742, [15466]=743, [15467]=744, + [15468]=745, [15469]=746, [15470]=747, [15471]=748, + [15472]=16306, [15473]=16307, [15474]=16308, [15475]=16309, + [15476]=16299, [15477]=12184, [15480]=749, [15481]=750, + [15482]=752, [15483]=753, [15484]=754, [15485]=755, + [15486]=12188, [15487]=12186, [15488]=12189, [15489]=16196, + [15490]=16300, [15491]=756, [15492]=757, [15493]=759, + [15494]=760, [15495]=761, [15496]=762, [15497]=763, + [15498]=764, [15499]=765, [15500]=766, [15501]=767, + [15502]=768, [15503]=769, [15504]=770, [15505]=16303, + [15506]=12120, [15507]=16301, [15508]=16302, [15509]=16304, + [15510]=16305, [15511]=12201, [15512]=12118, [15513]=12089, + [15514]=12092, [15515]=16204, [15516]=16205, [15517]=842, + [15518]=843, [15519]=844, [15520]=845, [15521]=846, + [15522]=847, [15523]=848, [15524]=849, [15525]=850, + [15526]=851, [15527]=852, [15528]=853, [15529]=854, + [15530]=855, [15531]=856, [15532]=857, [15533]=858, + [15534]=859, [15535]=860, [15536]=861, [15537]=862, + [15538]=863, [15539]=864, [15540]=865, [15541]=866, + [15542]=867, [15543]=868, [15544]=869, [15545]=870, + [15546]=871, [15547]=872, [15548]=873, [15549]=874, + [15550]=875, [15551]=876, [15552]=877, [15553]=878, + [15554]=879, [15555]=880, [15556]=881, [15557]=882, + [15558]=883, [15559]=884, [15560]=885, [15561]=886, + [15562]=887, [15563]=888, [15564]=889, [15565]=890, + [15566]=891, [15567]=892, [15568]=893, [15569]=894, + [15570]=895, [15571]=896, [15572]=897, [15573]=898, + [15574]=899, [15575]=900, [15576]=901, [15577]=902, + [15578]=903, [15579]=904, [15580]=905, [15581]=906, + [15582]=907, [15583]=908, [15584]=909, [15585]=910, + [15586]=911, [15587]=912, [15588]=913, [15589]=914, + [15590]=915, [15591]=916, [15592]=917, [15593]=918, + [15594]=919, [15595]=920, [15596]=921, [15597]=922, + [15598]=923, [15599]=924, [15600]=7958, [15601]=7959, + [15602]=7960, [15603]=16209, [15604]=16210, [15605]=16211, + [15606]=16212, [15607]=16213, [15608]=925, [15609]=926, + [15610]=927, [15611]=928, [15612]=929, [15613]=930, + [15614]=931, [15615]=932, [15616]=933, [15617]=934, + [15618]=935, [15619]=936, [15620]=937, [15621]=938, + [15622]=939, [15623]=940, [15624]=941, [15625]=942, + [15626]=943, [15627]=944, [15628]=945, [15629]=946, + [15630]=947, [15631]=948, [15632]=949, [15633]=950, + [15634]=951, [15635]=952, [15636]=953, [15637]=954, + [15638]=955, [15639]=956, [15640]=957, [15641]=958, + [15642]=959, [15643]=960, [15644]=961, [15645]=962, + [15646]=963, [15647]=964, [15648]=965, [15649]=966, + [15650]=967, [15651]=968, [15652]=969, [15653]=970, + [15654]=971, [15655]=972, [15656]=973, [15657]=974, + [15658]=975, [15659]=976, [15660]=977, [15661]=978, + [15662]=979, [15663]=980, [15664]=981, [15665]=982, + [15666]=983, [15667]=984, [15668]=985, [15669]=986, + [15670]=987, [15671]=988, [15672]=989, [15673]=990, + [15674]=991, [15675]=992, [15676]=993, [15677]=994, + [15678]=995, [15679]=996, [15680]=997, [15681]=998, + [15682]=999, [15683]=1000, [15684]=1001, [15685]=1002, + [15686]=1003, [15687]=1004, [15688]=1005, [15689]=1006, + [15690]=1007, [15691]=1008, [15692]=1009, [15693]=1010, + [15694]=16214, [15695]=16215, [15696]=16216, [15697]=16217, + [15698]=16218, [15699]=16219, [15700]=16220, [15701]=16221, + [15702]=16236, [15703]=16237, [15704]=16238, [15705]=16239, + [15706]=16240, [15707]=16241, [15708]=16242, [15709]=16243, + [15710]=16244, [15711]=16245, [15712]=16246, [15713]=16247, + [15714]=16248, [15715]=16249, [15716]=16250, [15717]=16251, + [15718]=16252, [15719]=8313, [15720]=8314, [15721]=8315, + [15722]=8316, [15723]=12269, [15724]=12271, [15725]=16310, + [15726]=16311, [15727]=9784, [15728]=16271, [15880]=7624, + [15881]=7629, [15882]=7630, [15900]=12091, [15901]=7625, + [15902]=8195, [15903]=12121, [15904]=12122, [15905]=12187, + [15906]=12190, [15907]=12185, +} + +-- JIS->Unicode, Unicode->CID のテーブルから JIS->CID のテーブルを作る +local function mk_jis_cid_table(jis_uni, uni_cid) + local res = {} + for jis, uni in pairs(jis_uni) do + local c = uni_cid[uni] + if c then + if ((jis>=0x2900) and (jis<=0x2B7E)) then + res[#res+1] = { jis, nonuni_cid[jis] or c} + else + -- それ以外の場合は全角化する + res[#res+1] = { jis, nonuni_cid[jis] or (prop_to_full[c] or c)} + end + end + end + table.sort(res, function (a,b) return a[1]<b[1] end) + return res +end + +-- +local function change_repr(t) + local res = {} + for i,v in pairs(t) do + res[#res+1] = {i,v} + end + table.sort(res, function (a,b) return a[1]<b[1] end) + return res +end + + +-- 出力処理 +do + local buf, bufline, fh + + local function flush() + fh:write(tonumber(bufline) .. " begincidrange\n" .. buf .. "endcidrange\n") + buf, bufline = "", 0 + end + + local function out(s) + buf = buf .. s .. "\n"; bufline = bufline + 1; + if bufline==100 then flush() end + end + + local function out_header(fname, hname, crange, wmode) + fh:write([[ +%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +]]) + if wmode == 1 then + local s = string.gsub('%%DocumentNeededResources: CMap ($NAME)\n', '$NAME', hname) + fh:write(s) + end + + fh:write([[ +%%IncludeResource: ProcSet (CIDInit) +]]) + if wmode == 1 then + local s = string.gsub('%%IncludeResource: CMap ($NAME)\n', '$NAME', hname) + fh:write(s) + end + + local s = string.gsub([[ +%%BeginResource: CMap ($NAME) +%%Title: ($NAME Adobe Japan1 6) +%%Version: 0.001 +%%Copyright: ------------------------------------------------------------ +%%Copyright: Copyright (c) 2013 Hironori KITAGAWA. +%%Copyright: +%%Copyright: This software is free software. +%%Copyright: Unlimited permission is granted to use, copy, and distribute +%%Copyright: it, with or without modification, either commercially and +%%Copyright: noncommercially. +%%Copyright: THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY. +%%Copyright: ------------------------------------------------------------ +%%EndComments + +/CIDInit /ProcSet findresource begin + +12 dict begin + +begincmap +]], '$NAME', fname) + fh:write(s) + if wmode == 1 then + s=string.gsub( + string.gsub('\n/$NAME usecmap\n\n', '$NAME', fname), + '-V', '-H') + fh:write(s) + end + s = string.gsub([[ +/CIDSystemInfo 3 dict dup begin + /Registry (Adobe) def + /Ordering (Japan1) def + /Supplement 6 def +end def + +/CMapName /$NAME def +/CMapVersion 0.001 def +/CMapType 1 def +]], '$NAME', fname) + fh:write(s) + + fh:write('\n/WMode ' .. wmode .. ' def\n\n') + if wmode ==0 then + fh:write(crange .. '\n') + end + end + + local function out_footer() + fh:write([[ +endcmap +CMapName currentdict /CMap defineresource pop +end +end + +%%EndResource +%%EOF +]]) + end + + function out_cmap(fname, hname, jis_cid, col_num, crange, wmode) + fh = io.open(fname, 'w+') + out_header(fname, hname, crange, wmode) + buf, bufline = "", 0 + local fstr = "<%x> <%x> %" .. col_num .. "d" + local i, outbi, outbc = 1, jis_cid[1][1], jis_cid[1][2] + while i < #jis_cid do + if jis_cid[i+1][2] == jis_cid[i][2] + 1 + and jis_cid[i+1][1] == jis_cid[i][1] + 1 then + oute = jis_cid[i+1][1] + else + out(string.format(fstr, outbi, oute, outbc)) + outbi, oute, outbc = jis_cid[i+1][1], jis_cid[i+1][1], jis_cid[i+1][2] + end + i = i + 1 + end + out(string.format(fstr, outbi, jis_cid[#jis_cid][1], outbc)) + flush(); + out_footer(); + fh:close() + end +end + +-- +local function cleanup(new, old) + table.sort(new, function (a,b) return a[1]<b[1] end) + -- We can assume new and old are sorted. + local oi, ol = 1, #old + local res = {} + for _,v in ipairs(new) do + for i = oi, ol do + local w = old[i] + if v[1] == w[1] and v[2] ~= w[2] then + res [#res+1] = v; + oi = i + 1; break + elseif v[1]<w[1] then + -- We don't need further search. + oi = i; break + end + end + end + return res +end + +local function write_text(fname, tb) + print('writing ' .. fname ) + fh = io.open(fname, 'w+') + for _,v in pairs(tb) do + fh:write(string.format('%4X\t%d\n', v[1], v[2])) + end + fh:close() +end + +local function replace(ar, jis, cid) + local i = 1 + for j=1,#ar do + if ar[j][1] == jis then ar[j][2] = cid; break end + end +end + +---------------------------------------------------------------- +---------------------------------------------------------------- +---------------------------------------------------------------- +---------------------------------------------------------------- + + +local f +local cmap_dec = require('cmapdec') + +kpse.set_program_name('luatex') +dofile(kpse.find_file('lualibs-table.lua')) + +do +---------------------------------------------------------------- +-- jisx0213-2004-8bit-std.txt 読み込み +local jis04_uni = {} +f = io.open("jisx0213-2004-8bit-std.txt", "r") +for lx in f:lines() do + l = string.match(lx,"^([^#]*)#.*$") + if l ~= "" then + local jis = tonumber(string.match(l, "^(0x%x*)%s*U%+%x*")) + local uni = string.match(l, "^0x%x*%s*U%+(%x*)") + -- 全角幅優先 + uni = string.match(lx, 'Fullwidth: U%+(%x*)') or uni + if jis and uni then + uni = tonumber(uni,16) + jis04_uni[jis] = uni + end + end +end +f:close() + +local code_range_04 = [[ +2 begincodespacerange + <2121> <7E7E> + <A1A1> <FEFE> +endcodespacerange +]] + +---------------------------------------------------------------- +-- JIS X 0213:2004 => Adobe-Japan1-6 横組 +local uni_cid_h04 = cmap_dec.open_cmap_file('UniJIS2004-UTF32-H') +local jis_cid_h04 = mk_jis_cid_table(jis04_uni, uni_cid_h04) + +replace(jis_cid_h04, 0x224C, 751) -- NOT SIGN + +-- 全角字形があるものは全角化しておく +replace(jis_cid_h04, 0x2921, 9779) -- EURO SIGN +replace(jis_cid_h04, 0x2924, 16280) -- CURRENCY SIGN +replace(jis_cid_h04, 0x2925, 8005) -- BROKEN BAR +replace(jis_cid_h04, 0x2926, 8059) -- COPYRIGHT SIGN +replace(jis_cid_h04, 0x292A, 8060) -- REGISTERED SIGN +replace(jis_cid_h04, 0x2933, 8185) -- VULGAR FRACTION ONE QUARTER +replace(jis_cid_h04, 0x2934, 8184) -- VULGAR FRACTION ONE HALF +replace(jis_cid_h04, 0x2935, 9783) -- VULGAR FRACTION THREE QUARTERS + +out_cmap('2004-H', '', jis_cid_h04, '', code_range_04, 0) + + +---------------------------------------------------------------- +-- JIS X 0213:2004 => Adobe-Japan1-6 縦組 +local uni_cid_v04 = table.fastcopy(uni_cid_h04) +uni_cid_v04 =cmap_dec.open_cmap_file('UniJIS2004-UTF32-V', uni_cid_v04) +local jis_cid_v04 = mk_jis_cid_table(jis04_uni, uni_cid_v04) + +replace(jis_cid_v04, 0x2127, 12101) -- COLON +replace(jis_cid_v04, 0x2131, 7889) -- OVERLINE +replace(jis_cid_v04, 0x213D, 7892) -- EM DASH +replace(jis_cid_v04, 0x2146, 12173) -- +replace(jis_cid_v04, 0x2147, 12174) -- +replace(jis_cid_v04, 0x2148, 7956) -- +replace(jis_cid_v04, 0x2149, 7957) -- +replace(jis_cid_v04, 0x224C, 751) -- NOT SIGN + +replace(jis_cid_v04, 0x2236, 12107) -- HIRAGANA VOICED ITERATION MARK +replace(jis_cid_v04, 0x237C, 16332) -- EN DASH +replace(jis_cid_v04, 0x2678, 16343) -- KATAKANA LETTER SMALL PU +replace(jis_cid_v04, 0x2D5F, 12044) -- SQUARE ERA NAME HEISEI +replace(jis_cid_v04, 0x2D6D, 12041) -- SQUARE ERA NAME MEIZI +replace(jis_cid_v04, 0x2D6E, 12042) -- SQUARE ERA NAME TAISYOU +replace(jis_cid_v04, 0x2D6F, 12043) -- SQUARE ERA NAME SYOUWA + +replace(jis_cid_v04, 0x2921, 9779) -- EURO SIGN +replace(jis_cid_v04, 0x2924, 16280) -- CURRENCY SIGN +replace(jis_cid_v04, 0x2925, 8005) -- BROKEN BAR +replace(jis_cid_v04, 0x2926, 8059) -- COPYRIGHT SIGN +replace(jis_cid_v04, 0x292A, 8060) -- REGISTERED SIGN +replace(jis_cid_v04, 0x2933, 8185) -- VULGAR FRACTION ONE QUARTER +replace(jis_cid_v04, 0x2934, 8184) -- VULGAR FRACTION ONE HALF +replace(jis_cid_v04, 0x2935, 9783) -- VULGAR FRACTION THREE QUARTERS + + +out_cmap('2004-V', '2004-H', cleanup(jis_cid_v04, jis_cid_h04), '', code_range_04, 1) + +end + +-- do +-- ---------------------------------------------------------------- +-- -- JIS0208.txt 読み込み +-- local jis90_uni = {} +-- f = io.open("JIS0208.TXT", "r") +-- for lx in f:lines() do +-- l = string.match(lx,"^([^#]*)#.*$") +-- if l ~= "" then +-- local jis = tonumber(string.match(l, "^0x%x*%s*(0x%x*)%s*0x%x*")) +-- local uni = string.match(l, "^0x%x*%s*0x%x*%s*0x(%x*)") +-- -- 全角幅優先 +-- if jis and uni then +-- uni = tonumber(uni,16) +-- jis90_uni[jis] = uni +-- end +-- end +-- end +-- f:close() + +-- local code_range_90 = [[ +-- 1 begincodespacerange +-- <2121> <7E7E> +-- endcodespacerange +-- ]] + +-- ---------------------------------------------------------------- +-- -- JIS X 0208:1990 => Adobe-Japan1-6 縦組 + +-- -- とりあえず 横組を load +-- local uni_cid_h90 = cmap_dec.open_cmap_file('UniJIS-UTF32-H') +-- local jis_cid_h90 = mk_jis_cid_table(jis90_uni, uni_cid_h90) + +-- replace(jis_cid_h90, 0x224C, 751) -- NOT SIGN + +-- local uni_cid_v90 = table.fastcopy(uni_cid_h90) +-- uni_cid_v90 =cmap_dec.open_cmap_file('UniJIS-UTF32-V', uni_cid_v90) +-- local jis_cid_v90 = mk_jis_cid_table(jis90_uni, uni_cid_v90) + +-- replace(jis_cid_v90, 0x2127, 12101) -- COLON +-- replace(jis_cid_v90, 0x2131, 7889) -- OVERLINE +-- replace(jis_cid_v90, 0x213D, 7892) -- EM DASH +-- replace(jis_cid_v90, 0x2146, 12173) -- +-- replace(jis_cid_v90, 0x2147, 12174) -- +-- replace(jis_cid_v90, 0x2148, 7956) -- +-- replace(jis_cid_v90, 0x2149, 7957) -- +-- replace(jis_cid_v90, 0x224C, 751) -- NOT SIGN + +-- out_cmap('1990N-V', 'H', cleanup(jis_cid_v90, jis_cid_h90), '', code_range_90, 1) + +-- end |