fontlibrary.org字体,打印预览和strong / em不呈现为粗体/斜体

时间:2018-10-13 10:02:50

标签: css3 pdf printing fonts font-family

我正在尝试使用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;
    }
  }

所以我有几个问题:

  • 这在网上如何运作?浏览器如何加载粗体显示为粗体,斜体显示为斜体,等等?显然,浏览器模拟粗体和斜体的字体变体,因此它不使用导入的字体变体。 li>
  • 由于这不适用于印刷品,谁被打破了? fontlibrary.org是否会错误地提供字体,并且浏览器(和wkhtmltopdf)找不到它们?浏览器和wkhtmltopdf是否都错误地加载了字体文件?
  • 如果fontlibrary.org损坏了由于fontlibrary.org似乎使用的字体变体命名方案与世界上其他地区的不一样,那么我可以信赖谁这些@font-face规则正确吗?我必须自己写这些以确保吗?
  • 有什么我可以做的更好的工作吗?

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

1 个答案:

答案 0 :(得分:1)

我认为这是Fontlibrary如何共享其字体的结果。如果在最底部查看文件https://fontlibrary.org/face/hk-grotesk(包含字体css的链接),则会看到标有“不赞成使用以下规则”的部分。
如果您使用该部分的字体名称(即“ Hanken Grotesk”)而不是特殊名称(如“ HankenGroteskBold”),则网络浏览器似乎会找到正确的粗体和斜体形式。我只是使用这些特殊名称而感到麻烦(就我而言,使用Libertinus字体)。
不幸的是,由于这些名称被标记为“已弃用”,因此我不知道它们将继续工作多长时间。我也不知道为什么Fontlibrary设置了此命名约定,这使得使用字体比必要的字体更加困难(我认为)。