- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如标题所说。我理解,使用复合字符和影响其他字符和连字的字符正确呈现所有 unicode 格式确实很困难。我们的字体似乎是为最大程度的 Unicode 符号支持而设计的(Symbola、Code2001 等)以及针对某些平面或字符范围的专用字体(BabelStone Han 等)。
我对字体的底层技术细节了解不多。有最大尺寸吗?是版权问题吗?重新绘制所有约 110,000 个现存字形是否太难了?我理解样式问题,但为什么不使用包含所有内容字形的“默认”字体呢?它们位于 unicode.org 上,重新绘制它们将是一项非常艰巨的工作,但这样您就可以保证所有内容都有后备字体。如果您拥有某些现有字体的权利,您可以将它们组合起来,这应该会有很大帮助。这样的字体将对人类有很大的帮助,我看不出它不存在的良好技术原因,或者至少没有创建它的开源努力,所以我推测它存在一个对我来说不可见的原因做不到。
这是什么原因?
最佳答案
“你为什么想要那个?”除了问题之外,从编程的角度来看,有一个非常简单的原因:OpenType spec只提供 1 个 USHORT 的可寻址字形索引空间,因此一种字体只能支持 16 位的字形标识符,即最多 65,536 个字形。 (并注意术语:“字形” is not the same 作为“字符”或“字母”)
当前版本的 Unicode,即本答案的 v8,包含 120,737 assigned code points ,或者几乎是现代字体的两倍(2021 年编辑:v13 将此数字提高到 143,859)。事实上,自 2001 年发布 Unicode 3.1 以来,Unicode 就无法适应现代 OpenType 字体,该版本将代码点的数量从 49,259 增加到 94,205。
“那么字体集合呢?”我听到你问。为什么不使用多种字体并以这种方式支持所有 unicode?现在,您刚刚描述了 Adobe 的 Sans Pro 和 Google 的 Noto (它们是相同的字体)。
至于“这能有多难”:在这个星球上 129 个已建立的书面文字中,统一 Unicode 中所有字形的样式,每个文字都有自己的排版规则?难以置信的艰难。您可能认为字体只是带有字母图片的文件,有人输入字母,图片就会显示出来:这不是字体的工作方式,也不是自 20 世纪 80 年代末以来字体的工作方式。
现代字体相当于游戏 ROM 的排版:当然,如果没有运行该 ROM 的硬件或软件,它就没有多大用处,但所有真正重要的东西都在 ROM 中。同样,现代字体包含所有用于排版的信息。不仅仅是图片,它们还包含元数据、度量、任意序列的定位和替换规则,为 OpenType 支持的每个书面脚本提供单独的规则集、强制和可选的连字、开头/中间字母的语言特定字符替换/单词中的最终位置,或孤立地,相对于其之前或之后的其他字符的任意复杂序列的字符重新定位,用其他任意复杂序列替换任意复杂序列,小点渲染的可能位图后备,关于如何进行的提示说明正确地光栅化本质上不与任何特定像素网格对齐的矢量图形等等。现代字体是一个极其复杂的应用程序,字体引擎咨询来找出如何排版代码点序列。
制作一套适合所有上下文的包含 Unicode 的字体需要付出巨大的团队努力。
所以:“为什么没有一种包含所有 Unicode 字形的字体?”,因为自 2001 年以来这在技术上是不可能的。我们可以并且确实制作了涵盖所有 Unicode 的字体系列 ,但是由于 129 种不同的脚本都有自己的排版规则,所以工作量很大,并且与仅覆盖所有语言的子集相比,几乎(几乎)不值得付出努力。
至于这个:
Such a font would be a great help to humanity and I can't see a good technical reason why it doesn't exist or at least an open-source effort to create it, so I presume an invisible-to-me reason why it can't be done.
仅仅因为您不了解它们,并不意味着它们不存在,有数百万人熟悉它们。它们存在 =)
They're even open source ,出去感谢创造它们的人!
关于unicode - 为什么没有一种字体包含所有 Unicode 字形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34732718/
这是我第一次使用字形,但我知道它们是文本,并且可以像任何其他文本一样设置样式。这就是我对为什么我的字形图标没有改变颜色感到困惑的原因。 我希望它将颜色从黑色(默认)更改为白色。这是我的代码: HTML
JavaScript/CSS/web 中有没有办法检测系统是否具有某个 Unicode 字符的有效字形? 例如,我想检测语言中的某个字符是否显示为方形框,因为用户没有显示这些 Unicode 点的字体
在编写继承自 TBitBtn 的自定义控件时,我正在寻找一种方法来覆盖或拦截仅绘制字形并自己绘制字形,而不必重绘整个控件。我广泛使用 VCL 样式,并希望避免重新创建所有绘图和样式 Hook 等。不幸
我正在使用tileserver-gl的Docker镜像来运行服务器(klokantech/tileserver-gl)。 我想像自己的Font Awesome(currently here avail
正如标题所说。我理解,使用复合字符和影响其他字符和连字的字符正确呈现所有 unicode 格式确实很困难。我们的字体似乎是为最大程度的 Unicode 符号支持而设计的(Symbola、Code200
我想将 Unicode 字形渲染为 jpg 格式。我应该更改 java 代码中每个 Unicode block 的字体吗?我试着不那样做,但没有用。但是,为每个 block 更改字体需要花费大量时间。
我有一个可以使用 Facebook 帐户登录的网站,我现在遇到的唯一问题是我无法在按钮中的文本前面从 Facebook 获取字形。在这里你可以看到代码。我也在用 Bootstrap, ';" clas
Twitter Bootstrap 使用字体文件中的图标。如果图标显示在偏离像素的元素中(例如,通过将父级设置为百分比宽度,如 51% 并将图标向右浮动),则图标会变得模糊。 这里是手动设置位置为40
我试图根据 StatusLineId 更改我的字形图标,但没有出现任何字形图标。我做错了什么? HTML 代码: Js函数 function statusIc
我有一个包含许多图标的 SVG 文件: Generated by Fontastic.me 这是我如何链接到 CSS: @font-face { font-family: "m
我在浏览器控制台中收到错误:: glyphicons-halflings-regular.woff2:1 Failed to load resource: the server responded w
几个小时以来,我一直在与 š 的字体样式作斗争。 我正在使用来自 google webfonts 的 webfont“open sans”并测试了 googles review 选项上的字素。一切都很
我需要使用一个看起来像挂锁的 unicode 字符。它用于表单下方的按钮,上面写着“CopyLink __”,上面有一个挂锁,表示当他们复制他们所在页面的链接时,将不会访问“copylink _”版本
你好,我是第一次尝试使用 bootstrap 字形图标,但它没有按我想要的方式工作。 我想要左右图标,所以我选择了 glyphicon-chevron-left 和 glyphicon-chevron
我正在开发一款教授日语的应用程序。问题是,系统使用的默认字体是使用字符的中文变体,而不是日文变体。例如,汉在中文字体中看起来与在日文字体中略有不同,即使它们是相同的 Unicode 代码点。如何指定我
我目前正在实现一个简单的 SVG 文本渲染器。我正在从 SVG 文件中提取我需要绘制的字符的路径信息。 这是存储在 JSON 对象中的字体/字符的所有适当信息: window.font =
当我将鼠标悬停在链接上时,我试图在链接的右侧显示 Bootstrap 字形图标。 我试过同时使用 CSS 和 JS,但它就是行不通。所以我需要一些帮助:) 这就是我想要做的:When i hoover
下面有ajax代码 $.ajax({ type: "POST", url: "shoppingcart_service.asmx/RegisterSub
我正在努力理解这些东西,以便我可以有效地在工作中实现项目的国际化。我刚刚开始,非常想从您的专业知识中了解我是否正确理解了这些概念。到目前为止,这是我从网上收集的内容的简化版本(据我所知): 字符编码
有什么方法可以更改 Eclipse 用于表示空白字符的符号吗?例如,我想将换行符“¶”自定义为更像 Notepad++ 样式“LF”。 我知道如何打开和关闭它们以及更改字体、透明度等。但我还没有找到任
我是一名优秀的程序员,十分优秀!