0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Android 12から標準搭載されているNoto Sans/Serif CJKは、chws(Contextual Half-width Spacing)機能に対応しました。これにより、括弧や句読点などの約物のアキが自動で調整されるようになり、より美しい文字組みが実現されています。最近では chws に対応したフォントやテキスト描画システムが増えつつあり、ユーザー側も自然な文字組みを期待するようになっています。

chws に対応していないフォント

chws 対応フォントが増えてきたとはいえ、いまだに対応していないフォントは数多く存在します。例えば、Google FontsからダウンロードできるNoto Sans JPでも、ウエイトごとに個別で提供されている静的フォント(Static Font)は chws に対応していません1

バリアブルフォントが利用できない環境のため静的フォントを使わざるを得ない場面や、そもそも chws に対応していないフォントを使いたい場面は依然としてあります。このようなとき、約物のアキが不自然に残ってしまい、もどかしく感じる開発者は多いでしょう。

chws-tool による解決

任意のフォントを chws 対応させるには、Google Fontsチームが公開している chws-tool が非常に便利です。実際のNoto CJKフォントも chws-tool によって chws 対応が行われているようです。

chws-tool は、指定したフォントファイルを解析し、chws, vchw, halt, vhal といったOpenType機能を追加します。Pythonのパッケージマネージャであるuvを利用している環境であれば、chws-tooluvx コマンドで簡単に実行できます:

uvx --from chws-tool add-chws font-file.ttf

実際に確認

実際に chws に対応していない「Zen Maru Gothic」を chws に対応させてみました。

Zen Maru Gothicのchws未対応・対応の比較。対応後は約物間のアキが調整される。

参考文献

  1. バリアブルフォントの方は chws に対応しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?