なんでやねんDTP このページをアンテナに追加 RSSフィード Twitter

2011-10-03 欧文スペースの字幅と欧文ベースラインの判別方法 このエントリーを含むブックマーク このエントリーのブックマークコメント

某掲示板の質問の中で、本題と関連して「欧文スペースの字幅がわからない」旨の書き込みがあったので、簡単な方法を紹介しておこうと思う。

ここからは長ーい前振り……もっと簡単な方法をご教示頂いたので後半で提示する。ついでに欧文ベースライン位置の読み取りも可能みたい……。


●欧文スペースの字幅


以下のような例を用意し、「オブジェクト/オブジェクトサイズの調整/フレームを内容に合わせる」を実行した。


f:id:works014:20111003105958j:image:w530


結果、1行目の例のようにテキストフレーム内に欧文スペースだけを打ち込んで、「オブジェクト/オブジェクトサイズの調整/フレームを内容に合わせる」を実行してもフィットはしてくれないが、2行目の例のように、和字で挟んでやるとフィットする。


f:id:works014:20111003105959j:image:w530


このフレームサイズをパネルから読み取って、和字の2em分を差し引けば欧文スペースの字幅がわかるという簡単な理屈。


f:id:works014:20111003110000j:image:w530


この場合、11.665mmから20Q*2字分の10mmを引けば、残り1.665mm。これが20Qの場合のA-OTF リュウミン Pr5 R-KLの欧文スペースの幅。

つまり、20Q(5mm)に対して1.665mmだから1.665/5=1/3emということになる。

コメント欄でご指摘いただいたことを追記しておく:欧文スペースを3つ入力しても14.995mmとしかならないが、欧文スペースの代わりに1/3スペースを3つ入力するとピッタリ15mmとなる。あくまでも1/3emと考えるべき(丸める必要があったのか?…不思議)。

さらに、コメント欄でご指摘いただいたように、333/1000emという設定なら当然の結果ですね。上に書いた「丸める必要」云々は甚だ見当はずれ…申し訳ありません。

で、ヒマなので以下のように主な書体で確認して一覧表でも作成しようか……


f:id:works014:20111003110001j:image:w530

  • 一部の書体は同一ファミリーであっても違いがあるので注意が必要*1

と思って twitter でちょっと呟いたところ……id:NAOI さんから


f:id:works014:20111003110002j:image:w530


とのご指摘が……知りませんでした……。


ということで、確認する……


f:id:works014:20111003110003j:image:w530

  • ご教示のとおり、X座標には「1.665mm」と表示されている
  • 下はイワタ明朝オールド Pr6-R、書体により欧文スペースの幅は異なるということ

●欧文ベースラインの位置


ここで、Y座標に注目すると共に4.4mmとなっている。

20Q(5mm)に対して4.4mm……うーん、どこかで見覚えのある比率……


5mm*0.88=4.4mmであることから、これはどうも欧文ベースラインの(仮想ボディの上端からの)位置*2であるようだと見当がつくハズ*3


ということで、欧文ベースラインの位置が異なっていることが既に明らかなグレコ Std-Mでの表示を見てみると……


f:id:works014:20111003110004j:image:w530


以前の記事で算出したとおり、仮想ボディの下端から17.8/100の位置、つまり上端から82.2/100の位置が表示されている(5mm*0.822=4.11mm)。


上記ふたつの方法が示す数値はあくまでも当該テキストフレーム内での座標なので、1行目の1字目である必要があり、その直後にカーソルがある時の座標を読み取ること *4

*1:3列目3行目までと以降の差は画面でも顕著

*2:一般的な和文フォントの欧文ベースライン位置は仮想ボディの下端から12/100、つまり上端からは88/100

*3:蛇足になるが……この場合に普通の和字を入力して座標を見ると「X: 5mm/Y: 4.4mm」となる

*4:もちろん、インデントマージンの類いも「0」である必要があるのは言わずもがな……

三島梅花藻三島梅花藻 2011/10/03 14:26 欧文スペースだと1.665mm
1/3スペースだと1.667mm
欧文スペースは何故かぴったり3分の1じゃないんですよね。なんででしょう?

works014works014 2011/10/03 14:37 >三島梅花藻さま まいど、ありがとうございます。
へぇー、それは気付きませんでした……。
確かに20Qで3つ入れても差し引き4.995mmとしかなりませんが、1/3スペースなら5mmピッタリになりますね。
ちょっとだけ追記しておきます。

五月 貴五月 貴 2011/12/16 18:12 100Qでお調べになると分かりやすいかと思いましたが、如何でしょうか?

works014works014 2011/12/17 12:29 >五月 貴さん
ありがとうございます。
確かに……
いっそのこと、単位をすべてポイントにして100ptにすればイイですねぇ。

ものかのものかの 2013/02/21 11:46 ちょっと気になったので調べました。
モリサワ、ヒラギノ、小塚のいずれにも
1/3スペース(U+2004)は cmap にありません。
なので、アプリ側でU+2004をほとんど1/3ぴったりの字幅にしている気がします。

works014works014 2013/02/21 12:42 >ものかのさん ありがと…
了解。
あの辺りのスペースはアプリの機能として…
という感じで理解するようにすればイイのでしょうかね。

ものかのものかの 2013/02/21 13:33 そうだと思います。
あの辺りのスペースは、分散禁止スペース以外でも「前後で改行されない」といった
ヘンな(困った)振る舞いをしますし、アプリの独自機能だと思います。

ものかのものかの 2013/02/21 15:18 追記:欧文スペースの「約1/3em」について

和文OpenTypeフォントはほとんどが 1000 UPM(units per em)です。1em=1000 。
そして、欧文スペースのグリフ(CID=1)の字幅は、手近で調べてみると以下のようになります。
・リュウミン: 333
・ヒラギノ: 333
・小塚: 240
これはグリフに実際に設定されている数値です。

「約1/3em」はイコール「333/1000em」。
字幅の数値は整数値なので、1/3 ちょうどにはできないのだと思います。

(でも、情報パネルの数値は、ポイント単位でも謎の端数がでますね…)

works014works014 2013/02/21 16:14 >ものかのさん
333/1000emに設定してあるので1/3丁度にはできない…
なるほど当然のこと…丸める云々は見当はずれですね。
よーーーく理解できました。ありがとうございました。