Cyroit (しろいと) はプログラミングにもお使いいただける日本語等幅フォントです。
プログラミング向け合成フォントとして評価の高い ricty の生成スクリプトで遊んでいるうちに、フォント製作の沼にはまってしまったことで誕生しました。
全角英数記号や半角カナ等にアンダーラインが引いてあるため、全角・半角の組み合わせになっている括弧や、誤って使われている全角チルダなどをすぐに見つけることができます。
全角スペースや半角・ノーブレークスペースを可視化したバージョンも用意してあり、使い分けて使用できます。
Commit Mono に影響を受け、calt を利用したカーニング機能を実装しました (v1.1.0以降)。
mottainaiDTP さんの 3桁ごとにカンマが発生するフォント を応用して、桁区切り表示に対応したバージョンを追加しました (v1.6.0以降)。
スタイルセットに対応したことで、機能や見た目について柔軟にカスタマイズできるようになりました (v2.0.0以降)。
変体仮名と小書き仮名拡張の表示に対応しました (v2.1.0以降)。
CotEditor にて
最新版 (v2.2.6)
フォントやスクリプトの使用は自己責任にてお願いいたします。
各ファイルを使用することで生じた不具合・損害等について omonomo は責任を負いません。
- 主にラテン文字のグリフは Inconsolata を使用しています。
- 主に仮名文字、ギリシア文字、キリル文字のグリフは Circle M+ 1m を使用しています。
- 主に漢字のグリフは BIZ UDゴシック を使用しています。
- 変体仮名のグリフは NINJAL 変体仮名フォント を使用しています。
- Nerd Fonts Ver.3 を追加しています。
- ricty_generator を Fork したスクリプトで自動生成させています。生成時にグリフの改変や調整を行っています。
- 小文字の g をオープンテールに改変しています。
- アスタリスクのスポークを6本に増やしています。
- チルダの波が強調されています。
- 数字の7の先端を折り曲げています。
- その他のグリフについても、視認性向上や他の素材フォントとのバランスをとるための微調整をしています。
- 一部のひらがなを教科書体っぽく (跳ねたり突き抜けたり別れたり) しています。
- 濁点、半濁点の大きさや位置を変更しています。
- イコールと区別しやすいようにダブルハイフンの先端を少し折っています。
- その他のグリフについても、他の素材フォントとのバランスをとるための微調整をしています。
- 小書き仮名拡張に対応しています。また見た目に統一感はないですが、変体仮名の表示にも対応しています。
- カタカナや図形の○などと区別しやすいように一部の漢字にウロコを追加しています。
- いわゆる土吉 (吉の異体字) を追加しています。
- その他のグリフについても、他の素材フォントとのバランスをとるための微調整をしています。
- ダッシュや縦棒など、形状の似た記号と区別しやすいように実線を破線に改変している記号があります。
- キーボードショートカットや製図の補助記号などを少し追加しています。
- Nerd Fonts は他の素材フォントとのバランスをとるために、一部を除いてサイズを調整しています。
- IVS を利用した漢字の異体字表示に対応しています。
- ccmp によるアイヌ語カナ表記に対応しています。
- vert のみですが、縦書き表示に対応しています。
- calt を利用して、等幅のままでラテン文字 (一部除く) の文字間隔を調整するようにしています。
- 同じく calt を利用して整数に桁区切りマークを表示させています。また桁区切り表示版は小数が少し小さく表示されます。
- 桁区切りマークは、上の表示が4桁区切り (36桁まで)、下の表示が3桁区切り (39桁まで) です。4桁区切りは0と1が続いた時のみ表示されます。
- 通常版に限りますが、各 ss を有効にすることで機能や見た目をカスタマイズすることができます。
- 記号を置き換えるタイプのリガチャには対応していません。
- 素材元のフォントにあった GSUB、GPOS のフィーチャは大幅に削ってあります。
見た目が少し違うだけなのに種類を増やしたため、無駄にファイルサイズが大きくなってしまい大変申しわけございません。
それぞれにレギュラー、オブリーク、ボールド、ボールドオブリークの書体が含まれています。
スタイルセットの設定方法については、Fira Code の説明が分かりやすいと思います。
タグ名 | サンプル | 内容 |
---|---|---|
ss01 | 全角スペース可視化 | |
ss02 | 半角スペース可視化 | |
ss03 | 3桁区切りマーク表示 | |
ss04 | 4桁区切りマーク表示 | |
ss05 | 小数小文字化 | |
ss06 | 全角・半角形の下線消去 | |
ss07 | 識別性向上グリフ無効化 | |
ss08 | ストローク付き DVZ 有効化 |
- フォント : SIL Open Font License 1.1
- スクリプト : MIT
素材元のフォントやスクリプトはライセンスが異なる場合があります。
Cyroit は以下の環境でビルドできることを確認しています。
- OS: macOS Sonoma (version 14.5)
- Shell: zsh 5.9 (x86_64-apple-darwin23.0)
- FontForge: 20230101
- FontTools: 4.51.0
あらかじめパッケージマネージャ等を利用して FontForge と FontTools をインストールし、使える状態にしておいてください。
スクリプトのある場所をカレントディレクトリにして
./run_ff_ttx.sh -F
異常なく完了した場合、直下の build
フォルダにフォントが保存されます。
Cyroit の生成には5つの Shell スクリプトを使用します。
一連の処理を自動化します。全スクリプトの中のリーダーです。
-F
オプション以外は生成フォントの確認用になります。
パラメータとして引数に font_generator のオプション (hVxfNn
以外) をハイフンなしで羅列することにより、生成フォントをカスタマイズすることができます。
(例) 接尾語に「NoNF」を付けて、Nerd Fonts 抜きの基本版を完成品として生成する場合
./run_ff_ttx.sh -F -n "NoNF" ztse
- オプション
-h
ヘルプを表示します。
-x
スクリプトと同じフォルダにあるフォントと一時作成フォルダ、ファイルの削除のみ行って終了します。
-l
一時作成ファイルを残したままにします。-d
-C
-p
の場合、-l
に関係なく一時作成ファイルを残します。
-r
cmap や calt 用のテーブルファイルがすでに存在していた場合、作り直さずにそのファイルを使用します。
-N string
フォントファミリー名を string にします。省略すると「Cyroit」になります。
-n string
フォントファミリー名の接尾語 (「BS」や「SP」の部分) を string にします。
-d
下書きモード。時間のかかる処理を飛ばします。改変したグリフの確認用です。
フィーチャテーブルを編集する前に終了します。パラメータなしの場合ldoP
を有効にしたフォントを生成します。
-C
calt を設定する直前で処理を終了します。パラメータなしの場合lSeo
を有効にしたフォントを生成します。
-p
-C
オプションの続きから実行します。元のフォントを残すので、調整を繰り返す時に重宝します。
カーニング設定は基本ラテン文字限定になります。フォントは合成済みのため、パラメータの内容は意味を成しません。
-F
完成品を生成します。時間がかかりますので気長にお待ちください。完成したフォントはbuild
フォルダに保存されます。
カーニング設定はラテン文字拡張 A までになります。
・パラメータありの場合、パラメータに応じたフォントのみ生成します。
・パラメータなし、-n
オプションありの場合、S
を有効にしたフォントのみ生成します。
・パラメータなし、-n
オプションなしの場合、デフォルトの全バージョンを生成します。
オプションなし
カーニング設定は基本ラテン文字限定になります。パラメータなしの場合lo
を有効にしたフォントを生成します。
FontForge のスクリプト機能を利用してフォントの合成と改変を行います。
オプションを指定することでフォントの見た目や機能を変更することができます。
オプションの後に素材にするフォントのファイル名を指定する必要がありますが、基本的に auto
で問題ありません。
合成したフォントを完成させるには、table_modificator を実行してフォント情報を書き換える必要があります。
(例) 下書きモードで平凡版を生成する場合
./font_generator.sh -dZzubts auto
- オプション
-h
ヘルプを表示します。
-V
生成するフォントのバージョンナンバーを表示します。version.txt
の内容を参照します。
-x
スクリプトと同じフォルダにある一時作成フォルダとファイルの削除のみ行って終了します。
-f /path/to/fontforge
FontForge コマンドのパスを /path/to/fontforge に指定します。
-v
合成時の経過を詳しく表示します。
-l
一時作成ファイルを残したままにします。
-N string
フォントファミリー名を string にします。省略すると「Cyroit」になります。
-n string
フォントファミリー名の接尾語 (「BS」や「SP」の部分) を string にします。
-Z
全角スペースを可視化しません。
-z
半角スペースを可視化しません。
-u
全角・半角形に下線を付けません。
-b
識別性を向上させるためのグリフ改変をしません。
-t
DVZ にストロークを付けません。
-c
calt に対応させません。文字間隔を調整しないフォントになります。-s
も有効にしたことになります。
-s
桁区切りマークを表示させません。
-e
Nerd Fonts を追加しません。
-o
オブリーク体を生成しません。
-S
ss 対応のフォントにします。自動的に-Zzts
が有効、-ubc
が無効になります。
-d
下書きモードで合成します。時間のかかる処理を飛ばしますが、完成品と見た目が少し異なる文字があります。
-o
も有効になります。改変したグリフの確認用です。
-P
font_generator は一旦全ての機能を実装した後、オプションに従って機能を削っていきますが、その直前で処理を終了します。
そのため一部のオプションは指定しても有効になりません。合成フォントの拡張子は.nopatch.ttf
になります。
-p
-P
オプションの続きから実行します。
font_generator で合成したフォントの情報を FontTools の ttx コマンドを使用して書き換えます。
-r
オプションを付けていない場合、スクリプト内で uvs_table_maker と calt_table_maker を実行します。
- オプション
-h
ヘルプを表示します。
-x
スクリプトと同じフォルダにある一時作成ファイルの削除のみ行って終了します。
-l
一時作成ファイルを残したままにします。
-r
テーブルファイルがすでに存在していた場合、作り直さずにそのファイルを使用して書き換えます。
-N string
ファミリー名が string のフォントを処理します。省略すると「Cyroit」になります。
-m
cmap を書き換えません。
-g
GSUB を書き換えません。
-t
その他のテーブルを書き換えません。
-C
calt を書き換える直前で処理を終了します。
-p
-C
オプションの続きから実行します。
-b
calt 作成時のカーニング設定を基本ラテン文字に限定します。動作確認用です。
フォント合成時に失われた IVS 関連の cmap テーブルを作り直します。
作成したデータは table_modificator で使用します。
- オプション
-h
ヘルプを表示します。
-x
スクリプトと同じフォルダにある一時作成ファイルの削除のみ行って終了します。
-l
一時作成ファイルを残したままにします。
-N string
名前が string-Regular のフォントに対するテーブルを作成します。
省略すると「Cyroit-Regular」が対象になります。
calt テーブルを作成します。作成したデータは table_modificator で使用します。
- オプション
-h
ヘルプを表示します。
-x
スクリプトと同じフォルダにある一時作成ファイルの削除のみ行って終了します。
-l
一時作成ファイルを残したままにします。
-n number
calt で置換する先頭のグリフ (左に動いた A になります) を示す番号に number を指定します。
先に uvs_table_maker を実行し、gsubList.txt
が生成されていれば省略しても問題ありません。
-b
カーニング設定を基本ラテン文字に限定します。動作確認用です。
-s
カーニング以外の設定 (桁区切り、記号の移動) のみ作成します。動作確認用です。
- 使用するソフトウェアによって、縦書きや異体字、桁区切りマークが正しく表示されない、また文字間隔が調整されないことがあります。
- 「前後関係に依存する字形」や「リガチャ」などの設定項目がある場合、それを有効にすることで桁区切りマークや文字間隔調整機能が働く場合があります。
- 一部グリフに不統一なところがありますが、複数のフォントを合成しているためであり、仕様となります。
- 行間が広めにとってあります。ダイアクリティカルマークがたくさん付いた文字もきちんと表示させるためです。
- Powerline グリフを使用する際はフォントサイズを 12pt か 14pt にするとよい感じに表示されるかもしれません。
- 通常版等をメインのフォントに指定すると、動作がもっさりになってしまうソフトウェアがあります。その場合は文字間隔固定版をお試しください。
- スクリプト実行時、ttx にて「Attempting to fix OTLOffsetOverflowError…」という警告が出る場合がありますが、生成フォントに影響は無いと認識しております。
- GitHubページ: 過去のバージョンや更新履歴はこちらをご参照ください。
- 小指の移動量が少ない日本語かな入力配列 「水草配列」: オリジナル日本語かな入力配列を紹介しています。
- DefaultKeyBinding.dict サンプル: タイトル通りです。