Haskell图中文本的自定义字体

时间:2018-06-30 21:17:07

标签: haskell fonts haskell-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的额外步骤,但是确实可以完成工作。

1 个答案:

答案 0 :(得分:4)

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

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