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

TTEditのグリフcsvファイルをsvgファイルへ変換する

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Musashi System TTEdit -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="1024px" height="1024px" viewBox="0 0 1024 1024">
<path fill="#000000" d="M617,971 Q570,971 567,929 Q567,886 610,884 Q638,885 675.5,880.5 713,876 761,848 Q819,807 837,741 855,675 833.0,608.5 811,542 750,494 Q729,478 702,467 Q633,642 564,729 Q433,894 307,907 Q205,921 146,868 Q86,816 90.0,713.5 94,611 159.0,530.5 224,450 335,407 Q348,403 361,398 Q361,331 362,269 L157,269 Q115,269 115,229 Q115,189 157,189 L366,189 Q369,141 373,96 Q375,73 385.5,64.5 396,56 420,58 Q464,63 460,98 Q455,143 452,189 L867,189 Q909,189 909,229 Q909,269 867,269 L448,269 Q446,322 446,377 Q510,366 581,367 Q616,368 647,372 Q650,362 653,353 Q666,310 706,324 Q750,342 737,375 Q734,383 731,392 Q769,406 801,427 Q885,485 917,579 949,673 925.5,766.0 902,859 820,913 Q767,947 709.0,960.5 651,974 617,971 z M570,444 Q505,444 447,455 Q454,599 491,695 Q500,682 510,668 Q565,592 620,447 Q596,445 570,444 z M359,482 Q266,522 220,583 174,644 170,708 166,772 201,802 Q238,831 296,825 Q362,817 424,765 Q422,762 420,758 Q372,644 364,481 Q361,482 359,482 z "/>
</svg>

「あ」をTTEditで「svgファイルにエクスポート」で、svgファイルを作れます。
今回は、TTEditで書き出したcsvファイルを、シェルスクリプトで上記と同様のsvgに書き換えます。

いちおうスクリプトは置いておきますが、実行は控えたほうがいいかも。
もしスクリプトにミスがあれば、既存のファイルを上書きして壊してしまうかもしれませんし。

続きを読む

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

TTEdit,OTEditの制御点データをcsvファイルへ書き出す


TTEditでは、画像の赤枠で囲った部分、座標の値を、csvファイルで書き出すことができます。
書き出したcsvファイルは、TTEditに読み込むこともできます。
どちらも一文字ずつならGUIでできますが、GUIで一括書き出しの機能は見当たりません。
読み込みなら「フォルダ内全てのファイルをインポート」がありますが、縦書き文字のインポートの方法がよくわかりません。

このあたりの機能を、TTEdit,OTEditのJavaScriptマクロで作ります。Windows 32bit版専用です。
いつまでマクロ機能を使えるのか、非常に怪しいところではありますが。

続きを読む

IBM Plex Sans JP 5.2.1 Unicode横書き文字リスト?

自信は無いけど文字リスト

Release v5.2.1 · IBM/plex · GitHub
IBMPlexSansJP-Regular.otf , ヒント無し版の横書きUnicode文字一覧表、のようなもの。

勉強兼ねて作ったもので、よくわかりません。いろいろ注意点もありますんで、参考にするなら注意深く参考にしてください。

  • 横書きのUnicode文字だけです。CIDだけしか振られてない文字は含まれません。
  • フォントファイルをひとつしか調べてません。
  • 調査方法は後半に書きますが、当てになりません。
続きを読む

ぬかみそフォントbeta10

ダウンロードは「リンク」のそれっぽいところから。

更新

  • OpenTypeにPr6Nを追加
  • JIS90のOpenTypeをProからStdに切り替え
  • TTEditのバージョンアップに伴いTrueType版のファイルフォーマット切り替え
    • 古いMS明朝準拠だったのがWindows10準拠になった
    • 作成可能な文字数が増えた(基本多言語面を超えてます。古いシステムでは注意?)
    • 等幅フォントの文字幅が一部の文字で変更された(というか、直った)
    • Windows2000,MacOS_X_10.3までへの対応を終了
  • 使用方法説明書を改訂
  • フォント素材の未公開分,ツール,説明書を同梱
  • 『闇夜』『昆布出汁』も作成継続
  • 文字追加,修正

Pr6NのOpentype版 nukamiso2004OTF.otf

  • AdobeJapan1-7のフォントファイルに、有るだけの文字を突っ込んだバージョン。
  • 異体字セレクタに対応しており、JIS90版の漢字も出せる。
  • そのかわり未収録グリフのコードポイントが多い。空白が表示されやすい。

フォントプログラムとしてはAJ1-7なので、「令和」の組み文字も入れることはできるんですが、入ってません。Unicodeで番号が振られていないようで、ふつうにテキストファイルで表示しようとしても、出せません。今回は「㋿」は見送りました。

異体字セレクタに対応しています。LibreOffice Writerのようなワープロソフトで使うときは、たとえば「一点辻󠄀」と「二点辻」をMS-IMEでそのまま打てる、はずです。

(補注):その他のバージョンでの異体字の出し方

OpenTypeJIS90版では、異体字セレクタは使えません。
TrueType版でも、異体字セレクタは使えません。フォントファイルのJIS90版とJIS2004版を手動で切り替えて、使い分けます。レガシーな仕組みですが、これも悪くはないでしょう。

追加文字(238文字)

⁉ℓ✓✔㋿㐂㔟㟢㻚䂓䄃䉤亖份仿俱傕傜儞冼凞刁剝卌卡卬卽吞呍咖唎啊啞啡嘿噓噯噲嚙囊囤圴墀姤娣婕屛巢幞庬廙廞徵怗悞捥揭搔擊攢昺晊晚晷曆曈杌椑椻橅檑檔步歧歷每毗毱泠洮涉涿淊淚渴溫潑潞濹灊灤煒爀狀玟玨琛琡琹瑋璠璣畵疁皕皪睢睲睺碭磈磠磾礴种秚稞穠筿簞簱簶粏紒紞綋緄緌緣翥脘脺舃芮蔾藎蘒虛螭蟬蠃蠋衜袜諝跎踠迆迶醱醲鈨鈳錄鍊鍥鎺閫雝雞靇靳鞢韙饀驊驒鬭鹼麵黃龖鿄鿅鿆欄廊虜類侮僧勉勤卑喝嘆器墨層悔憎懲敏暑梅海渚漢煮琢碑社祉祈祐祖祝禍禎穀突節練繁署者臭著視謁謹賓贈逸難響頻恵𤋮舘𠅘𠮟𠮷𣏌𣏾𣗄𤋮𩊱

追加文字の選定_常用漢字と人名漢字

俱剝卽吞巢徵揭擊晚曆步歷每涉淚渴溫狀簞緣虛蟬錄鍊黃欄廊虜類侮僧勉勤卑嘆器墨層悔憎懲敏暑梅海渚漢煮琢碑社祉祈祐祖祝禍禎穀突節練繁署者臭著視謁謹賓贈逸難響𠮟

常用漢字の、今まで作成不可能だった漢字も合わせて、人名漢字を追加した。ミスしてなければ、現在の法律で子供の名づけに使える漢字はすべて入ってるはずです。これらは異体字セレクタは不要で、TrueType版でも出せます。
たとえば「」。「」ではなく「」です。「母」になってるタイプの異体字ですね。
「自分の名前の漢字が出るフォントが少ない」って不満を持ってる人の、選択肢の一つにはなる。いや、今時はオープンソース限定でも選択肢がいろいろあるって知っちゃあいますけどね。

ARIB外字の追加漢字、の一部

㐂㔟㟢㻚䂓䄃䉤份仿傜儞冼卡卬呍咖唎啊噲囤圴墀姤娣婕庬怗曈椑椻橅檑毱泠洮涿淊潞濹灤爀玟玨琛琡琹瑋畵疁睲磈磠秚稞筿簱綋脘脺芮藎蟬蠋跎迶醲鈳雞饀麵鿄鿅鿆海渚琢恵𤋮舘𠅘𠮷𣏌𣏾𣗄𤋮

テレビの字幕とかに使う文字集合の、追加漢字の一部です。Wikipediaからコピーさせてもらって調べたんですが、異体字セレクタが付いてた漢字は除きました。
さっきの「海」はこっちにも入ってますね。他に有名どころは「𠮷(つちよし)」だろうか。

日本の歴史的な服飾、刀剣

幞簶紒緌舃袜鈨鎺鞢𩊱

「鎺」「鈨」がともに「はばき」と読んで、日本刀の部材だそうです。
「胡簶」と書いて「やなぐい」「緌」で「おいかけ」。何なのかは検索したら出てきます。どこかで見たことはあっても名前は知らんかった。
このあたりを題材に小説を書く人とかは、日本刀の部材や伝統的な服飾の漢字が使えたら、ひらがなにするよりは恰好良くなると思う。

三国志人名漢字の追加分

傕刁嘿廙廞昺晊歧毗瑋璠璣碭磾种紞緄翥芮衜諝雝靳韙

Wikipediaから再度拾ったんですが、前回調べたときに有った漢字が無くなったりしてる気が。前回入れた漢字が誰の名前の漢字なのか、よくわからん状態になってます。
まぁ今回からは、目視でなく、自前のシェルスクリプトで調べるようにしましたんで、関係ない漢字を手入力で突っ込んじゃった、とかは無いと思いますけど。

そのほか

  • 日本コア漢字を全て揃えた。
  • JIS90版とJIS2004版とで字形が異なる漢字を一通り揃えた。
  • AdobeJapan1-3の不足分のうちUnicodeが振られてる漢字を追加した。
  • 異体字セレクタで出る漢字は入ってるが、基底文字が入ってなかったから入れた。
  • 妖怪とか神様とかの漢字で目に付いたものを入れた、が、どれだったか忘れた。
  • IMEで出るからって似た漢字を意図もなく使わんで欲しい、という漢字をいくつか。「剥く」でいいのに「剝く」にせんでくれ。

中二病漢字

OpenTypeのJIS90版をPro(1-4)からStd(1-3)へ変更

OTEditで新規作成できるフォントファイルの種類は3種類しかなくて、そのうち2種類はJIS90版のProとStdです。今まではProに入れてましたが、今回はStdに変更しました。
一見、文字数が減って劣化したように見えますが、これはOTEditの仕様と、新しくPr6N(1-7)版を追加したことが絡んでます。
特にTrueType版で遭遇しやすいんですが、作ってない文字を表示しようとすると、空白で表示されてしまいます。アプリケーションによっては空白だと別のフォントに入れ替えてくれるものもあるかもしれんですが、Firefoxとかは空白で出ます。読めません。
文字数の多いProに入れて空白を増やすよりは、Stdに入れてコード数を減らし、望まない空白を減らす、という方針を取ったのが、今回のOTF版です。テキストエディタやブラウザで使うのに向きます。
逆に、今回新規で作れるようになったPr6N版は、文字数を多く収録する方針です。ワープロソフトで文字とフォントを決めて使うのに向きます。

不具合修正


TTEditの仕様変更で、昔は半角幅だったコードが、beta09では全角幅になっていたんですが、今回beta10で元に戻りました。トランプ絵柄マークは、MS明朝準拠、ということなら、半角幅が正しいですしね。
beta09では見落としてました。長いこと放置してて申し訳ない。

em dashも全角幅に半角を入れてる状態になってましたが、今回の変更で幅いっぱいに伸ばしました。TrueType版だと半角、OpenType版では全角です。
ハイフンなどは角丸にしてありますが、em dashは角丸ではなく、角を立てた長方形になっています。隙間なく並べると、繋がります。

説明書を更新


Firefoxで閲覧すると、同梱したフォントファイルをWebフォントで直接に読み込み、表示テストができます。

  • 「某ブラウザ物真似css」と同様の表示で、文字リストを表示テストできる。
  • strokeでパスを表示する。重複パス除去前のフォントのパスも見られる。

開発者向けの合成前フォントとツール、説明書を同梱

開発者、というには大げさですが、TTEditとOTEditを両方使ってフォントを作っている人向け、です。
「nukamiso_komenuka」という重複パス除去前のフォントを今までも同梱してきましたが、これに加えてJIS2004差分,プロポーショナル差分,OpenTypeCID差分のフォントファイルも同梱しました。
さらに、TTEdit.OTEdit専用のマクロファイル(JavaScript)と、csvファイル、文字テキストファイルも添えています。
そこそこ詳しい説明書も書きました。私自身が、この説明書を読みながら、フォントの組み立て作業をやってます。Win_TTEdit標準版,Win_OTEditのライセンスを持ってる人なら、全く同じ完成品のフォントを作ることができます。
FontForgeでも、似たフォントを組み立てることができるでしょう。

文字管理用のシェルスクリプトも更新


「フォント以外のダウンロードファイル」に、「noren(暖簾)」というのを置いてます。説明書を作るのに使ったbashスクリプトです。Ubuntuならいけるはず。Macは書き換えなきゃ無理かも。
漢字の異体字セレクタに対応しているのが特徴です。

  • 異体字だけを取り出す
  • 2つのテキストファイル間で基底文字が共通した漢字を抜き出す
  • 2つ以上のテキストファイルから「AかつB,さらにCでない」とかで文字を抜き出す
  • 文字をUnicodeやCP932のコード順に並べて一覧HTMLを出力する

といった機能があります。「TTEditの文字一覧テキストファイルから、CP932の漢字を抜き出してCP932の漢字順に並べ、さらに残りの文字をUnicode順に並べる」で作ったのが、今回の説明書です。

今後の更新

2021年の年末に、もう一度更新する予定です。
「バグっぽいものを見つけたから直してほしい」というのがもしあれば、Twitterのメガネハナーン紙工作に一言ください。
今年10月までなら、健康上の理由などが無い限り、とりあえず見てみるまではやります。直せるかどうかは約束できませんけれど。

beta10は変更部分が多いうえ、作業途中の修正作業も多いです。前回のbeta09には文字幅のバグが多いということもあり、緩衝材を挟む意味も込めて、ちょっと駆け足で更新しました。

細かい不具合 直せるものは次に直す

  • 説明書HTMLの代替CSS切り替え機能が動作しないことがある
  • ビルド説明書の css display: sticky が動作しないことがある
  • 使用許諾契約書の「▼ 製作機材」 URLが http:// のまま

『ぬかみそ茄子』フォント


ランドネットディスク物真似CSSのzipファイルとは別に、7zファイルを追加してあります。改変フォントです。
半角英数字を通常表示、半角英数字以外は白黒反転表示します。
MS明朝で出せない文字を表示すると、別のフォントで置き換えられて、黒くならない、という欠点はあります。

利用方法はご覧の通りで、テキストエディタでのプログラミング補助用です。
Xubuntu環境では綺麗に表示してくれてます。


こっちは継続して作るかどうか、決めてません。「闇夜」と「昆布出汁」は意外と使われてるみたいで、今回から格上げしましたが、『茄子』は一回きりかも。
この程度の改変なら誰でも簡単に作れるし、私が出す必要がありません。『闇夜』もそうなんですが、こういうのは、別のフォントで誰か必要としてる人が作ったほうが良いと思う。

【開発者用】『カボチャ売り尽くし』フォントVersion2.0

ダウンロードは、サイドバーの「ぬかみそフォント」のところから。
解説はバージョン1の記事を参照で。
【開発者用】「カボチャ売り尽くし」フォント - HatenaDiary id:Narr

作製方針はバージョン1から変わってません。
フォントのフォーマットを更新しました。TTEditとOTEditがバージョンアップしたことに伴って。
今のところ、インストールとアンインストールで不具合は経験してません。が、上のスクリーンショットのようなことも起こります。(Xubuntu 21.04 snap版chromium)

今回から再配布を可能にしておきました。が、知人に手渡しするくらいにとどめておいて、製品への組み込みは控えてください。
組み込みがダメじゃないですが、新規に類似フォントを作っちゃったほうが絶対に簡単です。TTEditでなくとも、スクリプトを書けるフォント作成ソフトなら、作れるはず。
再配布を可能にしておいたのは、うっかり製品に同梱して再配布してしまったときにライセンス問題が面倒にならないようにするためでしかありません。


いちおう念のための注意として。
類似フォントを作るときは、フォント作成アプリケーションで新規にファイルを作るところからやってください。たとえばFontForgeで私が公開してるフォントファイルを開き、文字のグリフを全削除して、フォント名を変えた、だけでは、ぜんぶは消せません。
FontForgeでttfファイルを上書きセーブしても、「元々はTTEditのフォントっぽいな」と分かることもあります。