Skip to content

Commit

Permalink
[Update] v2.0.0用に文言変更
Browse files Browse the repository at this point in the history
  • Loading branch information
omonomo committed Dec 31, 2023
1 parent dd75ebb commit 8b9f00c
Showing 1 changed file with 119 additions and 28 deletions.
147 changes: 119 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# 全角英数や半角カナが判別しやすい、文字間隔調整機能付き等幅フォント「Cyroit」

Cyroit (しろいと) はプログラミングにもお使いいただける日本語等幅フォントです。
Ricty 生成スクリプトで遊んでいるうちに合成フォント製作の沼にはまったことで生まれました。
全角英数記号や半角カナ等にアンダーラインが引いてあるため、括弧が全角と半角の組み合わせになっていたり、波ダッシュであるべきところに全角チルダが使われていたりしてもすぐに判別することができます。
全角スペースを可視化しており、さらに半角・ノーブレークスペースも可視化したバージョンも用意しています。
プログラミング向け合成フォントとして評価の高い [ricty](https://rictyfonts.github.io) の生成スクリプトで遊んでいるうちに、フォント製作の沼にはまってしまったために誕生しました。
全角英数記号や半角カナ等にアンダーラインが引いてあるため、全角・半角の組み合わせになっている括弧や、誤って使われている全角チルダなどをすぐに見つけることができます。
全角スペースや半角・ノーブレークスペースを可視化したバージョンも用意してあり、使い分けて使用できます。

[Commit Mono](https://commitmono.com) に影響を受け、calt フィーチャを利用したカーニング機能を実装しました (v1.1.0以降)。
[mottainaiDTP](http://mottainaidtp.seesaa.net) さんの [3桁ごとにカンマが発生するフォント](http://mottainaidtp.seesaa.net/article/395328634.html) を応用して、桁区切り表示に対応したバージョンを追加しました (v1.6.0以降)。
スタイルセットに対応したことで、機能や見た目について柔軟な対応ができるようになりました (v2.0.0以降)。

## フォントサンプル

Expand All @@ -26,18 +28,18 @@ Ricty 生成スクリプトで遊んでいるうちに合成フォント製作

## ダウンロード

最新版 (v1.6.7)
- [フォント](https://github.com/omonomo/Cyroit/releases/download/v1.6.7/Cyroit_v1.6.7.zip)
- [ソースコード](https://github.com/omonomo/Cyroit/archive/refs/tags/v1.6.7.zip)
最新版 (v2.0.0)
- [フォント](https://github.com/omonomo/Cyroit/releases/download/v2.0.0/Cyroit_v2.0.0.zip)
- [ソースコード](https://github.com/omonomo/Cyroit/archive/refs/tags/v2.0.0.zip)

フォントファイルの使用は自己責任にてお願いいたします。
ファイルを使用することで生じた不具合・損害等について omonomo は責任を負いません。

## その他の特徴

- 主にラテン文字は [Inconsolata](https://github.com/googlefonts/Inconsolata) を使用しています。
- 主に仮名文字、ギリシア文字、キリル文字は [CircleM+ 1m](https://mix-mplus-ipa.osdn.jp) を使用しています。
- 主に漢字は [BIZ UDゴシック](https://github.com/googlefonts/morisawa-biz-ud-gothic) を使用しています。
- 主にラテン文字のグリフは [Inconsolata](https://github.com/googlefonts/Inconsolata) を使用しています。
- 主に仮名文字、ギリシア文字、キリル文字のグリフは [CircleM+ 1m](https://mix-mplus-ipa.osdn.jp) を使用しています。
- 主に漢字のグリフは [BIZ UDゴシック](https://github.com/googlefonts/morisawa-biz-ud-gothic) を使用しています。
- [Nerd Fonts](https://www.nerdfonts.com) Ver.3 を追加しています。
- [ricty_generator](https://rictyfonts.github.io) を Fork したスクリプトで自動生成させています。生成時にグリフの改変や調整を行っています。

Expand Down Expand Up @@ -70,11 +72,12 @@ Ricty 生成スクリプトで遊んでいるうちに合成フォント製作
### 機能的なものについて

- IVS を利用した漢字の異体字表示に対応しています。
- ccmp フィーチャによるアイヌ語カナ表記に対応しています。
- vert フィーチャのみですが、縦書き表示に対応しています。
- calt フィーチャを利用して、等幅のままでラテン文字 (一部除く) の文字間隔を調整するようにしています。
- 同じく calt フィーチャを利用して整数に桁区切りマークを表示させています。また桁区切り表示版は小数が少し小さく表示されます。
- 桁区切りマークは、上の表示が4桁区切り (36桁まで対応)、下の表示が3桁区切り (39桁まで対応) になります。4桁区切りは0と1が続いた時のみ表示されます。
- ccmp によるアイヌ語カナ表記に対応しています。
- vert のみですが、縦書き表示に対応しています。
- calt を利用して、等幅のままでラテン文字 (一部除く) の文字間隔を調整するようにしています。
- 同じく calt を利用して整数に桁区切りマークを表示させています。また桁区切り表示版は小数が少し小さく表示されます。
- 桁区切りマークは、上の表示が4桁区切り (36桁まで)、下の表示が3桁区切り (39桁まで) になります。4桁区切りは0と1が続いた時のみ表示されます。
- 通常版に限りますが、各 ss を有効にすることで機能や見た目をカスタマイズすることができます。
- 記号を置き換えるタイプのリガチャには対応していません。
- 素材元のフォントにあった GSUB、GPOS のフィーチャは大幅に削ってあります。

Expand All @@ -85,14 +88,27 @@ Ricty 生成スクリプトで遊んでいるうちに合成フォント製作

| 名称 | サンプル | 説明 |
|----------|----------|------|
| Cyroit | <img alt="Normal" src="./images/Normal.png" width="330"> | 通常版。全角スペースを可視化し、全角形・半角形や濁点・半濁点、感嘆符等にアンダーラインが付くなど、形の似た文字を識別しやくしています。 |
| CyroitSP | <img alt="SP" src="./images/SP.png" width="330"> | スペシャルスペース版。半角スペース、ノーブレークスペース (0x00a0) も可視化したバージョン。コマンドランチャー等で使用すると便利かもしれません。 |
| CyroitDG | <img alt="DG" src="./images/DG.png" width="330"> | 桁区切り表示付き版。たくさん並んだ数字とにらめっこする時間を短縮できます。 |
| CyroitDS | <img alt="DS" src="./images/DS.png" width="330"> | 桁区切り表示の付いたスペシャルスペース版。 |
| CyroitTM | <img alt="TM" src="./images/TM.png" width="330"> | トゥーマッチ (やりすぎ) 版。開発途中まで通常版だったバージョン。大文字の DVZ のグリフを改変しています。桁区切り表示付き。 |
| CyroitTS | <img alt="TS" src="./images/TS.png" width="330"> | トゥーマッチスペシャルスペース版。トゥーマッチなスペシャルスペース版、全部盛り。 |
| CyroitFX | <img alt="TS" src="./images/FX.png" width="330"> | 文字間隔固定版。calt フィーチャと相性が悪いソフト用。 |
| CyroitHB | <img alt="HB" src="./images/HB.png" width="330"> | 平凡版。全てのスペースが不可視でグリフ改変も抑えたバージョン。プリントアウト用にどうぞ。 |
| Cyroit | <img alt="Normal" src="./images/Normal.png" width="220"> | 通常版。スタイルセット対応。内容については後述。 |
| CyroitBS | <img alt="BS" src="./images/BS.png" width="220"> | 基本版。Ver.1.x.x までの通常版。全角スペースを可視化しています。 |
| CyroitSP | <img alt="SP" src="./images/SP.png" width="220"> | スペシャルスペース版。半角スペース、ノーブレークスペースも可視化したバージョン。 |
| CyroitDG | <img alt="DG" src="./images/DG.png" width="220"> | 桁区切り表示付き版。たくさん並んだ数字とにらめっこする時間を短縮できます。 |
| CyroitFX | <img alt="TS" src="./images/FX.png" width="220"> | 文字間隔固定版。calt と相性が悪いソフト用。 |
| CyroitHB | <img alt="HB" src="./images/HB.png" width="220"> | 平凡版。全てのスペースが不可視でグリフ改変も抑えたバージョン。プリントアウト用にどうぞ。 |

### 通常版のスタイルセットについて

スタイルセットの設定方法については、[Fira Code](https://github.com/tonsky/FiraCode)[説明](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)が分かりやすいと思います。

| タグ名 | サンプル | 内容 |
|--------|----------|------|
| ss01 | <img alt="ss01" src="./images/ss01.png" width="220"> | 全角スペース可視化 |
| ss02 | <img alt="ss02" src="./images/ss02.png" width="220"> | 半角スペース可視化 |
| ss03 | <img alt="ss03" src="./images/ss03.png" width="220"> | 3桁区切りマーク表示 |
| ss04 | <img alt="ss04" src="./images/ss04.png" width="220"> | 4桁区切りマーク表示 |
| ss05 | <img alt="ss05" src="./images/ss05.png" width="220"> | 小数小文字化 |
| ss06 | <img alt="ss06" src="./images/ss06.png" width="220"> | 全角・半角形の下線消去 |
| ss07 | <img alt="ss07" src="./images/ss07.png" width="220"> | 識別性向上グリフ無効化 |
| ss08 | <img alt="ss08" src="./images/ss08.png" width="220"> | ストローク付き DVZ 有効化|

## ライセンス

Expand Down Expand Up @@ -122,18 +138,93 @@ Cyroit は、以下の環境でビルドできることを確認しています
```
異常なく完了した場合、直下の build フォルダにフォントが保存されます。

フォントをあれこれしたい人は以下のオプションが役に立つかもしれません。
### 各スクリプトの説明

Cyroit の生成には5つの Shell スクリプトを使用します。

**`run_ff_ttx.sh`**

一連の処理を自動化します。
`-F` オプション以外の時はグリフや機能に関係なくフォント名が Cyroit になり、オブリーク体を生成しません。
またカーニングの設定が基本ラテン文字に限定されます。
オプションなしの場合、calt 対応、ss 非対応、Nerd Fonts 有りになります。

- オプション
`-h` ヘルプを表示します。
`-d` 下書きモード。時間のかかる処理を飛ばします。改変したグリフを確認するのに便利です。
`-C` calt フィーチャを設定する直前で処理を終了します
`-p` `-C`オプションの続きを実行します。元のフォントを残すので、カーニングの設定、確認を繰り返す時に重宝します
`-c` カーニング機能を除いたフォントを生成します
`-C` calt を設定する直前で処理を終了します
`-p` `-C`オプションの続きを実行します。元のフォントを残すので、カーニング設定の調整を繰り返す時に重宝します
`-c` calt に対応しないフォントを生成します
`-e` Nerd Fonts 無しのフォントを生成します。
`-S` ss 対応のフォントを生成します。
`-F` 完成品を生成します。全てのバージョンを生成しますので時間がかかります。気長にお待ちください。

`-F` オプション以外の時は、グリフや機能に関係なくフォント名が Cyroit になり、オブリーク体を生成しません。
オプションなしの場合、通常処理でカーニングあり、Nerd Fonts ありになります。
**`font_generator.sh`**

FontForge のスクリプト機能を利用してフォントの合成と改変を行います。
オプションを指定することでフォントの見た目や機能を変更することが出来ます。
また、オプションの後に素材にするフォントを指定する必要がありますが、基本的に auto で問題ありません。

```
./run_ff_ttx.sh [options] auto
```

- オプション
`-h` ヘルプを表示します。
`-V` 生成するフォントのバージョンナンバーを表示します。
`-f /path/to/fontforge` FontForge コマンドのパスを */path/to/fontforge* に指定します。
`-v` 生成時の経過を詳しく表示します。
`-l` 一時作成ファイルを残します。
`-N string` フォントファミリー名を *string* にします。
`-n string` フォントファミリー名の接尾語 (「BS」や「SP」の部分) を *string* にします。
`-Z` 全角スペースを可視化しません。
`-z` 半角スペースを可視化しません。
`-b` 全角・半角形に下線が付きません。また識別性を向上させるためのグリフ改変をしません。
`-t` DVZ にストロークを付けません。
`-c` calt に対応させません。-s オプションも付加したことになります。
`-s` 桁区切りマークを表示させません。
`-e` Nerd fonts を追加しません。
`-o` オブリーク体を生成しません。
`-d` 下書きモードで生成します。時間のかかる処理を飛ばします。
`-S` ss 対応のフォントを生成します。自動的に -Zzts オプションが付加されます。
`-P` font_generator は一旦全ての機能を実装した後、オプションの内容に従って機能を省いていきますが、その直前で処理を終了します。
`-p` `-P`オプションの続きを実行します。

**`table_modificator.sh`**

font_generator で作成したフォントの情報を FontTools 内の ttx を使用して書き換えます。

- オプション
`-h` ヘルプを表示します。
`-l` 一時作成ファイルを残します。
`-N string` ファミリー名が *string* のフォントを処理します。
`-m` cmap を書き換えません。
`-g` gsub を書き換えません。
`-t` その他のテーブルを書き換えません。
`-C` calt を書き換える直前で処理を終了します。
`-p` `-C`オプションの続きを実行します。
`-b` calt 作成時のカーニング設定を基本ラテン文字に限定します。
`-r` テーブルを新規作成せず、既に存在しているファイルを使用して書き換えを実行します。

**`uvs_table_maker.sh`**

フォント合成時に失われた、IVS 関連の cmap を作成し直します。作成したデータは table_modificator で使用します。

- オプション
`-h` ヘルプを表示します。
`-l` 一時作成ファイルを残します。
`-N string` 名前が *string*-Regular のフォントに対するテーブルを作成します。

**`calt_table_maker.sh`**

calt を作成します。作成したデータは table_modificator で使用します。

- オプション
`-h` ヘルプを表示します。
`-l` 一時作成ファイルを残します。
`-n number` *number* を、calt で置換するグリフの先頭アドレスに指定します。
`-b` カーニング設定を基本ラテン文字に限定します。
`-s` 桁区切り等、カーニング以外の設定のみ作成します。

## メモ

Expand Down

0 comments on commit 8b9f00c

Please sign in to comment.