问题标签 [opentype]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
91 浏览

fonts - 用于自定义网络字体的 Truetype 或 Opentype?

我们计划购买一种字体,但不确定要采用哪种格式。我们在办公室使用 Mac 和 PC,但我们还希望确保在使用 @font-face CSS 代码时它可以正常工作。我确实使用了一个将其转换为 eot 的程序。

0 投票
2 回答
6028 浏览

fonts - 获取系统字体使用的 Raleway 衬里数字

我们想在我们的 PC 上使用 Raleway,但默认情况下数字是抖动的。描述说可以实现所有水平对齐的衬里版本。

我发现这个SO question详细说明了如何通过 CSS 获取衬里版本,但有人知道如何在下载中获取它吗?

0 投票
1 回答
534 浏览

cairo - 开放式字体问题

基本上,这是显示少数民族语言的问题。

让我简要介绍一下:

  1. 我一直在尝试使我的 Opentype 字体(其中包含一些功能)在非 Windows(在 Windows 上,它工作正常)平台(Android、iOS 等)上正常工作。

  2. 我真正要处理的是一个与显示阿拉伯语一样复杂的问题(包括字形替换、整形等)。

  3. 我只是想在我自己的软件中正确显示字符,因为系统范围的支持对我来说可能更复杂。

  4. 我检查了 ICU、Pango、Harfbuzz……最后决定在 Pango 上工作。参见 Pango ScriptGallery

所以,这里有问题:

1.我可以在我的项目中使用pango作为支持模块来显示该语言吗?我试图在ubuntu上安装Pango,但没有成功。我现在很困惑,因为安装时Pango与harfbuzz、cairo、freetype、fontconfig blabla有关。2.如果不能,还有其他轻量级的方法可以实现吗?

任何帮助将不胜感激 。

0 投票
1 回答
11148 浏览

internet-explorer - IE10是否支持OTF?

我正在尝试在 IE 10 中使用 OTF,但它不起作用。我确认 TTF 在 IE 10 中运行良好。

我已经尝试通过多种服务(例如 fontssquirrel)将 OTF 转换为 EOT,但失败了。也许是因为我的字体不是英文的。

顺便找了一篇文章说“ (1)IE10为Webfonts解锁CSS OpenType特性”。它不是表示“IE从版本10开始支持OTF吗?”。

但是,当我在谷歌上搜索时,很多人说“(2)所有版本的IE都不支持OTF ”。

我无法理解这两个句子(1)和(2)之间的区别。

0 投票
1 回答
1198 浏览

text-editor - 通过 Harfbuzz 和 FreeType 在文本编辑器中显示混合复杂脚本

这里有一些背景: 我已经下载了这个例子并让它在我的 Ubuntu 上运行。一切安好。我将自己的 OpenType 字体放入项目中,它也可以正常工作!我确保HarfBuzz 支持我的字体和我的语言。现在我需要更进一步。

我需要一些指南:

  1. 在上面的例子中,三种语言都有自己的字体来支持显示。我的意思是,这三种语言是分开渲染的(就我对代码的理解而言)。

    那么,如何让HarfBuzz在多种语言混合在一起时选择正确的字体并一次渲染呢?我的意思是,没有制作支持世界上所有语言的字体文件。

  2. 在这个例子中,中文脚本是垂直显示的(这正是我想要的),但是如果我将拉丁脚本的 text_directions 设置为HB_DIRECTION_TTB,这当然不是我想要的。我希望整个单词“拉丁”旋转 90 度。

那么,我该如何实现呢?如何在不破坏中文布局的情况下实现这一目标?

3 .最后但同样重要的是,在解决了上述问题后,我想制作一个文本编辑器来同时显示和编辑多种语言,同一个地方。我不知道我是否需要在 HarfBuzz 或 FreeType 上做一些工作,或者实现一个支持这种复杂文本布局的文本编辑器?有什么可以参考的例子吗?

提前感谢您的帮助。

0 投票
1 回答
77 浏览

opentype - 需要一些关于 OpenType 表固定版本号的解释

这是从版本号的开放式字体文件中提取的

大多数表格都有版本号,整个字体的版本号都包含在表格目录中。请注意,有两种不同的表版本号类型,每种都有自己的编号方案。USHORT 版本号始终从零 (0) 开始。固定版本号从一开始(1.0 或 0x00010000),除非另有说明(EBDT、EBLC 和 EBSC 表)。读取表的实现必须包含检查版本号的代码,以便在格式和版本号发生更改时,如果更改不兼容,旧实现将优雅地拒绝新版本。当使用固定数字作为版本时,高 16 位为主要版本号,低 16 位为次要版本号。具有非零次要版本号的表始终指定版本号的文字值,因为不一定遵循固定数字的正常表示。例如,'maxp' 表版本 0.5 的版本号是 0x00005000,'vhea' 表版本 1.1 的版本号是 0x00011000。如果实现了解主要版本号,那么它可以安全地继续读取该表。次要版本号表示不支持它们的实现无法检测到的格式扩展。

希望对上面突出显示的句子进行一些澄清(强调我的)。

0 投票
1 回答
797 浏览

qt - Qt 支持哪些 OpenType 排版功能?

我很好奇 Qt 是否支持替代图形(表格或旧样式)等功能。

0 投票
1 回答
520 浏览

qt - Qt 4.8 支持哪些 OpenType GSUB 功能?

Qt 4.8 中的文本渲染支持哪些字形替换功能?我正在聘请字体设计师来创建需要 OpenType 字形替换 (GSUB) 的字体,这个人想知道他可以使用哪些功能。

我指的是标准连字 (liga)、自由连字 (dlig)、所有替代 (aalt) 等功能。GSUB 功能扫描的完整(?)列表可在本文末尾找到:http: //ilovetypography.com/OpenType/opentype-features.html

0 投票
4 回答
2844 浏览

css - OpenType 小型大写字母的 CSS 后备

我在一个小型大写字母很重要的网站上工作:设置圣经文本。在旧约中,上帝的名字被音译为Lord小写字母,而不是LORD. 但是,目前 OpenType 小型大写字母的支持状态……不是最佳的。Safari(甚至通过 Yosemite 上的 Safari 8,我正在输入这个)仍然不支持该-webkit-font-feature-settings: 'smcp'选项,并且该网站的许多点击将来自移动设备。

不幸的是,“优雅降级”在这里是有问题的:如果你在支持后者的浏览器(例如 Chrome)中同时指定font-variant: small-caps和指定,则声明会覆盖它,所以丑陋的旧式版本仍然起作用。(注意:这应该符合规范:声明的优先级高于声明)。但是,鉴于当前.font-feature-settings: 'smcp'font-variantfont-variantfont-feature-settingsfont-variant: small-capsfont-variant: small-caps

过去,我将小型大写字母导出为独特的网络字体并直接指定它们;看这篇文章有一个简单的例子:每个段落的第一行都是这样指定的。

虽然我可以在这里做同样的事情(并且至少在理论上可以提供一个非常小的字体,因为我真的只需要三个字符:ord),但我更喜欢简单地启用理智的后备。然而,如上所述,这是不可能的。我愿意但更愿意避免将服务器端解决方案(浏览器检测等)作为一个复杂点,最好将其最小化,特别是考虑到浏览器的变化速度如此之快。还有什么办法可以解决这个问题,特别是有没有针对它的现有解决方案?

编辑:根据评论澄清——将来,font-variant: small-caps将很好地处理这个问题,根据规范,如果字体提供它,它应该显示字体的小写字母变体。但是,目前,没有浏览器支持这个(至少,我找不到!)。这意味着相反,它们都只是通过缩小实际资本来制造虚假的小资本。结果在印刷上令人不快,并且在这个项目上是不可接受的。

0 投票
0 回答
248 浏览

python - FontForge Python appendSFNTName 问题

我是一个 Python 初学者,我正在尝试创建一个小的 Python 脚本,它使用 FontForge Python 绑定重命名 FontFiles SFNT 属性(Family、SubFamily、FullName)。

该脚本侦听raw_input,然后准备字符串,并使用 FontForge 方法应用更改。

但是我遇到了一个很奇怪的问题,当在方法参数中传递 a variable(type str) 而不是直接 a'string'时,没有应用更改,而仅适用于 SFNT 属性之一。

我知道 FontForge 从 SFNT 表创建一个元组。FontForge 提供了一种更改元组的方法font.appendSFNTName(language,strid,string)

例如,更改适用于SubFamily,但不适用于Family

在检查是否是 unicode 的问题后,它也无济于事。

遗憾的是,我的 C 语言技能不是很好,无法检查 Python 绑定中是否进行了一些奇怪的转换。

我在这里完全错过了什么吗?

这是代码摘录: