> [!caution]
> この項目は途中で中断している。
[[コミットグラフ]]の表示に最適なシンボルを表示するため、[[FontForge]]を使って[[SVG]]画像を追加してみる。
## 環境
| 対象 | 環境 |
| ------- | --------------------------- |
| OS | [[Windows 11]] |
| ベースフォント | [[Cascadia Code Nerd Font]] |
## FontForgeのインストール
[[FontForge]]を[[Scoop]]でインストール。
```console
scoop install fontforge
```
バージョンは`20230101`。
```console
$ fontforge.cmd --version
Copyright (c) 2000-2023. See AUTHORS for Contributors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
Version: 20230101
Based on sources from 2023-01-01 05:31 UTC-ML-TtfDb-D-GDK3.
Based on source from git with hash: a1dad3e81da03d5d5f3c4c1c1b9b5ca5ebcfcecf
fontforge 20230101
build date: 2023-01-01 05:31 UTC
```
## フォントの読み込み
[[FontForge]]を起動して読み込む。とりあえず `Regular` だけ。
![[Pasted image 20241014142557.png|frame]]
## Nerd Fontsを確認してみる
[[Nerd Fonts]]として登録されている[[Python]]のシンボルを確認してみる。
![[Pasted image 20241014144303.png|frame]]
*Pythonのシンボル*
[[FontForge]]で`e73c`を指す場所を探すと、たしかに登録されていた。
![[Pasted image 20241014144406.png|frame]]
*FontForgeで`e73c`のフォントを表示*
対象をダブルクリックすると如何にもなパスの編集画面が表示される。
![[Pasted image 20241014144551.png|frame]]
*FontForge `e73c`のアイコン編集画面*
これを変更するのは今回の目的ではないため、そのまま閉じる。
## フォントのシンボル追加
今回追加する対象のシンボルSVG画像は以下のIssueで共有されている[[Git]]の[[コミットグラフ]]に関するものである。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<p class="link-card-title">Add branch drawing symbols to box characters by rbong · Pull Request #7681 · kovidgoyal/kitty</p>
<p class="link-card-description">This symbols are for drawing git-like directed acyclic graph ... </p>
</div>
<img src="https://opengraph.githubassets.com/000dd29a466f58cffacd7b68cfcbd8f1b5d29ebc09367174634b632c0089c113/kovidgoyal/kitty/pull/7681" class="link-card-image" />
</div>
<a href="https://github.com/kovidgoyal/kitty/pull/7681"></a>
</div>
対象範囲については `F5D0` ~ `F5FB` を利用する方針となっている。[[Nerd Fonts]]がこの領域を使用していないことは、上記のIssueにも記載されていた。
> I selected a range (0xf5d0 - 0xf5fb) in a Unicode Private Use Area that is a reasonable distance from the previous icon set in Nerd icons.
これをもとに[[FontForge]]で編集すれば良さそうなことは分かったが、[[FontForge]]だけでは厳しそう。
## Pillowで画像を分割しようとした
[[Pillow]]を使って[[Python]]コードで画像を分割しようと思ったが、以下の点で面倒になり断念した。。
- 元画像がキッチリ分割できるサイズではなく[[GIMP]]などでの調整が面倒
- 頑張って調整したものの[[Pillow]]を使ってなぜか等間隔に分割されなかった
これ以上この件に時間をつかいたくないので、[[FontForge]]の体験ができたことを以て中断する。機会があれば続きを記載する。