3

我正在使用 Diagrams 库来生成一些带有自定义字体的文本。查看Text的文档,不清楚如何指定特定的 .ttf 字体文件?我尝试使用不同的 .ttf 文件,如下例所示,但没有人工作。

discountText :: Maybe Int -> Diagram B
discountText discount =
  case discount of
    Nothing -> mempty
    Just value ->
      text (show value ++ " %") # font "Roboto-Light.ttf" # fontSize 90

另一种选择似乎是SVGFonts,但我想在没有另一个库的情况下实现这一点。那么你们如何在图表中设置自定义字体?

UPD:我发现下面给出的答案非常具有解释性。为了解决这个问题,我实际上最终使用了SVGFonts,它增加了将 .ttf 转换为 .svg 的额外步骤,但确实可以完成这项工作。

4

1 回答 1

4

字体处理Diagrams高度依赖于后端。 diagrams-cairo应该能够在您的系统上使用任何 TTF 字体。在 Linux 上,它将使用 FontConfig 查找名称。它应该在其他操作系统上使用操作系统提供的字体查找机制,但我不记得自己曾经测试过这个。

您打算使用什么后端?我偏爱diagrams-cairo文本处理,但它是最难安装的后端,尤其是在非 Linux 上。自从我上次测试他们的文本处理以来,其他后端可能也有所改进。

于 2018-06-30T22:16:06.180 回答