1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第179回 合成文字のはんらん CHAPTER Ⅱ

マイナビニュース / 2024年8月16日 12時0分

画像提供:マイナビニュース

さて、今回は前回の続きで、プログラムで合字を制御するところを見ていくことにしよう。Wordでは、合字の制御が細かくできなかった。今回は、プログラムを作って、細かくOpenTypeの合字を制御してみる。プログラムは、一応、筆者のGitHubリポジトリに置いた。コードを直接書き直して動かすものなので、プログラム自体は、さほど面白いものでもない。

作成したのは、.NETのWPF(Windows Presentation Foundation)プログラムで、Visual Studio 2022で作成を行った。もともとのプログラムの意図は、Windows TerminalのCascadiaフォントのプログラマ向け合字(Coding Ligature)、について調べるものだった。

プログラムとしては、4つの同じ文字列に対して、4つの合字特性

liga 標準合字
clig コンテキスト合字
dlig 任意の合字
hlig 歴史的合字

と“calt”(Contextual Alternates。コンテキスト代替)を指定して、表示させるもの。比較用に別のフォントで同じ特性指定を行うようにしてある(写真01)。

Cascadia Codeフォントでは、プログラマ向けに「!=」を「≠」などとして表示する機能がある。等倍フォントなので、見た目は、1文字(グリフ)だが、2文字分の範囲に表示される。

Cascadia Codeフォントプロジェクトのリポジトリにある解説(Cascadia CodeプロジェクトリポジトリのREADME.md)には、この機能は、“Cording Ligature”とあるが、OpenType上の特性(Feature)は、“calt”だった。

前掲の画面写真では、5番目のみCording Ligatureになっている。後半の“x =”の後ろでも、“www”の上辺がカーブしている、あるいは“***”の中央のアステリスクが少し上に配置されている。上は、純粋なCascadia Codeフォントで、下は、そのバリエーションの1つでNerdフォントのシンボルを含むもの。GitHubやGimp、Linuxなどの「キャラ」文字グリフが含まれている。

これを改良して、合字の表示を制御させてみたのが、(写真02)である。Cascadia Codeを表示したものとの違いは、フォントサイズや例示する文字列など。簡単なチェック用に作ったため、Visual Studioを動かしたまま、コードを書き換えて表示を変えている。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください