The Go Blog

Goフォント

ナイジェル・タオ、チャック・ビゲロー、ロブ・パイク
2016年11月16日

発表

golang.org/x/exp/shiny で構築中の実験的なユーザーインターフェースツールキットには、いくつかのテキスト要素が含まれていますが、それらをテストする上で問題があります。どのフォントを使用すべきか? この質問に答えた結果、本日の発表に至りました。それは、Goプロジェクトのために Bigelow & Holmes タイプファウンドリーによって特別に作成された、高品質の WGL4 TrueTypeフォントファミリーのリリースです。

Go(もちろん)と名付けられたこのフォントファミリーには、ノーマル、ボールド、イタリックのレンダリングで、プロポーショナル幅と固定幅の書体が含まれています。このフォントは、特にプログラミングなどの技術的な用途でテストされています。Goのソースコードは、その名前が示す通り、Goフォントで表示すると特に見栄えが良く、句読点などの文字が簡単に区別でき、演算子がきれいに揃って一貫して配置されます。

おそらくGoフォントの最も注目すべき特徴は、そのライセンスです。Goフォントは、Goプロジェクトの他のソフトウェアと同じオープンソースライセンスの下でライセンスされており、高品質のフォントセットとしては異例の自由な取り決めとなっています。

こちらはプロポーショナルフォントのサンプルです…

そしてモノスペースフォント

使用方法

TTFファイルだけが必要な場合は、以下を実行します。

git clone https://go.googlesource.com/image

そして、その後の image/font/gofont/ttfs ディレクトリからコピーしてください。Go(フォント)をGo(ソフトウェア)で使用したい場合は、各フォントが個別のパッケージとして提供されます。プログラムでGo Regularフォントを使用するには、golang.org/x/image/font/gofont/goregular をインポートし、以下のように記述します。

font, err := truetype.Parse(goregular.TTF)

github.com/golang/freetype/truetype パッケージは、現在 truetype.Parse 関数を提供しています。また、golang.org/x の下に、Goプロジェクトの他のソフトウェアと同じオープンソースライセンスでライセンスされたTrueTypeパッケージを追加する作業も進行中です。

フォントの他の珍しい特性を見つけるのは皆さんにお任せしますが、フォントのデザインの概要については、チャック・ビゲローに背景を説明してもらいました。このブログ記事の残りの部分は、彼の回答です。

チャック・ビゲローによるフォントに関する注記

Goフォントは、サンセリフのGoプロポーショナルと、スラブセリフのGoモノの2つのセットに分かれています。

Goプロポーショナルフォント

サンセリフ

Goプロポーショナルフォントは、スクリーン表示用のいくつかの人気のあるフォントと同様に、サンセリフです。スクリーン上の小さなサイズや低い解像度では、一部のサンセリフ書体はセリフ付きの書体よりもわずかに読みやすいという証拠がありますが、大きなサイズでは、少なくともテストされたペアでは、サンセリフとセリフ付き書体の間に有意な読みやすさの違いはありません。[1] (括弧内の数字は、この記事の最後に記載されている参考文献を指します。)

スタイル

Goサンセリフフォントは、「グロテスク」ではなく「ヒューマニスト」スタイルです。これは歴史的な区別であり、美的判断ではありません。HelveticaやArialのような広く使われているサンセリフフォントは、19世紀初頭のサンセリフ書体が「Grotesque」と名付けられ、その名前が一般的になったため、グロテスクと呼ばれます。

Helveticaのようなモダンなグロテスクフォントの形は彫刻されており、滑らかで同化された形をしています。

ヒューマニストのサンセリフは、ヒューマニストの手書き文字とイタリアルネッサンス初期のフォントに由来し、ペン書きの書道の微妙な痕跡を今も示しています。ヒューマニストフォントはグロテスクフォントよりも読みやすいという証拠があります。[2]

イタリック

Goプロポーショナルイタリックは、ローマンフォントと同じ幅のメトリクスを持っています。Goイタリックはローマンの斜体バージョンですが、1つ注目すべき例外があります。イタリックの小文字「a」は、b d g p qのボウル形状と調和するように、筆記体のシングルストーリー形式に再設計されています。このセットでは、直立した形も傾斜によく適応します。筆記体「a」の追加により、イタリックは単純に傾斜したローマンよりも活発に見えます。一部のタイポグラファーは、傾斜したローマンサンセリフイタリックが真の「筆記体」サンセリフイタリックよりも好ましいと考えています。これは、歴史とデザインに部分的に起因しています。[3]

Xハイト

書体のxハイトは、ボディサイズに対する小文字「x」の高さです。Goフォントのxハイトはボディサイズの53.0%で、Helvetica(52.3%)やArial(51.9%)のxハイトよりもわずかに大きいですが、通常の読み取りサイズでは、この違いは通常ほとんど気づかれません。タイポグラファーは、xハイトが大きいほど、小さなサイズやスクリーン上での読みやすさに貢献すると考えています。「印刷サイズ」(特にxハイト)と読み取りに関する研究では、スクリーンでの読み取りや小さなサイズ向けの書体は、xハイトが大きい傾向があることに注目しています。[4]

DIN読みやすさ規格

最近のドイツDIN 1450の読みやすさ規格は、混乱を減らすために文字の形状を区別することを含め、フォントの読みやすさのためにいくつかの機能を推奨しています。Goフォントは、ゼロと大文字Oの注意深い区別、数字1と大文字I(eye)および小文字l(ell)の区別、数字5と大文字Sの区別、数字8と大文字Bの区別によって、1450規格に適合しています。b d p qのボウルの形状は、読みやすいルネサンスの手書き文字の自然な非対称性に従っており、区別を助け、混乱を減らします。[5]

ウェイト

Goプロポーショナルフォントには、ノーマル、ミディアム、ボールドの3つのウェイトがあります。ノーマルウェイトは、バックライト付きスクリーンで鮮明さを保つほど十分な太さがあり、バックライト付きスクリーンは文字の特徴と太さを損なう傾向があります。ミディアムウェイトは、ステムの太さがノーマルの1.25倍で、明るいスクリーンや頑丈なフォントを好むユーザーのために、より頑丈さを追求しています。ボールドウェイトは、ステムの太さがノーマルの1.5倍で、ノーマルウェイトとはっきり区別できるほど十分な太さがあります。これらのGoフォントのCSS数値ウェイトは400、500、600です。CSSでは「Bold」を700ウェイト、600をSemiboldまたはDemiboldと指定していますが、Goの数値ウェイトはステムの太さの実際の比率の進行に一致しています。ノーマル:ミディアム = 400:500; ノーマル:ボールド = 400:600。「Bold」というウェイト名は、通常のフォントの通常の対応するボールドウェイトとしての「Bold」の使用と一致しています。ステムの太さ、ウェイト名、CSS番号付けの関係に関する詳細は[6]にあります。

WGL4文字セット

元々マイクロソフトによって開発されたWGL4文字セットは、非公式の標準文字セットとしてよく使用されます。WGL4には、西欧および東欧のラテン文字に加え、現代ギリシャ語とキリル文字、さらに記号、標識、図形文字が含まれており、合計で650文字以上になります。Go WGL4フォントは、幅広い言語を構成するために使用できます。[7]

ArialおよびHelveticaとのメトリック互換性

Goサンセリフフォントは、標準のHelveticaまたはArialの文字とほぼメトリック互換性があります。Goで組まれたテキストは、HelveticaまたはArialで組まれたテキスト(同じサイズで)とほぼ同じスペースを占めますが、Goはヒューマニストスタイルであるため、異なる外観と質感を持っています。DIN読みやすさ機能を持つ一部のGo文字は、HelveticaまたはArialの対応する文字よりも広いため、Goで組まれた一部のテキストはわずかに多くのスペースを占める可能性があります。

Goモノフォント

モノスペース

Goモノフォントはモノスペースです。つまり、各文字は他の文字と同じ幅を持っています。モノスペースフォントは、コンピューティングの初期からプログラミングで使用されており、その活字のような規則的な間隔がテキストを列と行に整列させるため、今でも広く使用されています。このスタイルは、紀元前5世紀のギリシャ碑文にも見られます。(古代ギリシャ人にはタイプライターやコンピューターのキーボードはありませんでしたが、彼らには偉大な数学者と、彼らのアルファベットを形作った素晴らしい対称性とパターンの感覚がありました。)

スラブセリフ

Goモノフォントはスラブ型のセリフを持っており、頑丈な印象を与えます。

スタイル

Goモノの基になる文字の形状は、Goサンセリフフォントと同様にヒューマニストの手書き文字に由来していますが、モノスペースとスラブセリフが歴史的およびスタイルのつながりを不明瞭にする傾向があります。

イタリック

Goモノのイタリックは、ローマンの斜体バージョンですが、イタリックの小文字「a」は、b d g p qのボウル形状と調和するように、筆記体のシングルストーリー形式に再設計されています。筆記体「a」は、イタリックを単純に傾斜したローマンよりも活発に見せます。多くのサンセリフフォントと同様に、傾斜したローマンスラブセリフフォントは、真の「筆記体」イタリックよりも読みやすいと考えられています。

Xハイト

Goモノフォントは、Goサンセリフフォントと同じxハイト、つまりボディサイズの53%を持っています。Goモノは、xハイトがボディサイズの45%であるCourierよりもほぼ18%大きく見えます。しかし、GoモノはCourierと同じ幅なので、文字ごとの経済性を損なうことなく、より大きな外観が得られます。

DIN読みやすさ規格

Goモノフォントは、ゼロと大文字Oの区別、数字1と大文字I(eye)および小文字l(ell)の区別、数字5と大文字Sの区別、数字8と大文字Bの区別によって、DIN 1450規格に適合しています。b d p qのボウルの形状は、読みやすいルネサンスの手書き文字の自然な非対称性に従っており、区別を助け、混乱を減らします。

ウェイト

Goモノフォントには、ノーマルとボールドの2つのウェイトがあります。ノーマルウェイトのステムはGoノーマルと同じで、文字の特徴やステムの太さを損なう傾向のあるバックライト付きスクリーンで鮮明さを保ちます。ボールドのステムの太さはノーマルウェイトの1.5倍であるため、ボールドモノはボールドGoプロポーショナルと同じステムの太さを持っています。モノスペースのボールドの文字幅はモノスペースのノーマルの幅と同じであるため、同じ領域により多くの黒いピクセルが配置されるため、ボールドモノはプロポーショナルGoボールドよりもわずかに太く見えます。

Goモノは、12ポイントで1インチあたり10文字の「Pica」タイプライタータイプの幅と一致するCourierやその他のモノスペースフォントとメトリック互換性があります。10ポイントでは、Goモノフォントは1インチあたり12文字を組版します。TrueTypeフォントは当然スケーラブルなので、Goモノは任意のサイズで設定できます。

WGL4文字セット

Goモノフォントは、非公式の標準文字セットとしてよく使用されるWGL4文字セットを提供します。WGL4には、西欧および東欧のラテン文字に加え、現代ギリシャ語とキリル文字、さらに記号、標識、図形文字が含まれています。Go WGL4セットの650文字以上は、幅広い言語に使用できます。

参考文献

[1] Morris, R. A., Aquilante, K., Yager, D., & Bigelow, C. (2002, May). P‐13: Serifs Slow RSVP Reading at Very Small Sizes, but Don’t Matter at Larger Sizes. In SID Symposium Digest of Technical Papers (Vol. 33, No. 1, pp. 244-247). Blackwell Publishing Ltd.

[2] Bryan Reimer et al. (2014) “Assessing the impact of typeface design in a text-rich automotive user interface”, Ergonomics, 57:11, 1643-1658. http://www.tandfonline.com/doi/abs/10.1080/00140139.2014.940000

[3] Adrian Frutiger - Typefaces: The Complete Works. H. Osterer and P. Stamm, editors. Birkhäuser, Basel, 2009, page 257.

[4] Legge, G. E., & Bigelow, C. A. (2011). Does print size matter for reading? A review of findings from vision science and typography. Journal of Vision, 11(5), 8-8. http://jov.arvojournals.org/article.aspx?articleid=2191906

[5] Charles Bigelow. “Oh, oh, zero!” TUGboat, Volume 34 (2013), No. 2. https://tug.org/TUGboat/tb34-2/tb107bigelow-zero.pdf https://tug.org/TUGboat/tb34-2/tb107bigelow-wang.pdf

[6] “Lucida Basic Font Weights” Bigelow & Holmes. http://lucidafonts.com/pages/facts

[7] WGL4の言語対応: アフリカーンス語、アルバニア語、アスー語、バスク語、ベラルーシ語、ベンバ語、ベナ語、ボスニア語、ブルガリア語、カタルーニャ語、チガ語、ケルン語、コーンウォール語、クロアチア語、チェコ語、デンマーク語、エムブ語、英語、エスペラント語、エストニア語、フェロー語、フィリピン語、フィンランド語、フランス語、フリウリ語、ガリシア語、ガンダ語、ドイツ語、ギリシャ語、グシー語、ハンガリー語、アイスランド語、イナリサミ語、インドネシア語、アイルランド語、イタリア語、ジョラ=フォニ語、カブベルディアヌ語、カラアリット語、カレンジン語、カンバ語、キクユ語、ルワンダ語、ラトビア語、リトアニア語、下ソルブ語、ルオ語、ルクセンブルク語、ルイア語、マケドニア語、マチャメ語、マクワ・メート語、マコンデ語、マラガシ語、マレー語、マルタ語、マンクス語、メル語、モリシエン語、北ンデベレ語、北サミ語、ノルウェー語ブークモール、ノルウェー語ニーノシュク、ニャンコレ語、オロモ語、ポーランド語、ポルトガル語、ルーマニア語、ロマンシュ語、ロンボ語、ルンディ語、ロシア語、ルワ語、サンブル語、サンゴ語、サング語、スコットランドゲール語、セナ語、セルビア語、シャンバラ語、ショナ語、スロバキア語、スロベニア語、ソガ語、ソマリ語、スペイン語、スワヒリ語、スウェーデン語、スイスドイツ語、タイタ語、テソ語、トルコ語、トルクメン語、上ソルブ語、ブンジョ語、ワルザー語、ウェールズ語、ズールー語

Go Regularのジャバウォッキー

en.wikipedia.org/wiki/Jabberwockyより

ギリシャ語版はリストされていません。代わりに、clagnut.com/blog/2380/#Greekからのパングラム

次の記事: 2016年Goユーザー調査と企業アンケートに参加する
前の記事: Goの7年間
ブログインデックス