NSFontManagerを用いて、指定フォントのウェイト(太さ)を上げたり下げたりする処理ができますが、実際にやってみると「見えなかったもの」が見えてきます。
macOSには「ヒラギノ角ゴシック」のW0(PostScript名:HiraginoSans-W0)からW9(PostScript名:HiraginoSans-W9)まで異なるウェイトのフォントがインストールされています。そこで、W0から順次W9までウェイトを上げる処理を行なってみると、「ヒラギノ角ゴシックW2」にウェイトが割り振られていないことがわかります。
バグなのか、意図的なものなのか……多分バグだと思うのですが……。
AppleScript名:PostScript名で指定のフォントのウェイトを上げるループ.scptd |
— – Created by: Takaaki Naganoya – Created on: 2024/10/19 — – Copyright © 2024 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use framework "AppKit" use scripting additions property NSFont : a reference to current application’s NSFont property NSFontManager : a reference to current application’s NSFontManager set aName to "HiraginoSans-W0" set aFont to current application’s NSFont’s fontWithName:aName |size|:9.0 –> (NSCTFont) "HiraginoSans-W0 9.00 pt. P [] (0x12870af00) fobj=0x11b1e90d0, spc=1.98" set fontM to current application’s NSFontManager’s sharedFontManager() set fRes to fontM’s weightOfFont:(aFont) –> 2 repeat 12 times set fRes to fontM’s weightOfFont:(aFont) log (fRes as number) set aFontName to aFont’s fontName() log aFontName (*2*) (*(NSString) "HiraginoSans-W0"*) (*3*) (*(NSString) "HiraginoSans-W1"*) — <– W2は????? (*4*) (*(NSString) "HiraginoSans-W3"*) (*5*) (*(NSString) "HiraginoSans-W4"*) (*6*) (*(NSString) "HiraginoSans-W5"*) (*8*) (*(NSString) "HiraginoSans-W6"*) (*9*) (*(NSString) "HiraginoSans-W7"*) (*10*) (*(NSString) "HiraginoSans-W8"*) (*12*) (*(NSString) "HiraginoSans-W9"*) set aFont to fontM’s convertWeight:true ofFont:aFont end repeat |
ヒラギノ角ゴシックW2のウェイトを取得したら3が返ってきました。ウェイトがW2とW3で重なっているんですね。
AppleScript名:PostScript名で指定のフォントのウェイトを取得.scptd |
— – Created by: Takaaki Naganoya – Created on: 2024/10/19 — – Copyright © 2024 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use framework "AppKit" use scripting additions property NSFont : a reference to current application’s NSFont property NSFontManager : a reference to current application’s NSFontManager set aName to "HiraginoSans-W2" set aFont to current application’s NSFont’s fontWithName:aName |size|:9.0 –> (NSCTFont) "HiraginoSans-W0 9.00 pt. P [] (0x12870af00) fobj=0x11b1e90d0, spc=1.98" set fontM to current application’s NSFontManager’s sharedFontManager() set fRes to fontM’s weightOfFont:(aFont) –> 3 |
More from my site
(Visited 2 times, 2 visits today)