• 合成文字のはんらん CHAPTER Ⅰ

OpenTypeなどのフォントには「合字」(Ligature。リガチャー)と呼ばれる機能がある。合字とは、並んだ複数の文字を1つの「グリフ(字体)」にまとめたものだ。よく見かけるのは、小文字fの後ろに来る、「i」、「f」、「l」などの組み合わせで、文字間隔を詰める、あるいは文字をつなげる形のものだ。こうした合字は、一般に文字の端に飾り(これをセリフという)のある可変幅(プロポーショナル。文字の間隔が一定でないもの)のフォントで行うのが基本である。合字の有無はデザイン的な判断が行われ、合字を入れるかどうかはフォントのデザイナー(開発者)次第である。

似たような概念に「カーニング」がある。これは、文字の組み合わせによりフォントの間隔を詰め、アキの部分を調整すること。場合によっては、文字を囲む矩形が重なり合うこともある。前述のfiなどの組み合わせでカーニングを行うことがある。このカーニングは、アプリケーションが文字を表示するときの間隔を調整することで行われる。

活字印刷では、文字間の空きを調整することで見栄えをよくすることが行われており、合字は、そのような場合によくある組み合わせの2文字を1つの活字としたものだ。合字は、印刷技術が登場する以前からあったといわれており、デザイン的なものや、早書きのための略号として使われていたらしい。タイプライタの普及などで、合字の利用は廃れたが、コンピューターによる組版が可能になると合字が復活しはじめた。

Windowsの標準フォントであれば、Times New Romanがセリフのあるプロポーショナルフォントで合字がある。これに対してBookman Old StyleやCenturyフォントは、セリフがありプロポーショナルだが合字はない。また、モノスペース(等幅)フォントのCourier Newは、セリフを持つが合字はない(写真01)。

  • 写真01: Windows 11標準フォントのうちTime New Romanには合字があるが、随意合字になっているようだ。これに対して同じくセリフのあるプロポーショナルフォントBookman Old Styleには合字はないが、カーニングによりfとiの間が詰まっている。またモノスペースフォントであるCourier Newには、合字がなく、カーニングも行われない

現在では、多数の言語への対応が行われており、文字の位置によって字形が変化するような言語でも、合字に似た機能を使う。こうした機能は、OpenTypeのFeature(特性)として定義されていて、合字も特性として指定できるようになっている。

合字という特性を使うのは、アプリケーションであり、どう表示されるのかは、アプリケーション次第である。誤解が多いのは、合字として表示されるグリフは1つだが、文字コード(コードポイント)のレベルでは、分かれたままであることだ。アプリケーションが、並んだ文字に対して、特性を適用して合字などとして表示するのかどうか、どの位置に合字を表示するのかは、アプリケーション次第である。合字になったとしても、コードポイントとしては、別れているため、ワープロソフトなどではカーソル(カレット)は、コードポイント単位で動き、合字の間に表示される。

OpenTypeの合字には、「Standard ligatures(標準合字。liga)」、「Contextual ligatures(コンテキスト合字。clig)」、「Discretionary ligatures(随意合字。任意の合字と訳す場合もある。dlig)」、「Historical ligatures(歴史的合字。hlig)」、「Required Ligatures(rlig)」の5つがある。カッコ内の欧文4文字表記は、OpenTypeの特性で標準的に使われるタグである。

Microsoft Wordでは、4つの合字の組合せである「(合字)なし」、「標準合字」、「標準合字組み合わせコンテキスト合字」、「歴史的合字および随意合字」、「(合字)すべて」の5つの組み合わせのみが指定できる(写真02)。デフォルトは「標準合字およびコンテキスト合字」になっている。

  • 写真02: Wordで文字を選択、右クリックメニューのフォントでダイアログボックスを開く。フォントダイアログの「詳細設定」タブには、カーニングやOpenTypeの合字機能などの設定がある。この設定は、選択範囲の文字に対してのみ有効となる

しかし、合字をどのタイプとして分類するのかは、フォントファイルにより、定義が異なることがある。MicrosoftのWPF(Windows Presentation Foundation。.NETのUIフレームワークの1つ)の「OpenType フォントの機能」にある「合字」の記述では、fi、fl、ffなどを「標準合字」であるとしている。ここのページの説明を見る限り、OpenTypeでは標準合字を指定すれば、fi、fl、ffなどは合字で表示される、と読める。実際、このページで説明に使われている「Pericles」(写真03)というフォントでは、「fi」、「ff」、「fl」は、「標準合字(liga)」に分類されている。また、このフォントでは、随意合字を有効にするとCとOを組み合わせた極端な合字が表示される。同じく、例示に使われている「Palatino Linotype」というフォントでもfの合字は標準合字である。

  • 写真03: WPFの解説にあるPericlesフォントでは、合字の表示が微妙でIの左上の角がわずかに飛びだす。しかし、随意合字を使うとCとOが合字になる。同じく例示に使われているPalatino Linotypeフォントも標準合字でfi、ff、flがつながったリガチャーになる

しかし、Windowsに標準的に含まれているTime New Romanでは、「fi」、「ff」、「fl」の合字は、「随意合字(dlig)」になっている。また、「游明朝」では、欧文フォントも游明朝と指定したとき、「歴史的合字または随意合字」を有効にすると、アルファベットのaとmの後ろに点がつく。そのほか「アルファ」が組文字になる、「ます」が枡形になる(写真04)。Wordに限って言えば、合字に関しては、設定を触らないのが良さそうだが、Time New Romanで合字を使いたいときは触らざるを得ない。

  • 写真04: Microsoft Word(バージョン2407ビルド16.0.17839.20056)で、欧文フォントまで游明朝で指定を行った。このとき、すべての合字を有効にすると、「ます」が枡形となり、aとmにピリオドがつく。また、「アルファ」がUnicodeの組文字(U+3301)になってしまう

しかし、プログラムを作る場合には、そうはいかない。次回はプログラムで合字を制御してみることにする。

今回のタイトルネタは、Raymond F. Jonesの「The Cybernetic Brains」である。“Cybernetic”とはもちろん、Norbert Wienerの「Cybernetics(サイバネティクス)」である。サイバネティクスの書籍が出版されたのが1948年で、この小説の初出(雑誌掲載)が1950年である。

1967年に岩崎書店から、子供向けの「エスエフ世界の名作」シリーズの一冊として「合成脳のはんらん」というタイトルで出版された。当時、このシリーズは、多くの小学校の図書館にあり、筆者も小学生の頃に読んだ。子供向けの抄訳なのだが、翻訳のアレンジが強すぎて、強烈な印象がある。