【问题标题】:fontlibrary.org fonts, Print Preview, and strong/em not rendering as bold/italicfontlibrary.org 字体、打印预览和 strong/em 未呈现为粗体/斜体
【发布时间】:2019-03-18 09:47:45
【问题描述】:

我正在尝试使用 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 似乎使用的字体变体命名方案与世界其他地方似乎不匹配,那么我可以信任谁来提供这些 @987654327 @ 规则正确吗?我必须自己写才能确定吗?
  • 我可以做些什么来使这项工作变得更好?

更新:2018 年 10 月 14 日。我注意到,当我下载字体以便可以在本地找到它们时,一切正常。我怀疑发生这种情况是因为本地安装的字体名称遵循允许浏览器、打印预览和pandoc 找到它们的字体变体的命名约定。 如果有人确认命名约定可以解决问题,我将不胜感激。 在这种情况下,我可以调整 @font-face 规则以从 fontlibrary.org 加载字体,这样我就不用't 需要在本地安装字体。

【问题讨论】:

  • 浏览器可能会使用仿粗体和仿斜体,如果仔细观察,可能会发现差异。作为基本设置,您如何进行 css 打印是必需的,我很幸运,另一半为我完成了这项工作。
  • @CarolMcKay 确实如此,显然。我今天早上才注意到人造粗体/斜体。当我在本地安装字体时,一切似乎都按预期工作,我想字体变体的某种命名约定使它一切正常。这可以解释为什么不使用相同命名约定的 fontlibrary 字体的行为不符合我的预期。

标签: css pdf printing fonts font-family


【解决方案1】:

我相信这是 Fontlibrary 共享字体的结果。如果您查看最底部的文件 https://fontlibrary.org/face/hk-grotesk(这是包含字体 css 的链接),您将看到标记为“不推荐使用以下规则”的部分。
如果您使用该部分的字体名称(即“Hanken Grotesk”)而不是特殊名称(如“HankenGroteskBold”),那么网络浏览器似乎会找到正确的粗体和斜体形式。只是使用这些特殊名称我觉得麻烦(在我的情况下使用 Libertinus 字体)。
不幸的是,由于这些名称被标记为“已弃用”,我不知道它们还能工作多久。我也不知道为什么 Fontlibrary 设置了这个命名约定,这使得使用字体变得比必要的更加困难(在我看来)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2022-11-10
    • 2012-12-10
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    相关资源
    最近更新 更多