wsltty等の端末エミュレータ向けに、East Asian Ambiguous文字等をNarrowにしたフォントです。
端末エミュレータ側が想定する幅と合わないと、テキストブラウザLynxなどで、文字が重なって読みにくいので、 UAX#11のEastAsianWidth.txtにある幅になるべく合わせています。
- EastAsianWidth.txtでNarrowなのにBIZ UDゴシックではWideな文字も、FontForgeで半分幅に縮小しています。
BIZ UDゴシック内のEast Asian Ambiguous文字をFontForgeで半分幅に縮めたもの。 (ただし、元々半分幅に収まっている文字は、縮めずに半分領域をそのまま使用。)
一部文字はなるべく縦線が細くならないように幅を縮めていますが、 それ以外の文字は単に縮めているので、縦線が細めです。 丸数字等が縦長です。
- EastAsianWidth.txtでNarrowまたはAmbiguousで、BIZ UDゴシックに含まれない絵文字で、NotoEmojiにある文字に関して、FontForgeで半分幅に縮小して取り込んでいます。 (でないと、fallbackフォントでWide幅で表示される場合が多いようなので)
(wslttyでの表示例。UDEAWNnフォントに含まれない文字は灰色背景。fallbackフォントで表示されている。)
UDEAWNnで取り込み対象にする絵文字に関して、Noto Emojiのかわりに Noto Emoji SVG を使った版です。
- 絵文字が、黒白表示の際に黒が多くて少し見やすい印象。
取り込み対象にする絵文字に関して、主に EmojiOne Color. Black and White version にある文字を使った版です。
- 絵文字が、Noto Emojiよりも見やすい印象。
- EmojiOneに含まれずNoto Emojiには含まれる絵文字4文字は、Noto Emojiから取り込み。
- U+20E3(combining enclosing keycap)がつぶれて、中の文字が見えないので、Noto Emojiから取り込み。
BIZ UDゴシック内のEast Asian Ambiguous文字の多くをIllusion-Nフォントにしたもの。
East Asian Ambiguous文字に関して、
- BIZ UDゴシックで元々半分幅に収まっている文字は、半分領域をそのまま使用。
- Illusion-Nに含まれる文字は、Illusion-Nに置き換え。
- Illusion-Nに含まれない文字は、FontForgeで半分幅に縮小。
UDEV Gothic の生成スクリプトを改造。
East Asian Ambiguous文字のリストは以下を参考に使用。 https://github.com/uwabami/locale-eaw-emoji/blob/master/EastAsianAmbiguous.txt
wslttyデフォルトだと、ローマ数字(Ⅲⅳ等)の表示幅が75%に縮められて少し読みにくくなるようなので、
回避したい場合は、設定ファイル(%APPDATA%\wsltty\config
)に、CharNarrowing=100
を追加。
EastAsianWidth.txtに合わせてNarrowにすると、一部の絵文字が、Vimが想定する表示幅と合わなくなるようなので、
UDEAWNの幅に合わせるには、
cellwidth_udeawn.vimをvimの'runtimepath'/plugin/
に置いてください。
(参考 https://github.com/rbtnn/vim-ambiwidth )
- OS: Ubuntu 22.04
- Tools
- ttfautohint: 1.8.3
- fonttools: 3.44.0
- fontforge: 20201107
sudo apt-get install ttfautohint fontforge python2 python2-pip-whl
python2 /usr/share/python-wheels/pip-20.3.4-py2.py3-none-any.whl/pip install --no-index /usr/share/python-wheels/pip-20.3.4-py2.py3-none-any.whl
python2 -m pip install fonttools
python3 -m pip install ttfautohint-py
./make-n.sh
./make.sh
pyftmerge
やttx
は、$HOME/.local/bin
に入るので、
PATHに$HOME/.local/bin
を入れている想定。