Re: 出力したとき、半角で打ったアルファベットと全角で打ったアルファベットの違いはなにか教えてください。

名前: uchiyama
日時: 2003-06-15 09:41:23
IPアドレス: 218.229.55.*

>>19412 斎藤さんのサイトの旧掲示板に、Mac OS Xで、文字送りの量と実ボディのBoundingBoxを 取得する方法を書いたのですが、あまりにも古い記事だったのでなくなっていました。 CIDの番号で取得します。コンパイルは、 gcc -o charwidth -ObjC -framework Cocoa charwidth.c のように行います。 ところで、その昔、奥村さんから、BoundingBoxを元に、左右のサイドベアリングの中点間、 または、中点から左右に25/1000emずつひろげたものをTFMの幅につかってみたらという お話があったときに、Ryumin-Lightでそれを試したものがあります。ただし、これでは、 幅を適当にまるめて少ない数にまとめることはしていません。 中点間を幅にしたもの http://macptex.appi.keio.ac.jp/~uchiyama/ktsume6a.gif 中点+25/10000em http://macptex.appi.keio.ac.jp/~uchiyama/ktsume7a.gif (表示フォントはもちろんRyumin-Lightです) #include <Cocoa/Cocoa.h> #include <stdio.h> #define START 15449 #define END 15455 int main(int argc, char *argv[]) { NSFont *fontAttr; NSGlyph glyphbuf; NSSize size; NSRect rect; int i; NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; fontAttr = [NSFont fontWithName : @"HiraKakuPro-W6" size : 10]; for(i=START; i<=END; i++) { glyphbuf = i; size = [fontAttr advancementForGlyph: glyphbuf]; rect = [fontAttr boundingRectForGlyph: glyphbuf]; //printf("%d %f %f\n", i, size.width, NSWidth(rect)); printf("%d %f\n", i, size.width); } }

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)