初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(16)]
三国志人名漢字の見直し
フォント以外のダウンロード、のところにスクリプトを置きました。これ使って、あらためて三国志の人名漢字を探し直します。
だいたい抜き出すまで
Category:三国志の登場人物 - Wikipedia
三国志演義の人物の一覧 - Wikipedia
まず、wikipediaの上記のページから、文字を抜き出します。
正確に絞り込む必要は無いわけです。多少、平仮名や英数字が混じっても、あとで消せます。
見出しなども含めて選択し、Ctrl+Cでコピー。テキストファイルに貼り付け。
「三国志の登場人物」のほうは、ページの切り替えを忘れないように注意して。
テキストファイルを分割せず、一つのテキストにすべてまとめて貼り付けてしまいます。順番もぐちゃぐちゃで構いません。
UTF8,LF形式でセーブしてから、シェルスクリプトを動かしてる環境に持っていきます。
異体字とかが無いなら、「grep -o . | sort | uniq」でいけそうではありますが、今回は自作のスクリプト使ってやります。
テキストファイルを「Text/」に入れるか、「result.txt」に貼り付けて、スクリプトを起動。
- 2 w Text/ -> code_
- 5 w Code/ -> .txt
と実行します。いったん文字コードの一覧リストに変換して、それから文字に戻すと、すべての文字を1文字ずつ抜き出せます。この状態で、
(),01245:Taelmpt、。「」あいうえおかがきくけこさしすせそたちてとなにのはひふへほまめもゆよらりるれろをイウカキクコゴジスチテペホモュヨリワン・ー一丁万三上下不丕世丘丞中丹主乂之乗九乱乾二于交亥亨享京亮人仁仇仙代令以仲任伉伊伍伏休会伝伯伷佐何佗侯俄俊信修俶倅倉倫倹偃偉傅傑傕備僉儀儁儒優儼兀允元充先光児党全兪公典冀内冏冑冷凌処凱出刁列別利到則前剛劉力劭勃勇勗勝勤勲勳化匡区卑卓協南単卜卞即原厥厳去参友双叔叙叡句史司吉同后向君含吾呂呉周呼和咨咸哀員唐商啓喃善喜喬嗣嘉嘏嘿図固国圃土圭均坦垕基堂堅堪場塞壁士声壱壹壽夏夔外大太夫奇奉奎奐奕奚奢奮女妃妹妻妾姓姚姜姫威娘娥婁媯嫂嬰子孔存孚孟孫宇守安宋完宏宓宗官定宜宝宣宮容寄密寓寔寧審寬寵寿封射将尉尋導小少尚就尹居屈屏山岐岑岱峻崇崔嵆嵩嶷川州左巨巴巽巾布帝師帯帰常干平幹広度庶康廉廖廙廚延建弁弋式弘張弼彊当彝彤彦彧彪彬彭彰徇後徐循微徳徴徹徽必志忙応忠思性恂恕恢恩恪恭恵悌悦悼惇惲意愚愷慈慎慕慮慶憲懌懐懿戈戎成戯戴才払扶承抗押招拠拯挙授揚援摩撰操據攀攄攴攸放政敏敞敦敬数整敷文斉斌斐料方於施旋旌族既日旨旻昂昇昌明昏昕星春昭是昱昶昺時晃晊晋晏晙晞普景暁暠暹曁曄曠曹曼曽月服朔朗望朝木末本朱朶李杜来東松林果柏柔柯柳栄根桂桓梁梅棗棘植楊楙楚楨業楷楼楽樊権横橋機檀次欣欽款歆正武歧歩歴段殷毅毌母毒毓比毖毗毛氏民永汜江汪沈沖沙沛沢沮河治泄泉泌法波泥泰洞洪洽浄浩浪浮海涼淑淩淮淯淳淵清済渉渙渠温游渾満準滕演漢潁潘潜濤濬濮炎炳烈烏焉無焦然焼煕煥煨熈熊熙燕燮燿爨爰爽版牙牛牧物特牽狐猛献獄獲玄玉王玠玩玹珝珩珪班球理琦琨琪琬琮琰琳瑁瑋瑒瑛瑜瑞瑤瑩瑾璆璋璜璝璠璣璩環璿瓊瓘瓚甄甘生甫甯田由申甸留畢略畯異當畿疆疇疑登白皇皎皓盛盧目直真眭督睿瞻矩矯石碩碭磐磾示礼祀祕祖祗祚祜祝祥祺禁禄禅禎福禕禧禰禹秀秉秋种秦称程稠穆突竇立章童竦端竺笮策管節範簒簡籍粋粛粲糜紀約紆純紘紞素索紫累紳紹経結統続綜綝維綱綸綽緄緒緝練縉績繆繇繡纂羅羊羌羕羣群羨義羲羽翊習翔翕翟翥翩翻翼耀老考耽耿聘聳聶肇育胡胤能脂脩膺臧臨臻興舉舎舒舞良艶艾芒芝芮花芳苗苞苟英茂范茲荀荊荼莒華萇萊萌著葛董蒙蒯蓋蔡蔣蕃蕤蕭薄薛藐蘇蘭虎虔虚虞蛾蜀蝉融行衍術衛衜衡衢表袁袞袤裔裕裴褒褚襲西覇覈覧覬観角解触訓許評詡詢詩詮詳誕語諒諝諶諷諸謀謐謖謙謝譔譙譚譲讃谷豊象豢豨豫豹貂貞貢貴買費賀賁資賈賛賞賢質赤起超越趙路蹇蹋車軌軫軻軽輅載輔輯輿辛辟辺迷通造逢連進逵遂遇道達遜遠遮遵選遺遼邈邑邕邠邢那邯邴邵郃郗郝郤郭都鄂鄒鄧鄭鄰鄲酈配醜里重金鈞鉄銀銅鋒鍾鑑鑠長閔関閻闓闞闡阜阮阯防阿陟陰陳陵陶陸陽隆階随隗隠雄雅雍雕雝離雲雷震霊霍霖靖静靚靳鞏韋韓韙韜音韶項順頌頎預頓頼顒顔顕顗顧颺飛馗香馥馬馮駱駿騎騫騭騰驤骨高髦鬱魏魚魯魴鮑鮮鳳鴦鵠鵬鹿麴麹黄默黙齢龍龐龔()𩇕
wikipediaのページを丸ごとコピーしたので、三国志以外の文字も混じってます。ここから、明らかに関係のない文字を削ります。
このままテキストエディタで削っても構いませんが、せっかくなのでコードに変換します。
- 2 w Text/ -> code_
- 9 w Code/ -> 拡張Code
----省略---- 12517 0 30e5 0 ュ 12520 0 30e8 0 ヨ 12522 0 30ea 0 リ 12527 0 30ef 0 ワ 12531 0 30f3 0 ン 12539 0 30fb 0 ・ 12540 0 30fc 0 ー 19968 0 4e00 0 一 19969 0 4e01 0 丁 19975 0 4e07 0 万 19977 0 4e09 0 三 ----省略----
1文字を1行にして、読める文字を追加しました。漢字とカタカナの境目のあたりを抜粋。
テキストエディタで直接に編集して、明らかに関係ない文字を削除します。行単位削除で。
Unicodeのコード番号を指定して抜き出すスクリプトも書けますが、これは手作業のほうが楽です。
削除すると1078行になりました。
次に、このコードを文字に戻します。直接に「cut -f 5」してもいいですが、
- 5 w Code/ -> .txt
と実行し、このスクリプトの機能で文字に戻します。これは文字を残してるのではなく、数字から文字を作り直してます。
一丁万三上下不丕世丘丞中丹主乂之乗九乱乾二于交亥亨享京亮人仁仇仙代令以仲任伉伊伍伏休会伝伯伷佐何佗侯俄俊信修俶倅倉倫倹偃偉傅傑傕備僉儀儁儒優儼兀允元充先光児党全兪公典冀内冏冑冷凌処凱出刁列別利到則前剛劉力劭勃勇勗勝勤勲勳化匡区卑卓協南単卜卞即原厥厳去参友双叔叙叡句史司吉同后向君含吾呂呉周呼和咨咸哀員唐商啓喃善喜喬嗣嘉嘏嘿図固国圃土圭均坦垕基堂堅堪場塞壁士声壱壹壽夏夔外大太夫奇奉奎奐奕奚奢奮女妃妹妻妾姓姚姜姫威娘娥婁媯嫂嬰子孔存孚孟孫宇守安宋完宏宓宗官定宜宝宣宮容寄密寓寔寧審寬寵寿封射将尉尋導小少尚就尹居屈屏山岐岑岱峻崇崔嵆嵩嶷川州左巨巴巽巾布帝師帯帰常干平幹広度庶康廉廖廙廚延建弁弋式弘張弼彊当彝彤彦彧彪彬彭彰徇後徐循微徳徴徹徽必志忙応忠思性恂恕恢恩恪恭恵悌悦悼惇惲意愚愷慈慎慕慮慶憲懌懐懿戈戎成戯戴才払扶承抗押招拠拯挙授揚援摩撰操據攀攄攴攸放政敏敞敦敬数整敷文斉斌斐料方於施旋旌族既日旨旻昂昇昌明昏昕星春昭是昱昶昺時晃晊晋晏晙晞普景暁暠暹曁曄曠曹曼曽月服朔朗望朝木末本朱朶李杜来東松林果柏柔柯柳栄根桂桓梁梅棗棘植楊楙楚楨業楷楼楽樊権横橋機檀次欣欽款歆正武歧歩歴段殷毅毌母毒毓比毖毗毛氏民永汜江汪沈沖沙沛沢沮河治泄泉泌法波泥泰洞洪洽浄浩浪浮海涼淑淩淮淯淳淵清済渉渙渠温游渾満準滕演漢潁潘潜濤濬濮炎炳烈烏焉無焦然焼煕煥煨熈熊熙燕燮燿爨爰爽版牙牛牧物特牽狐猛献獄獲玄玉王玠玩玹珝珩珪班球理琦琨琪琬琮琰琳瑁瑋瑒瑛瑜瑞瑤瑩瑾璆璋璜璝璠璣璩環璿瓊瓘瓚甄甘生甫甯田由申甸留畢略畯異當畿疆疇疑登白皇皎皓盛盧目直真眭督睿瞻矩矯石碩碭磐磾示礼祀祕祖祗祚祜祝祥祺禁禄禅禎福禕禧禰禹秀秉秋种秦称程稠穆突竇立章童竦端竺笮策管節範簒簡籍粋粛粲糜紀約紆純紘紞素索紫累紳紹経結統続綜綝維綱綸綽緄緒緝練縉績繆繇繡纂羅羊羌羕羣群羨義羲羽翊習翔翕翟翥翩翻翼耀老考耽耿聘聳聶肇育胡胤能脂脩膺臧臨臻興舉舎舒舞良艶艾芒芝芮花芳苗苞苟英茂范茲荀荊荼莒華萇萊萌著葛董蒙蒯蓋蔡蔣蕃蕤蕭薄薛藐蘇蘭虎虔虚虞蛾蜀蝉融行衍術衛衜衡衢表袁袞袤裔裕裴褒褚襲西覇覈覧覬観角解触訓許評詡詢詩詮詳誕語諒諝諶諷諸謀謐謖謙謝譔譙譚譲讃谷豊象豢豨豫豹貂貞貢貴買費賀賁資賈賛賞賢質赤起超越趙路蹇蹋車軌軫軻軽輅載輔輯輿辛辟辺迷通造逢連進逵遂遇道達遜遠遮遵選遺遼邈邑邕邠邢那邯邴邵郃郗郝郤郭都鄂鄒鄧鄭鄰鄲酈配醜里重金鈞鉄銀銅鋒鍾鑑鑠長閔関閻闓闞闡阜阮阯防阿陟陰陳陵陶陸陽隆階随隗隠雄雅雍雕雝離雲雷震霊霍霖靖静靚靳鞏韋韓韙韜音韶項順頌頎預頓頼顒顔顕顗顧颺飛馗香馥馬馮駱駿騎騫騭騰驤骨高髦鬱魏魚魯魴鮑鮮鳳鴦鵠鵬鹿麴麹黄默黙齢龍龐龔𩇕
ここまでで、1078文字、IVSの異体字は無し。
上記には当然、三国志の人名漢字だけでなく、wikipediaの諸々が残ってます。
フォント作りのための文字リスト、という視点では、意味があるのは、たとえば「常用漢字以外の漢字はどれか?」とか、「シフトJISに無い漢字はどれか?」、などです。
1078文字はいったん保存して、この段階で「Text/」に置きます。その後にセットアップ。
- 16 Text/ -> setup -> Code/
- 17 Text/ -> setup -> Bit/
セットアップを再実行して、ファイルを再作成します。
難しい漢字を抜き出してみる
たとえば、1078文字と、「cp932すべての文字」とを比較すると、JISの第一水準と第二水準に入らない、Unicodeの漢字が抜き出せます。こうすることで、三国志と関係のない漢字も、ほぼ除外できるはず。
20279 0 4f37 0 伷 20629 0 5095 0 傕 20993 0 5201 0 刁 22031 0 560f 0 嘏 22079 0 563f 0 嘿 22421 0 5795 0 垕 22804 0 5914 0 夔 23215 0 5aaf 0 媯 23443 0 5b93 0 宓 23878 0 5d46 0 嵆 24281 0 5ed9 0 廙 24420 0 5f64 0 彤 25860 0 6504 0 攄 26170 0 663a 0 昺 26186 0 664a 0 晊 27462 0 6b46 0 歆 27495 0 6b67 0 歧 27596 0 6bcc 0 毌 27607 0 6bd7 0 毗 28137 0 6de9 0 淩 28143 0 6def 0 淯 29032 0 7168 0 煨 29600 0 73a0 0 玠 29625 0 73b9 0 玹 29661 0 73dd 0 珝 29673 0 73e9 0 珩 29736 0 7428 0 琨 29740 0 742c 0 琬 29744 0 7430 0 琰 29771 0 744b 0 瑋 29778 0 7452 0 瑒 29830 0 7486 0 璆 29852 0 749c 0 璜 29853 0 749d 0 璝 29856 0 74a0 0 璠 29859 0 74a3 0 璣 29865 0 74a9 0 璩 29887 0 74bf 0 璿 29912 0 74d8 0 瓘 29914 0 74da 0 瓚 30509 0 772d 0 眭 30893 0 78ad 0 碭 30974 0 78fe 0 磾 31068 0 795c 0 祜 31125 0 7995 0 禕 31181 0 79cd 0 种 31534 0 7b2e 0 笮 32030 0 7d1e 0 紞 32157 0 7d9d 0 綝 32196 0 7dc4 0 緄 32327 0 7e47 0 繇 32353 0 7e61 0 繡 32661 0 7f95 0 羕 32735 0 7fdf 0 翟 32741 0 7fe5 0 翥 33454 0 82ae 0 芮 33682 0 8392 0 莒 33802 0 840a 0 萊 33967 0 84af 0 蒯 34083 0 8523 0 蔣 34148 0 8564 0 蕤 34908 0 885c 0 衜 35098 0 891a 0 褚 35425 0 8a61 0 詡 35549 0 8add 0 諝 35668 0 8b54 0 譔 35673 0 8b59 0 譙 35944 0 8c68 0 豨 36427 0 8e4b 0 蹋 37000 0 9088 0 邈 37013 0 9095 0 邕 37024 0 90a0 0 邠 37026 0 90a2 0 邢 37044 0 90b4 0 邴 37059 0 90c3 0 郃 37079 0 90d7 0 郗 37085 0 90dd 0 郝 37192 0 9148 0 酈 38355 0 95d3 0 闓 38366 0 95de 0 闞 38621 0 96dd 0 雝 38746 0 975a 0 靚 38771 0 9773 0 靳 38873 0 97d9 0 韙 38926 0 980e 0 頎 38994 0 9852 0 顒 39098 0 98ba 0 颺 39469 0 9a2d 0 騭 40628 0 9eb4 0 麴 40848 0 9f90 0 龐 40852 0 9f94 0 龔 168405 0 291d5 0 𩇕
Wikipedia以外の資料も
JIS第3・第4水準漢字を用いる三国志人名リスト - yanok.net
テキストファイルを配布してくださってるんで、ありがたく使わせていただきます。
カンマ区切りでcutして、無関係な文字を削ってから「Text/」に置きます。
Wikipediaのと比較して、Wikipediaに無い漢字が以下7文字。
勖勛瑀翦艴蒋郄
Wikipediaだと、難しい漢字がカタカナで代用されてるものがあって、ページはあるのに三国志人名漢字は拾えない、ものもあるみたいです。
ひとつ気付いたのは「鮑勛(ほうくん)」。
三国志の人名漢字は、簡単に調べて分かる範囲では、あわせて1085文字、ということにしておきます。
cp932で分類してみる
『暖簾』に組み込んだ機能で、さらに細かく分けたのが以下です。文字を1文字ずつシフトJISに変換して、odコマンドで数字に変換。数字の範囲で分類し、定義リストを出力します。
フォント作りの視点からだと、「CP932に存在しない」の96文字と、あとは第二水準ですか。このあたりっすかね。大事なのは。
(注)下の定義リストは1085文字から作ってます。上の文字つきコードリストは1078文字からです。「CP932に存在しない」が4文字ズレてるのは、それが原因。
- CP932に存在しない
- (96,0)
- 伷傕刁勖嘏嘿垕夔媯宓嵆廙彤攄昺晊歆歧毌毗淩淯煨玠玹珝珩琨琬琰瑀瑋瑒璆璜璝璠璣璩璿瓘瓚眭碭磾祜禕种笮紞綝緄繇繡羕翟翥艴芮莒萊蒯蔣蕤衜褚詡諝譔譙豨蹋邈邕邠邢邴郃郄郗郝酈闓闞雝靚靳韙頎顒颺騭麴龐龔𩇕
- 第一水準漢字(889f-88fc)
- (20,0)
- 阿哀逢安以伊偉威尉意異維遺亥育一壱允員胤
- 第一水準漢字(8940-89fc)
- (50,0)
- 陰隠宇烏羽雲叡嬰栄永瑛英衛悦越延援演炎燕艶遠於応押横王黄沖恩温音下化何嘉夏果河花華俄牙蛾賀雅会解恢懐
- 第一水準漢字(8a40-8afc)
- (36,0)
- 海階凱外蓋獲角郭楽葛乾堪完官干幹桓款漢環甘管簡観鑑関韓含玩顔喜基奇寄岐既
- 第一水準漢字(8b40-8bfc)
- (62,0)
- 機帰毅畿紀徽貴起軌騎儀宜戯疑義吉丘仇休宮球牛去居巨拠挙渠虚許魚亨享京協匡喬彊恭橋矯興暁業玉勤均巾欣欽禁金銀九句区矩愚虞寓遇屈
- 第一水準漢字(8c40-8cfc)
- (49,0)
- 熊勲君訓群啓圭珪恵慶敬景桂経荊軽傑結月倹堅建憲権牽献謙賢顕元原厳玄呼固狐胡虎顧伍呉吾後語交侯光公向
- 第一水準漢字(8d40-8dfc)
- (41,0)
- 后孔宏広康弘抗昂晃江洪浩皇紘綱考行衡貢項香高剛麹国鵠獄骨昏根佐左沙塞妻才済載朔策索
- 第一水準漢字(8e40-8efc)
- (44,0)
- 三参山纂讃賛司史嗣士子師志思施旨氏紫脂詩資児慈時次治示鹿式竺質芝舎射謝車遮主守朱儒寿授周
- 第一水準漢字(8f40-8ffc)
- (71,0)
- 宗就州修秀秋習襲輯醜充戎柔重叔淑祝粛出術俊峻春駿循淳準純遵順処庶緒諸叙女徐恕勝商妾将小少尚彰承招昇昌昭松渉焼焦祥称章紹蒋詳象賞鍾上丞乗場常浄譲
- 第一水準漢字(9040-90fc)
- (55,0)
- 植触信審慎晋申真秦紳辛進震人仁尋図粋遂随瑞崇嵩数世是姓性成政整星正清生盛声西静斉石籍績赤碩節蝉仙先宣川撰泉潜旋
- 第一水準漢字(9140-91fc)
- (38,0)
- 羨詮選鮮前善然全禅曽楚祖素蘇双倉爽宋操曹綜造則即族続存孫遜太岱帯戴泰代大卓沢
- 第一水準漢字(9240-92fc)
- (32,0)
- 達巽谷丹単坦端耽誕檀段中仲忠著丁寵張徴朝超長直沈陳通貞定帝悌禎程
- 第一水準漢字(9340-93fc)
- (42,0)
- 鄭泥徹鉄典伝田杜登都度土党唐悼東当統到董陶騰同堂導洞童道銅徳特督毒突惇敦頓那内南二日
- 第一水準漢字(9440-94fc)
- (31,0)
- 任禰寧之能巴覇波馬配梅買伯柏白薄肇版班範磐蕃卑妃斐比泌費飛備微
- 第一水準漢字(9540-95fc)
- (47,0)
- 彦弼必畢姫彪表評豹苗彬斌敏不夫布扶敷普浮阜武舞封伏服福淵払物奮文平壁別辺弁圃歩甫輔慕母奉宝放方
- 第一水準漢字(9640-96fc)
- (40,0)
- 法芳萌褒豊鋒鳳鵬忙望謀防卜牧穆勃本翻摩妹末万満密民無娘明迷茂孟毛猛蒙木黙目約靖柳
- 第一水準漢字(9740-97fc)
- (62,0)
- 優勇友由裕邑雄融輿預容揚楊羊耀陽翼羅来頼雷乱蘭覧利李理里離陸立略劉留隆龍慮亮凌料梁涼良諒遼陵力倫林琳臨累令冷礼霊齢歴列烈廉練
- 第一水準漢字(9840-9872)
- (11,0)
- 連呂魯路婁朗楼浪老禄和
- 第二水準漢字(989f-98fc)
- (11,0)
- 丕乂豫舒于伉佗倅俶偃傅
- 第二水準漢字(9940-99fc)
- (19,0)
- 僉儁儼兀兪冀冏冑劭勗勳甸卞厥簒曼燮咸咨
- 第二水準漢字(9a40-9afc)
- (8,0)
- 喃壹壽奕奐奎奚奢
- 第二水準漢字(9b40-9bfc)
- (11,0)
- 姜姚娥嫂孚寔尹屏岑崔嶷
- 第二水準漢字(9c40-9cfc)
- (11,0)
- 廖廚彝弋彭徇恪恂懌懿戈
- 第二水準漢字(9d40-9dfc)
- (14,0)
- 拯據舉攀攴攸敞旌旻昶晏晞曁暹
- 第二水準漢字(9e40-9efc)
- (9,0)
- 曄曠朶柯棘棗楷楙樊
- 第二水準漢字(9f40-9ffc)
- (16,0)
- 鬱殷毓汪沛泄沮衍洽濤淮渙渾游滕潁
- 第二水準漢字(e040-e0fc)
- (18,0)
- 潘濬濮炳焉煥煕熈燿爨爰默瑁瑜瑩瑾璋瓊
- 第二水準漢字(e140-e1fc)
- (9,0)
- 甄當疆疇皎皓盧睿瞻
- 第二水準漢字(e240-e2fc)
- (14,0)
- 祀祗祚祕祺禧禹秉稠竇竦粲糜紆
- 第二水準漢字(e340-e3fc)
- (18,0)
- 綽綸緝縉繆羌羣羲翊翕翔翦翩耿聘聳聶脩
- 第二水準漢字(e440-e4fc)
- (13,0)
- 膺臧臻艾芒苟范苞茲荀荼萇蔡
- 第二水準漢字(e540-e5fc)
- (11,0)
- 蕭薛藐虔蜀衢袁袞袤裔裴
- 第二水準漢字(e640-e6fc)
- (12,0)
- 覈覬詢諷謖謐譚豢貂賈賁趙
- 第二水準漢字(e740-e7fc)
- (14,0)
- 蹇軻軫輅辟逵邯邵郤鄂鄒鄲鄰鈞
- 第二水準漢字(e840-e8fc)
- (17,0)
- 鑠閔閻闡阮阯陟隗雍霍雕霖鞏韋韜韶頌
- 第二水準漢字(e940-e9fc)
- (11,0)
- 馗馥馮駱騫驤髦魏魴鮑鴦
- 第二水準漢字(ea40-eaa4)
- (2,0)
- 瑤熙
- IBM拡張漢字
- (20,0)
- 昱勛甯寬彧惲愷昕晙暠楨毖汜琦琪琮畯諶鄧顗