问题标签 [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.
fonts - 用于自定义网络字体的 Truetype 或 Opentype?
我们计划购买一种字体,但不确定要采用哪种格式。我们在办公室使用 Mac 和 PC,但我们还希望确保在使用 @font-face CSS 代码时它可以正常工作。我确实使用了一个将其转换为 eot 的程序。
fonts - 获取系统字体使用的 Raleway 衬里数字
我们想在我们的 PC 上使用 Raleway,但默认情况下数字是抖动的。描述说可以实现所有水平对齐的衬里版本。
我发现这个SO question详细说明了如何通过 CSS 获取衬里版本,但有人知道如何在下载中获取它吗?
cairo - 开放式字体问题
基本上,这是显示少数民族语言的问题。
让我简要介绍一下:
我一直在尝试使我的 Opentype 字体(其中包含一些功能)在非 Windows(在 Windows 上,它工作正常)平台(Android、iOS 等)上正常工作。
我真正要处理的是一个与显示阿拉伯语一样复杂的问题(包括字形替换、整形等)。
我只是想在我自己的软件中正确显示字符,因为系统范围的支持对我来说可能更复杂。
我检查了 ICU、Pango、Harfbuzz……最后决定在 Pango 上工作。参见 Pango ScriptGallery。
所以,这里有问题:
1.我可以在我的项目中使用pango作为支持模块来显示该语言吗?我试图在ubuntu上安装Pango,但没有成功。我现在很困惑,因为安装时Pango与harfbuzz、cairo、freetype、fontconfig blabla有关。2.如果不能,还有其他轻量级的方法可以实现吗?
任何帮助将不胜感激 。
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)之间的区别。
text-editor - 通过 Harfbuzz 和 FreeType 在文本编辑器中显示混合复杂脚本
这里有一些背景: 我已经下载了这个例子并让它在我的 Ubuntu 上运行。一切安好。我将自己的 OpenType 字体放入项目中,它也可以正常工作!我确保HarfBuzz 支持我的字体和我的语言。现在我需要更进一步。
我需要一些指南:
在上面的例子中,三种语言都有自己的字体来支持显示。我的意思是,这三种语言是分开渲染的(就我对代码的理解而言)。
那么,如何让HarfBuzz在多种语言混合在一起时选择正确的字体并一次渲染呢?我的意思是,没有制作支持世界上所有语言的字体文件。
在这个例子中,中文脚本是垂直显示的(这正是我想要的),但是如果我将拉丁脚本的 text_directions 设置为
HB_DIRECTION_TTB
,这当然不是我想要的。我希望整个单词“拉丁”旋转 90 度。
那么,我该如何实现呢?如何在不破坏中文布局的情况下实现这一目标?
3 .最后但同样重要的是,在解决了上述问题后,我想制作一个文本编辑器来同时显示和编辑多种语言,同一个地方。我不知道我是否需要在 HarfBuzz 或 FreeType 上做一些工作,或者实现一个支持这种复杂文本布局的文本编辑器?有什么可以参考的例子吗?
提前感谢您的帮助。
opentype - 需要一些关于 OpenType 表固定版本号的解释
这是从版本号下的开放式字体文件中提取的
大多数表格都有版本号,整个字体的版本号都包含在表格目录中。请注意,有两种不同的表版本号类型,每种都有自己的编号方案。USHORT 版本号始终从零 (0) 开始。固定版本号从一开始(1.0 或 0x00010000),除非另有说明(EBDT、EBLC 和 EBSC 表)。读取表的实现必须包含检查版本号的代码,以便在格式和版本号发生更改时,如果更改不兼容,旧实现将优雅地拒绝新版本。当使用固定数字作为版本时,高 16 位为主要版本号,低 16 位为次要版本号。具有非零次要版本号的表始终指定版本号的文字值,因为不一定遵循固定数字的正常表示。例如,'maxp' 表版本 0.5 的版本号是 0x00005000,'vhea' 表版本 1.1 的版本号是 0x00011000。如果实现了解主要版本号,那么它可以安全地继续读取该表。次要版本号表示不支持它们的实现无法检测到的格式扩展。
希望对上面突出显示的句子进行一些澄清(强调我的)。
qt - Qt 支持哪些 OpenType 排版功能?
我很好奇 Qt 是否支持替代图形(表格或旧样式)等功能。
qt - Qt 4.8 支持哪些 OpenType GSUB 功能?
Qt 4.8 中的文本渲染支持哪些字形替换功能?我正在聘请字体设计师来创建需要 OpenType 字形替换 (GSUB) 的字体,这个人想知道他可以使用哪些功能。
我指的是标准连字 (liga)、自由连字 (dlig)、所有替代 (aalt) 等功能。GSUB 功能扫描的完整(?)列表可在本文末尾找到:http: //ilovetypography.com/OpenType/opentype-features.html
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-variant
font-variant
font-feature-settings
font-variant: small-caps
font-variant: small-caps
过去,我将小型大写字母导出为独特的网络字体并直接指定它们;看这篇文章有一个简单的例子:每个段落的第一行都是这样指定的。
虽然我可以在这里做同样的事情(并且至少在理论上可以提供一个非常小的字体,因为我真的只需要三个字符:o
、r
和d
),但我更喜欢简单地启用理智的后备。然而,如上所述,这是不可能的。我愿意但更愿意避免将服务器端解决方案(浏览器检测等)作为一个复杂点,最好将其最小化,特别是考虑到浏览器的变化速度如此之快。还有什么办法可以解决这个问题,特别是有没有针对它的现有解决方案?
编辑:根据评论澄清——将来,font-variant: small-caps
将很好地处理这个问题,根据规范,如果字体提供它,它应该显示字体的小写字母变体。但是,目前,没有浏览器支持这个(至少,我找不到!)。这意味着相反,它们都只是通过缩小实际资本来制造虚假的小资本。结果在印刷上令人不快,并且在这个项目上是不可接受的。
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 绑定中是否进行了一些奇怪的转换。
我在这里完全错过了什么吗?
这是代码摘录: