- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
长话短说,我在不使用 FreeType 或 HarfBuzz(出于各种原因)的情况下渲染字体,通过手动解析 TrueType 和衍生格式来提取元数据和字形信息,以便稍后从其轮廓构建位图和距离场运行。我担心的是必要时可靠的字形替换,即某些序列必须根据语言规则被另一个序列替换。
我不清楚的是 GSUB 表通常可以被假设为有多可靠。换句话说,例如,期望阿拉伯字体应该提供包含阿拉伯文字所需的替换的填充 GSUB 表是否合理?或者,考虑到这是按脚本进行的,通常是否假设字体仅提供特殊的按字体替换,而整形引擎则假定将任何按脚本替换作为全局规则处理?我不担心替换的字形可能不可用,因为系统会在这种情况下搜索后备,否则将恢复到原始序列。
显然,为每个脚本设置一个全局规则集作为后备是完全可靠的,但我希望尽可能减少它。抱歉,这不完全是一个经验问题,但我很难找到这方面的大量信息,除非需要实际检查各种字体的大量样本。 This overview似乎表明将定义每个脚本的替换,但鉴于表是模块化的,当然不能保证甚至会有一个表,更不用说所需的定义了。如果做不到这一点,是否有任何已知的各种脚本的替代数据库?
最佳答案
说 OpenType 字体是一个完全独立的排版程序,并且“文本整形器只能‘按照字体的指示进行操作’”是不准确的。特别是对于像阿拉伯语或梵文这样的脚本,在文本整形器中实现的字体之间存在非常重要的共同逻辑。
这意味着支持阿拉伯语之类的东西根本不像实现解析“GSUB”和“GPOS”表并在其中应用查找(操作)的逻辑那么简单。这绝对不是一项小任务,我当然会寻找现有的实现来重用。
您提到您已选择不使用 Harfbuzz。我建议您重新考虑这一点。
What I'm unclear about is how reliable the GSUB table can generally be assumed to be. In other words, is it reasonable to expect that an Arabic font, for example, should provide a populated GSUB table containing the substitutions required for an Arabic script?
绝对是!阿拉伯字体必须具有“GSUB”、“GPOS”和“GDEF”表才能正确显示阿拉伯文本。原则上不可能按脚本/跨字体替换,更不用说在实践中了。
您可能会发现一些有用的资源 - 有些资源已经过时(MS Typography 网站已重新发布,因此页面上的日期并不总是反射(reflect)原始发布日期),但内容仍然相关。虽然可能引用了 Windows,但它适用于任何 OpenType 布局引擎。
关于fonts - GSUB 表是否广泛填充 TrueType 字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60822708/
我正在编写一个程序,它将从 who 命令中提取信息并格式化输出。 普通 who 命令: user ip date (ip) user ip date (ip) user ip date (ip) us
我有一个包含以下数据的文件- 输入- A B C D E F A B B B B B C A C D E F A B D E F A A A A A A F A B C B B B 如果从第 2 行开
这个问题在这里已经有了答案: How to prevent regmatches drop non matches? (4 个回答) 5年前关闭。 我正在浏览一个字符向量(大约 10,000 个条目)
我想连续生成一个Employee_ID,我已经在数据库表中修复了一个初始员工ID。格式为“E36162000”,我从表中获取最后一个员工 ID,然后仅提取整数值,然后加一,这将是下一个 employe
使用以下函数,我转到一个站点,抓取一些信息,返回一些 JSON,并将其放入 @price 实例变量中。 返回给我的 JSON 是一个数字,但是如果数字大于 1000,那么数字将包含一个逗号,所以我将其
我在运行脚本时不断收到此错误。我对 Ruby 很陌生,所以请原谅我的傲慢。 我正在使用内置了 JRuby 支持的 Nuix 编写脚本。 这是我的代码; require 'benchmark' requ
我在 R 中工作,并且仅在没有左括号时才尝试删除右括号。我在下面尝试过,但没有返回所需的输出。 test <- data.frame(t1 = c("Book (Pg 1)", "Website On
我正在尝试从 Chandler 中删除标点符号和数字成为Chandler .这是我目前正在尝试的: df$city <- gsub("[[:punct:]]|[[:digit:]]", "", df$
我正在尝试生成结合 n 个高斯的函数,并使用从 nls 中检索到的值跑。我用 gsub用 nls 替换原始系数那些使用反向引用的。然而,似乎[在 \\1 之前对 datafame 进行评估. 这是一个
这个问题在这里已经有了答案: What regex will match every character except comma ',' or semi-colon ';'? (4 个回答) 5年前
我有一个日志数据集: V1 duration id startpoint T161[=]Pexplorer.exe[=]I1820[=]W20094[=]V6.00.2900.5512 777
我正在使用 local mystring = 'Thats a really nice house.' string.gsub(mystring,"% ", "/",1) 用斜杠替换第一个空格字符。
我有一些正在使用的 html 代码。我想提取某些字符串。 我想使用 从字符串 x 中提取它的首选基础 R :coleman_l, SMOG4 这是我所拥有的: x (hi)auto(coleman_l
我希望这是足够不同的相关,之前的帖子来证明它自己的线程是合理的;不幸的是,他们对我没有帮助。我认为我对部分替换的兴趣,加上通配符的使用迄今为止是独一无二的,但如果我只是没有足够仔细地搜索或阅读,我深表
我有一个字符串"ab b cde",即"ab[space]b[space]cde"。我想用空格替换“space-b”和“space-c”,以便输出字符串为"ab[space][space][space
我正在尝试清理一些文本字符串,以便我可以干净地解析出一些脚本信息。对于这些表格,括号中的信息表示脚本的位置或阻塞注释。 我想获取所有括号内的信息,并删除括号及其所有包含的字符。工作中的关键在于,由于数
任何人都可以通过 gsub 帮助实现以下目标在R? input string: a=5.00,b=120,c=0.0003,d=0.02,e=5.20, f=1200.0,g=850.02 desir
给定字符串: smple_paths <- c("/path/path/path/abc22/path/path", "/apath/apath/paath/abc1
似乎当我添加一个特殊字符时 gsub 不再适合我。 我如何使用带有此类字符的文本 print(string.gsub("a !foo walking", "%a+",{ ["!foo"] =
我有一批样本要提交给我的大学集群进行处理。我有超过 1000 个样本需要运行。不必手动创建脚本,我想知道我可以制作一个 for 循环来替换示例 ID。每个脚本本质上是相同的,我只需要更改示例 ID 和
我是一名优秀的程序员,十分优秀!