このページの本文へ

前へ 1 2 次へ

Windows Info 第195回

さらに開発が進む新コンソール「Windows Terminal」

2019年10月27日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回は8月に紹介したWindows Terminalだが(「Windows 10向けの新しいコンソール「Windows Terminal」の新バージョンを試す」)、その後も開発が続き、機能が充実してきた。大きな変更としては、Cascadia Font対応、jsonスキーマ対応、カスケード設定などがある。

開発が進むWindows Terminal。パッと見はわかりにくいが、タブの角が丸くなるなど、細かい部分の改良も進むが、設定関連の改良も大きい。背景の緑やCMDの文字は、プロファイル指定でカスタマイズしたもの

プログラミング向けの新等幅フォント「Cascadia Font」

 Cascadia(カスケーディア)とは、Windows Terminalの開発コード名で、Cascadia Fontは、Windows Terminalと同時に開発が進んでいる「プログラミング向け」の等幅フォントだ。

 最大の特徴は、プログラミングで利用する2文字の記号を組みあわせてわかりやすい表示にしてくれる「プログラミング・リガチャー」機能だ。

Cascadia Fontに定義されているプログラミングリガチャー。記号の組み合わせが矢印や数学記号として表示されるようになる

 リガチャーとは、文字フォントの特定の並びを別の文字表示として置き換えるもの。たとえば、欧文フォントなどでは、「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データの名前の補完や値の候補、カンマや波括弧、角括弧のエラーなどを検出して表示できる。

Visual Studio Codeは、jsonスキーマに対応しており、profile.json中に定義されたURLからスキーマを入手して、名前や値の補完、解説などを表示する

 また、10月のアップデートからは、WSL/WSL2のディストリビューションのインストールを検出して自動でプロファイルを登録する機能が搭載された。9月までのバージョンは、Windows Terminalのインストール時にのみ登録が行われ、その後にインストールしたWSL/WSL2ディストリビューションに関しては手動で登録する必要があった。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン