我正在使用 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 ,但我想在没有其他图书馆的情况下实现这一目标。那么你们如何在 Diagrams 中设置自定义字体?
UPD:我发现下面给出的答案非常具有解释性。为了解决这个问题,我实际上最终使用了 SVGFonts这增加了将 .ttf 转换为 .svg 的额外步骤,但完成了工作。
最佳答案
Diagrams
中的字体处理高度依赖于后端。 diagrams-cairo
应该能够在您的系统上使用任何 TTF 字体。在 Linux 上,它将使用 FontConfig 查找名称。它应该在其他操作系统上使用操作系统提供的字体查找机制,但我不记得自己曾经测试过这个。
您打算使用什么后端?我偏爱用于文本处理的 diagrams-cairo
,但它是最难安装的后端,尤其是在非 Linux 上。自从我上次测试它们的文本处理以来,其他后端可能也有所改进。
关于haskell - Haskell 图中文本的自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118560/