RE: 長体や平体における全角の概念について

小林様

>>仮想ボディが、プロポーショナルでなく、長体・平体になった場合には、その矩形の仮想ボディそのものが、全角となると考えます。
> この発想は,もっぱら説明のためのものですか,実際の処理にも参照されるものですか.

私はその考え方が最も合理的だと考えましたが、Natが「ロジック的には正体の「全角」と変わらない」と書いていましたので、現実にはまだその考えは実装されていない。ということになるかもしれません。[Nat, you may want to say something here.]

> 実際の処理にも参照されるとすれば,プロポーショナルでなく,長体・平体であるという情報は,どう提供されますか.

OpenTypeの'BASE'テーブルの中でBaseline tagを用いて長体・平体の全角の情報をフォントの中に記述することが可能です。ところが、これまで全角正方形の仮想ボディのフォントが大多数を占め、その種の情報をもつ必要がなかったこともあり、フォント側も、アプリケーション側もこの情報を具体的に有効に活用している事例は少ないのではないかと推測します。(この点については、Natの方が詳しいと思います)。[Nat, please make some comments here, if possible.]

> そもそも仮想ボディの情報は,フォントは持っているのですか.それはフォントというまとまりで持っているのか,個々の文字が持っているのか.個々の文字が持っている場合は,その基準はどう計算されますか.

フォント全体で、文字サイズの基準となる大きさをOpenTypeの'head'テーブル中のunitsPerEmに記述します。これが、1,000だと、全角は1,000ユニット角、2,048だと2,048ユニット角となります。この情報が文字の大きさの基準となります。そのため、この情報は長体・平体の場合でも変わりません。また、同じ理由で、字送り方向と直交する方向の全角の上下(または左右)辺の距離は、このunitsPerEmと等しくなります。

> また,全角の仮想ボディを変形した場合と,もともと全角の仮想ボディを持っていなく,はなから長体の場合では,その情報は,仮想ボディの提供される方はどうなりますか.同じですか,別ですか.

文字の大きさを指定通りに印字するためには、最低でも、正方の全角が何ユニットの高さと幅をもっているかを示す情報(上記のunitsPerEmの情報)は不可欠で、これはどんなフォントにも書かれています(あるいは、フォント側に情報が無い場合は、例えば、専用システムなどでは、使う側のシステムが決め打ちで想定した値が使われ、フォント側はそれに合うようにグリフの大きさを合わせて設計する必要があります)。長体のグリフを多く含むフォントが長体の全角情報をもっていない場合でも、個々のグリフには固有の字幅が設定でき、その設定された字幅どおりに送られ印字されます。長体の情報を提供する方法として私が考えられるのは、上に述べた方法です。

> 次に和文フォントはアラビア数字の字形も持っています.これらは漢字や仮名より,字幅が狭くなっています.この場合は,どうなりますか.仮名だけを狭くした場合も同様な問題があります.アラビア数字の全角の基準は変わるのですか,それとも変わらないのですか,変わらないとすれば,全角という基準は,どこで提供されるのですか.

上でも触れましたが、個別のグリフの形状や字幅と、全角の寸法とは直接関係はないと思います。プロポーショナルの数字や欧文は、そのグリフごとに決まった字幅で送られます。全角の仮想ボディの寸法が影響するとすれば、例えば、長体の全角の横幅が文字サイズ(字詰め方向と直交する方向の長さ)の80%のフォントで、実際に80%の字幅をもつグリフの後ろに、アプリケーションによって半角のスペースが挿入される場合を仮定した場合、長体の情報がフォント側とアプリケーション側で共有された場合には、半角スペースも長体になります。しかし、フォント側の全角に関する情報によって、各グリフそのものの字幅や形が影響を受けることはありません。80%よりも広い字幅のグリフも狭いグリフも、グリフごとに決められた字幅で送られ、字幅が変わったり、形が変形するようなことはありません。

と、述べてきましたが、現実にはまだフォント側にもアプリケーション側にも、典型的な長体・平体フォントは多く実装されていないため、上に私が述べた「考え方」が現実に実現されているとは言えません。また、現在では横組と縦組の両方で字送り方向でcondensedな書体に対応した日本語のcondensedフォントはまだ作られていません(横用と縦用とで異なるグリフを用意する必要があるからです)。

> 説明のためのものであるとすれば,それはどんな場合に必要とされますか.

それは、現状でフォント側に正方・長体の場合を含めて全角の情報を持たせる方法を説明する場合だと考えます。

山本
[P. S. Nat, if there's anything incorrect in what I wrote above, please correct me. Thanks. --Taro]

Received on Friday, 6 October 2023 09:32:34 UTC