このページの本文へ

前へ 1 2 次へ

Windows Info 第443回

Windows Terminalで採用されたCascadia Codeフォントを使うとプログラムを書くとき断然見やすい

2024年08月04日 10時00分更新

文● 塩田紳二 編集● ASCII

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

Cascadiaフォントのfeature(特性)を使う

 OpenTypeには、font feature(特性)とよばれる機能があり、異字体の切り替えや合字パターンの切り替えなどができる。Webページで使うCSSなどでは、細かく指定ができる。しかし、Windows Terminalでは、表示フォントに対して一括しての指定しかできず、切り替えには、プロファイルを作り分けるなどの作業が必要となる。これは、Visual Studio Codeなどでも同じだ。

 以下の表は、ソースコードから抜き出したCascadiaフォントで指定可能なfeatureである。

Cascadiaフォント

 このうち大半のものは、「登録済みタグ」として、OpenTypeの仕様書に定義がある(https://learn.microsoft.com/ja-jp/typography/opentype/spec/featurelist)。ただし、Windows Terminalなどでは、指定しても無効に見える(有効になるテキストの表示ができない)ものがある。

 このうち、効果がはっきりと見えるのは、ss01~ss20の6つのfeatureである。前ページの画面は、ss01~ss20をすべてオフ(標準状態)にしたものだ。

 ss01は、イタリック体の小文字の異字体だ。アルファベットのfやl、s、rなどが異字体になり、かなり筆記体に近くなる。

Cascadiaフォント

ss01、ss02、ss03、ss19、ss20をオンにしたときの表示。ss01ではイタリック体の一部文字が切り替わる。また、ss02で「~=」がノットイコールに、ss19ではゼロが斜線付きのものになる。ss20では、制御文字ピクチャが図案に切り替わる。1ページ目の画面と比較してほしい

 英語のアルファベットだけでなく、アクセント付き文字用のものも用意されている。画面上部のアルファベットzの後ろにあるのは、英語以外の言語やアクセント付きの文字である。

 ss02は、「~=」を「ノットイコール」として合字表示をするもの。一部の言語では、「等しくない」の表記が「!=」ではなく、「~=」を使うもの(Luaなど)がある。このような場合、ss02を有効または1に設定することで、「~=」の合字としてノットイコール合字として表示できる。

 ss03はセルビア文字の異字体、ss19は斜線の入るゼロの異字体(zeroでも指定可能)。ss20は、コントロールコード用のピクチャ文字(コントロールコードの名前に対応する文字)を、グラフィカルな表現に切り替えるもの。

 Cascadiaフォントのコントロール文字のピクチャは、コントロールコード名を2文字で表現したもので、一般的な3文字表記ではない。たとえば、U+0000はNULコードと呼ばれるが、Cascadiaフォントでは、NとLを組み合わせたピクチャで表示される。ss20は、これをグラフィカルなシンボルに置き換えるものだ。

 Windows Terminalでは、OpenType特性はGUI設定(「プロファイル」→「外観」→「フォント機能」)でできる。しかし、現在のWindows Terminalには少し制限があり、すべての特性を記述できない。このため、直接settings.jsonを編集する。

 フォント設定はプロファイルごとにあり、その定義中に以下のように“features”オブジェクトを追加する。

"font": {
    "face": "Cascadia Code, BIZ UDGothic",
    "features": {
        "ss01": 1,
        "ss02": 1,
        "ss03": 1,
        "ss19": 1,         "ss20": 1
        }
},

 Windows Terminalは、デフォルトで合字がオンになっているため、"calt"で有効にする必要はない。逆に、合字を禁止したければfraturesに「"calt": 0,」を指定する。

 VSCodeでもfeatureの指定は可能だ。やはりsettings.jsonに以下の記述を入れることで、合字(calt)とss01からss20までをすべてオンにできる(要再起動)。

"editor.fontLigatures": "'calt','ss01','ss02','ss03','ss19','ss20'",

Cascadiaフォント
Cascadiaフォント

Cascadia Codeをフォントとして指定しただけのものが1つ目の画面。合字やOpenType特定を指定したのが2つ目の画面だ。合字を有効にすると、演算子などが見やすくなる。また、Cascadiaフォントのイタリック体は、通常体(立体)とデザインが異なり、予約語などを表示させても、違いがわかりやすい

 VSCodeでは、言語の予約語などをイタリック体で表示するテーマがある。このような場合、Cascadiaフォントではイタリック体と立体の区別が付きやすい。インターネット上のページには、テーマのイタリック体表示を立体表示に戻す方法などが記述されているが、イタリック体の視認性が高く、立体との区別が付きやすいフォントを使う方が良いと思うのだが……。なお、VSCodeの場合、テーマによる設定の優先度が高いため、合字の有効化やフォント指定には注意が必要だ。

 ちょっとしたプログラムを書くことがあるなら、Cascadia Codeを使ってみると、見た目が違ってくる。等しい、等しくないなどの視認性が高く、注釈なども区別しやすくなる。最近では、色分けするアプリケーションも少なくないが、色をあまり使わない表示が好みなら試してみてほしい。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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