質問: 何気ななく下記UIで`40`と設定してある`Size`が`pointSize`だと思いますが... これはフォントでいうどこのサイズのことなのでしょうか? !画像の説明をここに入力 質問背景としては、デザイナーとのコミニケーションを円滑にするためです。 「行間」や「フォントサイズ」などの日本語の単語を使っていては細かい調整のときにお互いにコミニケーションミスが発生しそうになったため、きっちり知りたいです。 > > The receiver’s point size, or the effective vertical point size for a font with a nonstandard matrix. > > > とありますが、`effective`とは何を示しているのか、わかりません。 に、`Ascent`, `Descent`, `Line gap`等ありますが、`pointSize`がありません。 下記ソースは自分でなにか探ろうと書いてみたものですが、出力された数値から一体なんであるか推測することができませんでした... ソース --- ``` class ViewController: UIViewController { @IBOutlet weak var hogeLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. print(hogeLabel.font.pointSize) print(hogeLabel.font.ascender) print(hogeLabel.font.descender) print(hogeLabel.font.lineHeight) print(hogeLabel.font.lineHeight / hogeLabel.font.pointSize) } } ``` 出力結果 ---- ``` 40.0 38.0859375 -9.6484375 47.734375 1.193359375 ```
回答: ざっくり言うと、フォントを描画するために必要な高さがフォントのポイント数です。 ただし、フォントサイズが同じでもポイントで示される高さの一番下からベースラインまでの距離が同じとは限りませんし、タイポグラフィやカリグラフィー用フォントには、ポイントサイズをはみ出して描画されるフォントもあります。 ベースラインはABCabcなどの文字の一番下を揃えるためのライン(ノートで言う罫線)相当のものになり、`g`や`y`など、ベースラインから下にはみ出す部分の高さを`Descender`、ベースラインから一番高い部分までの高さを`Ascender`、大文字の一番高い部分までの高さを`Capital Height`、小文字の`c`や`x`などの高さを`x-height`といいます。 ただし、これは欧文フォントにおいての主なルールで、欧文フォントとのバランスを考慮し、日本語などのフォントはベースラインより少し下にはみ出します。 この辺はAppleが規定しているわけではなく、Adobeやモリサワなどのタイプセッター会社がフォントファイルのフォーマットを決めたときに規定した数字なので、より詳しくはフォントデザイン会社の説明や`.ttf`, `.otf`のフォーマットを掘り下げないと正確なことは把握出来ない部分もあり、非常に広範囲になりここでは答えきれません。 質問では高さ方向に意識が行っていますが、X方向にも、fに続いてiが来たら、fの縦棒の始点の下に短い縦棒を引いて、fiと読ませる合字や、AVと続いたら隙間が開きすぎるため、特定文字の連続の場合は字間詰めを行うための数字もフォントファイルには規定されていたりと、本が一冊書けそうな量になってしまうので、この辺でご容赦下さい。