初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(10)]

sortもuniqも効かない文字はけっこうあるような

$ cat 丸数字やローマ数字.txt 
ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"
①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚
①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚
①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚
$ cat 丸数字やローマ数字.txt |grep -o . |uniq
ⅰ

grepして一文字を一行の列にする、まではいけます。でもsortとuniqが、なんかうまくいかないっぽい。
日本語文章でよく使う、可読文字だけ、と限定しても、文字をそのまんま処理するのは難しいっすな。いったん数字に変えるのは必須、か。


フォントの集まり、JIS第一水準とか人名漢字とか。こういうのと自作フォントの作成済み文字とを比較管理したくて、ちょこちょこやってます。
こう、あれだ。テキストデータをスクリプトに突っ込むと、使われてる文字を集計して、資料にまとめて、比較できるようにしたいわけっすよ。
ちょっと作ってみてはいるものの、ネタにしても微妙な気はしてる。表計算ソフトにでも入れるべきで、シェルスクリプトはその、前段階だけで止めといたほうがいいのかなぁ、っつう気はしてるんだけど。
文字を書き込んだテキストファイルを突っ込めば、そのままLibreOfficeのCalcにコピペで貼り付けられるデータにできる、っつうくらいなら出来てるけど、これならまぁ、実用?

初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(9)]

VSつきの文字を抜き出す

$ cat ivstest.txt 
ななかまど
辻󠄀
辻󠄀辻味噌󠄀味噌

$ cat ivstest.txt |./ttedit_20210327_02.sh --html
ななかまど
辻󠄀
辻󠄀辻味噌󠄀味噌

という感じに、異体字セレクタつきのテキストデータを入れると、異体字セレクタだけをHTMLの数値参照に変換したり、異体字セレクタつきの文字だけ抜き出したり、異体字セレクタつきの文字だけ反転表示したり、とできます。
不満の残るスクリプトだけれど、とりあえず無いよりはマシです。

TTEdit/OTEditがデフォルトで作るフォントは、今まで異体字セレクタは使えなかったはず、なんだけれども。OTEditの新しい、文字数の多いやつだと、IVSが使えるみたい。そのへんを扱うための、道具作りです。

続きを読む

初歩のシェルスクリプトで遊ばない[ぬかみそフォントの制作サポート(7)]

横書き文字・縦書き文字とTrueTypeからOpenTypeへの変換コピー_(1)

今回、シェルスクリプト使いません。

TTeditでTrueTypeを作り、これをOTEditでOpenTypeに変換するときの、ややっこしいポイントの話。
通常の横書き文字に加えて、縦書き用に専用のグリフを持ってる文字。たとえばシフトJISに含まれてる、全角の罫線「│━」です。これをTrueTypeで作り、OpenTypeに変換したときの挙動について。

続きを読む

初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(6)]

複数のUnicodeがひとつのCIDを指すとき

TTEditTrueTypeフォントを、OTEditでOpenTypeフォントに変換するとき、殆どの文字は、ひとつのunicodeの文字が、ひとつのCIDにコピーされます。一対一になってる。

a → a
b → b
c → c

ところが、複数のunicode文字が、一つのCID文字にコピーされる文字も、そこそこある。

a → a
b → a
c → a

ここまでおかしなのは無いですが、例として。「a」「b」「c」のunicodeのグリフが、もし「a」のCIDにコピーされるとしたら。aはaにコピーされ、次にbもaに上書きコピーされ、さらにcもaに上書きコピーされる。結果、「a」に「c」のグリフがコピーされてしまう、「a」「b」が消えてしまう、ということです。

続きを読む

初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(5)]

unicodeからのコピー先が変更された189文字を表示するテキストファイル

TTEdit,OTEditで、「文字一覧」の「テキストファイルの文字を表示」から指定する、テキストファイルを作ります。

ProフォントとPr6Nフォントとで、同じunicodeから違うCIDにコピーする189文字を、並べて表示します。

続きを読む