NSFont 字体大小与字体指标有何关系
How does NSFont font size relate to the font metrics
本页的图 6.1 显示了您可以从 NSFont 获得的字体指标:
https://developer.apple.com/library/archive/documentation/TextFonts/Conceptual/CocoaTextArchitecture/FontHandling/FontHandling.html
如果我创建一个大小为 256 的 Arial 字体,我得到以下值:
nsfont pointSize 256
nsfont ascender 231.75
nsfont descender -54.25
nsfont leading 8.375
nsfont capHeight 183.375
nsfont xHeight 132.75
我不明白字体大小 (256) 与指标的关系。我本来希望字体大小等于上升加上下降或者可能等于 Cap 高度。感谢您的帮助。
让我们来看看macOS上的Arial字体。使用 FontForge(或任何其他工具)打开它并查看指标。
- Em 大小 2048(又名 Em 方形,UPM = 每 em 的单位,...)
- 赢得攀登 1854
- 赢得血统 434
- 大写高度1467
- X 高度 1062
- ...
简化说明:
- Em 大小 - 假设它是一个容器,每个字符都将在其中绘制
- 您可以找到具有 1000、1024、2048 等值的字体
- 其他指标(上升,...)是相对于 em 大小的单位
- 例如上升 - 1854 / 2048 = 0.905...
- 当您请求 256pt 字体大小时,ascent 为 0.905... * 256 = 231.75
macOS 如何获取您列出的所有这些值:
- 上升 = (1854 / 2048) * 256 = 231.75
- 下降 = -(434 / 2048) * 256 = -54.25
- 大写高度 = (1467 / 2048) * 256 = 183.375
- ...
I would have expected the font size to be equal to the ascent plus the descent or maybe equal to the Cap height.
没有。当您要求 256pt 字体大小时,您基本上是在说您想将 Em 大小的容器缩放到 256pt。其他一切都取决于字体本身的指标。这因字体而异。
本页的图 6.1 显示了您可以从 NSFont 获得的字体指标: https://developer.apple.com/library/archive/documentation/TextFonts/Conceptual/CocoaTextArchitecture/FontHandling/FontHandling.html
如果我创建一个大小为 256 的 Arial 字体,我得到以下值:
nsfont pointSize 256
nsfont ascender 231.75
nsfont descender -54.25
nsfont leading 8.375
nsfont capHeight 183.375
nsfont xHeight 132.75
我不明白字体大小 (256) 与指标的关系。我本来希望字体大小等于上升加上下降或者可能等于 Cap 高度。感谢您的帮助。
让我们来看看macOS上的Arial字体。使用 FontForge(或任何其他工具)打开它并查看指标。
- Em 大小 2048(又名 Em 方形,UPM = 每 em 的单位,...)
- 赢得攀登 1854
- 赢得血统 434
- 大写高度1467
- X 高度 1062
- ...
简化说明:
- Em 大小 - 假设它是一个容器,每个字符都将在其中绘制
- 您可以找到具有 1000、1024、2048 等值的字体
- 其他指标(上升,...)是相对于 em 大小的单位
- 例如上升 - 1854 / 2048 = 0.905...
- 当您请求 256pt 字体大小时,ascent 为 0.905... * 256 = 231.75
macOS 如何获取您列出的所有这些值:
- 上升 = (1854 / 2048) * 256 = 231.75
- 下降 = -(434 / 2048) * 256 = -54.25
- 大写高度 = (1467 / 2048) * 256 = 183.375
- ...
I would have expected the font size to be equal to the ascent plus the descent or maybe equal to the Cap height.
没有。当您要求 256pt 字体大小时,您基本上是在说您想将 Em 大小的容器缩放到 256pt。其他一切都取决于字体本身的指标。这因字体而异。