フォントの話
今回はフォントについて書いてみようと思います。
フォントとは何でしょう?
Wikipediaの説明文を要約すると画面に表示したり印刷するための書体データという事になりますね。Wikiの説明文分かりやすいですね。流石です。
書体データに含まれる情報として基本的なところは下記になります。
文字の形
文字の大きさ
文字の並べ方
フォント作成者の、このフォントはこういった感じで文字を並べてほしい、という情報です。その情報に従って文字を並べることでフォント作成者が意図したレイアウトでの文字の並びが実現できます。
フォントによっては追加の情報が提供されます。様々な情報がありますが、その一部を列挙します。
言語が異なる文字との揃え方
特定の文字が隣り合う場合の文字の並べ方(カーニング)
特定の文字が隣り合う場合の文字の結合
縦書きの時の文字の揃え方
特定の文字が隣り合う場合の文字の並べ方を調整することをカーニングと言います。詳細はウィキペディアのページを参照していただければと思いますが、普通に横に並べただけでは文字の間が開きすぎてしまう、もしくは近すぎてしまうのを調整し、読み手が文字を見やすいようにするためのものです。
フォントにそういった情報が含まれていない場合でも、文字の形を解析して自動的に文字間を調整する事も出来ます。多くの印刷用ソフトウェアや一部ウェブブラウザでも対応しています。
これら追加のフォント情報を適用する事で、フォント作成者の思いを更に明確に再現し、文字をより美しく並べることができます。侘び寂びの世界の話になってしまうかもしれませんが、こういった細かいところのこだわりは私は大好きです。
ただ、これらの情報全てを受け止め反映しようとすると処理コストが掛かってしまいます。処理速度を重視するのか、出来上がりの質を重視するのかで、利用する情報を取捨選択する必要があるでしょう。開発コストや評価コストも無視はできません。
ところで、フォントの扱いは利用するプログラミング言語やソフトウェアにより違いがあります。場合によっては同じ製品や言語内でもバージョンによって違いが出ます。
余談ですが、弊社にはSVFという製品があります。詳細については下記を参照ください。
https://www.wingarc.com/product/svf/
SVFではVer.10.1以降より、フォントファイルから直接情報を取得して文字の処理を行う機能を追加しました。(フォント情報の取得方法のモード2)
https://cs.wingarc.com/manual/svf/svf10/ja/svf-2066343.html
フォントの基本的な情報の中の文字の大きさや並べ方に関する情報をフォントファイルから直接取得して利用しています。この機能追加により、利用する言語や言語のベンダーによる文字出力のずれの心配がほぼ無くなります。
文字を美しく並べるための情報がフォントには詰まっています。
フォントに対する作成者の思いを可能な限り再現し、綺麗な文字の並びを実現したいものです。
フォントファイルについての詳細は下記のページで参照できます。
TrueType
OpenType font file