- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据Apple's Reference manual for TrueType字体文件中,有 45 种不同类型的字体表。检查我在系统上安装的那些 ttf,我确定这些文件中实际存在的表格数量范围为每个文件 12 个到最多 22 个字体表格。
进一步查看 true type 字体文件的结构,它从以下信息开始:
uint32 scaler type A tag to indicate the OFA scaler to be used to rasterize this font; see the note on the scaler type below for more information.
uint16 numTables number of tables
uint16 searchRange (maximum power of 2 <= numTables)*16
uint16 entrySelector log2(maximum power of 2 <= numTables)
uint16 rangeShift numTables*16-searchRange
这让我们有理由相信,对预先计算但完全冗余的字段存在普遍需求 rangeShift
、entrySelector
、searchRange
。它甚至指出它们用于字体表列表的二进制搜索:
The entries for searchRange, entrySelector and rangeShift are used to facilitate quick binary searches of the table directory that follows (source https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html)
考虑添加这些字段的一个正当理由是,确实存在大量字体表,无论如何,这些字段都可以从 numTables
即时计算。
因此,我的问题是,尽管我进行了测试,但确实存在合理预期 true type 字体具有更大数量(例如 >1000)的表格的情况,这意味着是否可能存在问题45 种不同类型的字体表中的任何一种都可以多次出现?
列出的表格如下。
- The 'acnt' (accent attachment) table
- The 'ankr' (anchor point) table
- The 'avar' (axis variation) table
- The 'bdat' (bitmap data) table
- The 'bhed' (bitmap font header) table
- The 'bloc' (bitmap location) table
- The 'bsln' (baseline) table
- The 'cmap' (character code mapping) table
- The 'cvar' (CVT variation) table
- The 'cvt ' (control value) table
- The 'EBSC' (embedded bitmap scaling control) table
- The 'fdsc' (font descriptor) table
- The 'feat' (layout feature) table
- The 'fmtx' (font metrics) table
- The 'fond' (font family compatibility) table
- The 'fpgm' (font program) table
- The 'fvar' (font variation) table
- The 'gasp' (grid-fitting and scan-conversion procedure) table
- The 'glyf' (glyph outline) table
- The 'gvar' (glyph variation) table
- The 'hdmx' (horizontal device metrics) table
- The 'head' (font header) table
- The 'hhea' (horizontal header) table
- The 'hmtx' (horizontal metrics) table
- The 'just' (justification) table
- The 'kern' (kerning) table
- The 'kerx' (extended kerning) table
- The 'lcar' (ligature caret) table
- The 'loca' (glyph location) table
- The 'ltag' (language tag) table
- The 'maxp' (maximum profile) table
- The 'meta' (metadata) table
- The 'morx' (extended metamorphosis) table
- The 'name' (name) table
- The 'opbd' (optical bounds) table
- The 'OS/2' (compatibility) table
- The 'post' (glyph name and PostScript compatibility) table
- The 'prep' (control value program) table
- The 'prop' (properties) table
- The 'sbix' (extended bitmaps) table
- The 'trak' (tracking) table
- The 'vhea' (vertical header) table
- The 'vmtx' (vertical metrics) table
- The 'xref' (cross-reference) table
- The 'Zapf' (glyph reference) table
“字体表”似乎允许其中任意“扩展”,例如有一个标记为 FFTM
的字体表,
"[...] is unique to FontForge. It contains three timestamps: First FontForge's version date, then when the font was generated, and when the font was created. I describe its format here."
https://fontforge.github.io/TrueOpenTables.html
即使是像 FFTM
这样偶尔添加的表似乎也不值得使用 searchRange 等字段。
最佳答案
当 TrueType 在 20 世纪 80 年代末/90 年代初发明时,开发人员不确定随着格式的采用,事情会如何演变。另请记住,当时的处理器速度要慢得多。
事实证明,事实上,很少有字体拥有超过 25 个表格,并且可能没有一个字体能够接近这样的数字,在这种情况下,二分搜索和使用预先计算的字段将在定位表格时产生很大的差异(与仅迭代排序列表)。
尽管如此,这些字段是规范的一部分,不能“省略”。许多实现忽略这些字段,并且它们经常填充错误的值,但请注意,许多字体检查器/验证器/ sanitizer 确实会检查它们,并可能将错误的值标记为无效字体。因此,如果您问这个有关创建字体的问题,我建议您在字段中填写正确的数据。
关于fonts - TrueType 字体文件中的字体表数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57324782/
将以下内容添加到我的键绑定(bind)中可以让我将 Sublime Text 3 中的字体大小重置为默认大小: { "keys": ["ctrl+0"], "command": "reset_font
我有一个如下所示的 css 字体系列(由于显示限制,我已经缩短了它,否则它比我在这里展示的要大得多)现在你能告诉我是否有办法将 url()content 转换为 .ttf 字体格式或其他标准字体格式吗
具体来说... and ...显示为双倍或四倍。 最佳答案 Customize Twitter Bootstrap here. Make sure to uncheck the default "
当包含 @font-face 和 src 以导入网络字体时,我注意到您可以传入 2 个可选值。我目前不这样做。 我有 2 种网络字体,Lato Regular 和 Lato Bold。 我应该在 @f
我正在本地主机上测试一个字体很棒的网站,它工作正常;但是当我将它上传到我的远程站点时,它不再显示字体了。我该如何解决?尝试了所有调试但没有成功。 网站在那里 www.sevotec.it/ordine
我开始使用 font-squirrel (http://www.fontsquirrel.com/tools/webfont-generator) 来快速使我的字体跨浏览器兼容,我只是想知道字体质量是
以前我复制了一个ttf文件到C:\Windows\Fonts,点击文件显示字体,然后点击[安装],一切正常。 当我现在执行此过程时,字体未安装在 C:\Windows\Fonts 中,而是安装在 C:
我注意到,在工作中,Google Web字体未出现在IE9和Firefox 6(Windows和Mac OS)上。所有文件都已加载,但字体从未渲染。在那些相同的浏览器上,它可以在家正常工作。 Chro
我正在学习 Swift UI 教程,我遇到了这个错误,而讲师没有。 .font 错误在第一个 Vstack 中仅出现一次,而第二次则没有问题。 import SwiftUI struct Conten
我知道使用@font-face 允许浏览器下载自定义字体并在网页中使用它,就像使用任何系统字体一样。 我想知道的是浏览器是对字体进行编码还是在不公开的情况下使用它? 谢谢 最佳答案 浏览器无法保护字体
使用基于@font-face 标记的标准fontsquirrel .. 字体呈现在较粗的一面。下面是一个屏幕截图,以几种不同的方式展示了字体。顶部是 photoshop 的渲染图,第二个是相同字体的
我必须在元素中使用花哨的字体,但我真的很想避免使用 sifr 和其他丑陋的替代品,所以我正在寻找@font-face。 但是,我真的很困惑几个博客/网站提供了关于它的可用性的不同观点。准备好了吗?目前
我几乎在我工作的所有项目中都使用 fontawesome。但这次我得到的图标显示为正方形。我还尝试了 stackoverflow 上列出的几乎所有解决方案,但似乎对我的情况没有任何效果。我猜是什么东西
好的,所以我正在尝试让 IE9 显示字体 Agenda。我像往常一样去了 fontsquirrel,它说 font bureau 不允许他们创建字体套件。然后我去了 codeandmore 并在那里制
Font Awesome 4.0是对 Font Awesome 从头开始的完全重写。主要的新功能之一是图标现在具有命名空间。除了命名空间之外,图标还使用基于一致性和可预测性的新命名约定。不幸的是,
我使用版本 3.2.9 (Media Mark) 的 SASS 并且我想使用我的自定义 font-family 的 3 个变体Source Sans Pro 字体(Light、Regular、Bold
在一些 css 文件中嵌入一些 base64 字体,但 CSP 阻止了这些:类似于 url("data:font/woff;base64,d09GRk9UVE...); 当前 CSP =“base-u
我怎样才能使 Font Awesome 图标像本页中那样大: http://fontawesome.io/icon/bath/ 我使用了 fa-5x 类,但它与页面示例中最大的图标不同。 下面是我使用
我有一个带有Bootsrap 4(SASS)和Font Awesome 5的MVC项目。我正在尝试使旋转的图标可以与Ajax加载面板一起使用,但是它不起作用。 Test Spin
似乎 font-awesome 支持自定义图标,并附有详细说明如何创建和提交您自己的图标,但该信息在他们的网站上不再可用。这是否意味着不再支持此功能并且您只能请求由 font-awesome 团队完成
我是一名优秀的程序员,十分优秀!