An open API service indexing awesome lists of open source software.

https://github.com/zk-phi/code8903

A coding font based on JISZ8903
https://github.com/zk-phi/code8903

font

Last synced: 3 months ago
JSON representation

A coding font based on JISZ8903

Awesome Lists containing this project

README

          

* 機械彫刻用標準文字 code 等幅フォント

[[imgs/title.png]]

* サンプル

機械彫刻用標準文字等幅

[[imgs/code8903.png]]

Monaco (参考)

[[imgs/monaco.png]]

一般的な等幅フォントに比べると、飾りがやや少なめです。

元のフォントの作られた経緯から、本質的に字画の密集や鋭角な交差が少なく
なっているため、フォントサイズを落としても字形がつぶれにくいです。特に
日本語は、機能的でありながらほどよく個性もある、味のある文字になってい
ます。

* ビルド

機械彫刻用標準文字のライセンスの都合で、再配布に許諾が必要なため、とり
あえず生成スクリプトだけ公開しています。

ヒンティングに =fontforge= 組み込みの機能を使う方法と、 =ttfautohint=
という外部ツールを使う方法があります。 =ttfautohint= の方が高速でやや
クオリティも高い気がするので、自分はそちらを使っています。

** 生成方法 (=ttfautohint= を使う場合, 推奨):

1. =fontforge=, =ttfautohint= をインストール

Mac の場合は Homebrew で入ります。

: brew install fontforge ttfautohint

Windows の場合は手動で公式からインストーラをダウンロードしてインス
トール& PATH を通すか、 Bash on Windows から =apt-get= でも入ると
思います (試せていないので、ごめんなさい)。

2. 機械彫刻用標準文字フォントをダウンロード

機械彫刻用標準文字フォントを公式からダウンロードして、
=KikaiChokokuJIS-Md.otf= を =fonts= ディレクトリにコピーします。

3. Rounded M+ をダウンロード

自家製 Rounded M+ フォントを公式からダウンロードして、
=rounded-mplus-1m-regular.ttf= を =fonts= ディレクトリにコピーしま
す。

5. スクリプトを実行

: make

成功すると =dist= ディレクトリに =code8903-Medium.ttf= (と =tmp= に
中間生成物 ... こちらは削除しても構いません) が生成されます。

** 生成方法 (=ttfautohint= を使わない場合):

上の生成方法のステップ 5 (=make=) の前に =Makefile= の先頭から4行のコ
メントアウトを編集して、 =HINTER= に =fontforge= を設定します。

ステップ 1 での =ttfautohint= のインストールは不要です。

* アップデート

フォントに更新があった場合、新しいフォントをインストールする前に古いフォ
ントの情報を削除しないと反映されません。

1. インストール済みのフォントを削除

Mac の場合は =Font Book= アプリケーションから削除できました。

2. フォントキャッシュをクリア

Mac の場合は

: sudo atsutil databases -remove

でできました (パスワードを訊かれます)。最近はその後、フォントキャッ
シュの再構築に再起動が必要なようです。

* カスタマイズ

わかる人向けです。 =Makefile= を編集してください。

- =JISZ8903OPTS= ... 機械彫刻用標準文字フォントの調整
- =--ss01= ... スタイルセット 01 を有効にする
- =--ss02= ... スタイルセット 02 を有効にする
- =--expandstroke <整数>= ... 字形を太らせる
- =fontforge= の =ExpandStoke= 関数に渡ります。目安、 =10= とか

- =ROUNDEDMPOPTS= ... RoundedM+ の調整
- =--expandstroke <整数>= ... 字形を太らせる

- =MERGEOPTS= ... 合成フォントの調整
- =--no-mplusglyphs= ... 足りない漢字以外に RoundedM+ を使わない
- デフォルトでは、 =a=, ={}=, =[]= に RoundedM+ を使います
- コーディング用フォントとしての識別性を高めるため
- =--no-dottedzero= ... ゼロ =0= に点を打たない
- デフォルトでは中点 =・= を =0= に合成します
- =--no-largeast= ... アスタリスク =*= を大きくしない
- デフォルトでは全角アスタリスク =*= を縮小した字形を使用します
- =--visiblespace= ... 全角スペースを見えるようにする
- Ricty の全角スペースと同じような字形で全角スペースを表示します

RoundedM+ の代わりに RoundedM+ の派生フォント (RoundedMgen+, 略字少な
め丸ゴシックR など) を使うこともできます。

私の使っている設定は =phi= ブランチにあります。