TrueType font の情報
7/10 訂正
元の記事はPANOSEのガイドを読み進めるうちに、ちょっと怪しいということがわかり始めてきました。
元の記事がいい加減だったのは間違いないですが、そもそも、ttfdumpは、Family Kindに対応していないということを知らなかったということです。
PANOSEによるとFamily Kindには次の種類があります*1。
- Text and Display (通常の文字)
- Hand Written(手書き風文字)
- Decorative(飾り文字)
- Pictoral(絵文字、記号、symbol)
これらの種別に応じて、格納された情報が異なるのですが、ttfdumpの出力は対応していません*2。また、少なくとも、「記号(=pictoral)」に対しては、異常終了していることがわかっています(エラー127)。
現在使っているttfdump(v.0.5.5)は、kakuto3.exe 0.76に含まれるものですが、Microsoftが配布するfonttoolsのttfdumpも同一のもので、残念ながら替えが利きません・・・というのは間違いでした。
Kakuto3.exe0.76のttfdump
True Type Font File Dumper: v 0.5.5 Copyright 1996-1998 ollie@ms1.hinet.net
Microsoft Fonttoolsのttfdump
; TrueType v1.0 Dump Program - v1.8, Oct 29 2002, rrt, dra, gch, ddb, lcp, pml ; Copyright (C) 1991 ZSoft Corporation. All rights reserved. ; Portions Copyright (C) 1991-2001 Microsoft Corporation. All rights reserved.
(でも、)表示が別物なので、代替が利きません・・・ということで、別の記事へ飛びます。
(元記事)
ttfdump を使ってTrueType フォントのベンダー名(vendor)、フォント名、ウェイト(weight)、スタイル(font style)を引っ張り出すbash+awkスクリプト。
#! /usr/bin/sh font_path='iwp3rm.ttf' # ベンダ名 awk_script=' BEGIN { vendorname=""; } /Name table *0\./ { entry=1; } /Name table *1\./ { entry=0; } entry && />/ { vendorname=vendorname gensub( /^.+ *> *(.+)$/, "\\1", "g" ); } END { print vendorname; }' ttfdump -t 'name' $font_path | awk "$awk_script" # フォント名 awk_script=' BEGIN { fontname=""; } /Name table *1\./ { entry=1; } /Name table *2\./ { entry=0; } entry && />/ { fontname=fontname gensub( /^.+ *> *(.+)$/, "\\1", "g" ); } END { print fontname; }' ttfdump -t 'name' $font_path | awk "$awk_script" # ウェイト awk_script='/usWeightClass/ {print gensub( /^.+'"'"'(.+)'"'"'$/,"\\1","g");}' ttfdump -t 'OS/2' $font_path | awk "$awk_script" # スタイル awk_script='/fsSelection/ {print gensub( /^.+'"'"'(.+)'"'"'$/,"\\1","g");}' ttfdump -t 'OS/2' $font_path | awk "$awk_script"
例えば、イワタ中丸ゴシック体V3(iwp3rm.ttf)だと、
Iwata Engineering Co.,Ltd. RGothIWA-Md-V3 Normal Regular
隔靴掻痒
TeX(kakuto3.exe0.76)には、fc-・・・というコマンド群があります(font command)。それを使えば、・・・
$ fc-query.exe /cygdrive/c/Windows/Fonts/iwp3rm.ttf Pattern has 20 elts (size 32) family: "RGothIWA-Md-V3"(s) "イワタ中丸ゴシック体V3"(s) familylang: "en"(s) "ja"(s) style: "Regular"(s) stylelang: "en"(s) fullname: "RGothIWA-Md-V3"(s) "イワタ中丸ゴシック体V3"(s) fullnamelang: "en"(s) "ja"(s) slant: 0(i)(s) weight: 80(i)(s) width: 100(i)(s) foundry: "unknown"(s) file: "/cygdrive/c/Windows/Fonts/iwp3rm.ttf"(s) index: 0(i)(s) outline: FcTrue(s) scalable: FcTrue(s) charset: 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 005361a1
$ fc-list.exe|grep イワタ GothIWA\-Bd\-V3,イワタ太ゴシック体V3:style=Regular GothIWA\-Hv\-V3,イワタ特太ゴシック体V3:style=Regular MinIWA\-Th\-V3,イワタ中細明朝体V3:style=Regular MinIWA\-Md\-V3,イワタ中明朝体V3:style=Regular MinIWA\-Hv\-V3,イワタ特太明朝体V3:style=Regular MinIWA\-Bd\-V3,イワタ太明朝体V3:style=Regular MinIWA\-Lt\-V3,イワタ細明朝体V3:style=Regular RGothIWA\-Md\-V3,イワタ中丸ゴシック体V3:style=Regular GothIWA\-Dm\-V3,イワタ中太ゴシック体V3:style=Regular
・・・もう少し情報を出して欲しいです。foundryとvendorは違うかも知れませんが、weight、slantなど数値表記というのが惜しいです。