fontlibrary.org 字体、打印预览和 strong/em 未呈现为 bold/italic
fontlibrary.org fonts, Print Preview, and strong/em not rendering as bold/italic
我正在尝试使用 fontlibrary.org 加载字体以生成 PDF 文档。我目前在网站上使用这些相同的字体,一切都按预期工作;但是,当我尝试使用这些字体打印文档时,strong
不会呈现为粗体并且 em
不会呈现为斜体。为了解决这个问题,我必须这样做(这已经是sass
,所以你可以想象对应的CSS):
body {
font-family: "HkGroteskRegular", sans-serif;
strong {
font-family: "HankenGroteskBold", sans-serif;
font-weight: bold;
}
em {
font-family: "HankenGroteskItalic", sans-serif;
font-style: italic;
}
}
h1, h2, h3, h4, h5, h6 {
font-family: "NormungRegular", serif;
strong {
font-family: "NormungBold", serif;
font-weight: bold;
}
em {
font-family: "NormungItalic", serif;
font-style: italic;
}
}
code, pre {
font-family: 'FantasqueSansMonoRegular', monospace;
strong {
font-family: "FantasqueSansMonoBold", monospace;
font-weight: bold;
}
em {
font-family: "FantasqueSansMonoItalic", monospace;
font-style: italic;
}
}
所以我有几个问题:
这在网络上是如何工作的?浏览器如何为粗体加载粗体字体,为斜体加载斜体字体等等?显然,浏览器模拟了粗体和斜体的字体变体,因此它不使用导入的字体变体。
- 因为这不适用于印刷品,谁坏了? fontlibrary.org 是否错误地提供了字体并且浏览器(和
wkhtmltopdf
)找不到它们?浏览器和 wkhtmltopdf
是否都错误地加载了字体文件?
如果 fontlibrary.org 被破坏 因为 fontlibrary.org 似乎使用了一种与世界其他地方似乎不匹配的字体变体命名方案除了,那么我可以信任谁来正确地执行这些 @font-face
规则?我必须自己写它们才能确定吗?
- 我能做些什么来改善这项工作吗?
更新:2018-10-14。我注意到,当我下载字体以便在本地找到它们时,一切正常。我 怀疑 发生这种情况是因为本地安装的字体名称遵循允许浏览器、打印预览和 pandoc
找到它们的字体变体的命名约定。 如果有人确认命名约定可以解决问题,我将不胜感激。在这种情况下,我可以调整 @font-face
规则以从 fontlibrary.org 这样我就 不需要 在本地安装字体。
我认为这是 Fontlibrary 共享字体的结果。如果您查看文件 https://fontlibrary.org/face/hk-grotesk(即包含字体 css 的 link),您会在最底部看到一个标记为 "The following rules are deprecated."
的部分
如果您使用该部分的字体名称(即 "Hanken Grotesk")而不是特殊名称(如 "HankenGroteskBold"),则网络浏览器似乎会找到正确的粗体和斜体形式。只有在使用这些特殊名称时我才会遇到麻烦(在我的情况下使用 Libertinus 字体)。
不幸的是,由于这些名称被标记为 "deprecated",我不知道它们还能工作多久。我也不知道为什么 Fontlibrary 设置了这个命名约定,这使得使用字体比必要的更难(在我看来)。
我正在尝试使用 fontlibrary.org 加载字体以生成 PDF 文档。我目前在网站上使用这些相同的字体,一切都按预期工作;但是,当我尝试使用这些字体打印文档时,strong
不会呈现为粗体并且 em
不会呈现为斜体。为了解决这个问题,我必须这样做(这已经是sass
,所以你可以想象对应的CSS):
body {
font-family: "HkGroteskRegular", sans-serif;
strong {
font-family: "HankenGroteskBold", sans-serif;
font-weight: bold;
}
em {
font-family: "HankenGroteskItalic", sans-serif;
font-style: italic;
}
}
h1, h2, h3, h4, h5, h6 {
font-family: "NormungRegular", serif;
strong {
font-family: "NormungBold", serif;
font-weight: bold;
}
em {
font-family: "NormungItalic", serif;
font-style: italic;
}
}
code, pre {
font-family: 'FantasqueSansMonoRegular', monospace;
strong {
font-family: "FantasqueSansMonoBold", monospace;
font-weight: bold;
}
em {
font-family: "FantasqueSansMonoItalic", monospace;
font-style: italic;
}
}
所以我有几个问题:
这在网络上是如何工作的?浏览器如何为粗体加载粗体字体,为斜体加载斜体字体等等?显然,浏览器模拟了粗体和斜体的字体变体,因此它不使用导入的字体变体。- 因为这不适用于印刷品,谁坏了? fontlibrary.org 是否错误地提供了字体并且浏览器(和
wkhtmltopdf
)找不到它们?浏览器和wkhtmltopdf
是否都错误地加载了字体文件? 如果 fontlibrary.org 被破坏因为 fontlibrary.org 似乎使用了一种与世界其他地方似乎不匹配的字体变体命名方案除了,那么我可以信任谁来正确地执行这些@font-face
规则?我必须自己写它们才能确定吗?- 我能做些什么来改善这项工作吗?
更新:2018-10-14。我注意到,当我下载字体以便在本地找到它们时,一切正常。我 怀疑 发生这种情况是因为本地安装的字体名称遵循允许浏览器、打印预览和 pandoc
找到它们的字体变体的命名约定。 如果有人确认命名约定可以解决问题,我将不胜感激。在这种情况下,我可以调整 @font-face
规则以从 fontlibrary.org 这样我就 不需要 在本地安装字体。
我认为这是 Fontlibrary 共享字体的结果。如果您查看文件 https://fontlibrary.org/face/hk-grotesk(即包含字体 css 的 link),您会在最底部看到一个标记为 "The following rules are deprecated."
的部分
如果您使用该部分的字体名称(即 "Hanken Grotesk")而不是特殊名称(如 "HankenGroteskBold"),则网络浏览器似乎会找到正确的粗体和斜体形式。只有在使用这些特殊名称时我才会遇到麻烦(在我的情况下使用 Libertinus 字体)。
不幸的是,由于这些名称被标记为 "deprecated",我不知道它们还能工作多久。我也不知道为什么 Fontlibrary 设置了这个命名约定,这使得使用字体比必要的更难(在我看来)。