前回は8月に紹介したWindows Terminalだが(「Windows 10向けの新しいコンソール「Windows Terminal」の新バージョンを試す」)、その後も開発が続き、機能が充実してきた。大きな変更としては、Cascadia Font対応、jsonスキーマ対応、カスケード設定などがある。
プログラミング向けの新等幅フォント「Cascadia Font」
Cascadia(カスケーディア)とは、Windows Terminalの開発コード名で、Cascadia Fontは、Windows Terminalと同時に開発が進んでいる「プログラミング向け」の等幅フォントだ。
最大の特徴は、プログラミングで利用する2文字の記号を組みあわせてわかりやすい表示にしてくれる「プログラミング・リガチャー」機能だ。
リガチャーとは、文字フォントの特定の並びを別の文字表示として置き換えるもの。たとえば、欧文フォントなどでは、「fi」や「WA」といった文字の組合せは、文字間隔を狭めて表示するもの。コンピューターのデジタルフォントでは、別のフォントイメージ(グリフ)に変更して表示する。
プログラミングリガチャーとは、こうした欧文の組版規則ではなく、プログラミングで利用する記号の組合せ、たとえばC言語の「!=」(等しくない)を「≠」などとして表示する機能である。
OpenType/TrueTypeには、表示時にリガチャーを表示させる機能がある。フォントデータに、リガチャーの起動条件とそのときに使うグリフが定義されていていて、フォントレンダリングモジュールがこれを解釈してグリフを置き換える。あくまでも表示の段階(フォントのレンダリング段階)で行なわれるもので、ソフトウェア側からは、あくまでも2文字の表示でしかない。
今年9月に最初のCascadia Fontがリリースされたが、10月には、EU圏などで使われるダイアクリティカルマーク(発音区別符号)のついた文字のグリフなどが含まれ、通常利用も可能になってきた。
なお、Windows Terminalは、従来のコンソールウィンドウ(conhost.exe)と違って、フォントフォールバックに対応しており、指定されたフォントに含まれない文字を表示する場合に、他のフォントファイルに含まれるグリフを表示できる。一般に「絵文字」は、単体でフォントファイルとなっていて、通常のフォントファイルは絵文字のグリフを含まない。このような場合に絵文字の表示が指定されると、フォントレンダリングプログラムは、絵文字を絵文字フォントファイルを使って表示する。
従来の「コマンドプロンプトウィンドウ」などのコンソールウィンドウは、conhost.exeというプログラムが担っているが、conhost.exeはこのフォントフォールバックには対応していなかった。
同様に、欧文のみのフォントが指定されているときに日本語文字などが指定されると、日本語フォントファイルからグリフを持ってきて表示できる。こうした仕組みがあるため、Windows Terminalは、Cascadia Fontを指定していても、絵文字や日本語の表示が可能だ。
ただし、現在のWindows Terminalは、フォントファイルをファミリーとして複数指定することができないため、フォールバック時のフォント選択はWindowsに任されてしまう。欧文フォントと同サイズの日本語グリフを表示するため、少し間の空いたものになってしまう。
通常、こうした場合には、日本語フォントのサイズを基準に欧文フォントのサイズを小さくしたり、日本語フォントの文字間隔を狭めて、バランスを取るのだが、欧文フォントがベースとなり、欧文2文字が日本語1文字という関係を保っている現在のWindows Terminalでは文字間隔が空いてしまう。
jsonスキーマは、テキスト型式であるjsonの形式的な検証や注釈の表示などをするために必要なデータを「スキーマ」として定義するものだ。スキーマは、対象となるjsonデータ形式とは別に定義され、やはりjson形式のデータである。
一般的には、jsonスキーマを使うには、jsonスキーマを解釈できる「jsonエディタ」を使う。Windows Terminalの「jsonスキーマ」対応は、setting.jsonvファイルの先頭にスキーマの位置を示すURLを挿入するだけだ。Windowsには標準ではjsonエディタは含まれないためメモ帳が起動するが、jsonスキーマに対応したjsonエディタ(たとえば、Visual Studio Codeなど)をインストールして、jsonファイルと関連付けすると、Windows Terminalのメニューから設定を選択したときに指定されたjsonエディタが起動する。
jsonスキーマを使って何ができるのかは、jsonエディタに依存する。VS Codeの場合、jsonデータの名前の補完や値の候補、カンマや波括弧、角括弧のエラーなどを検出して表示できる。
また、10月のアップデートからは、WSL/WSL2のディストリビューションのインストールを検出して自動でプロファイルを登録する機能が搭載された。9月までのバージョンは、Windows Terminalのインストール時にのみ登録が行われ、その後にインストールしたWSL/WSL2ディストリビューションに関しては手動で登録する必要があった。
この連載の記事
-
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る - この連載の一覧へ