Haskell 图中文本的自定义字体
Custom font for Text in Haskell Diagrams
我正在使用 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 的额外步骤,但完成了工作。
Diagrams
中的字体处理高度依赖于后端。 diagrams-cairo
应该可以在您的系统上使用任何 TTF 字体。在 Linux,它将使用 FontConfig 查找名称。它应该在其他 OS 上使用 OS 提供的字体查找机制,但我不记得自己曾经测试过这个。
您打算使用什么后端?我偏向 diagrams-cairo
进行文本处理,但它是最难安装的后端,尤其是在 not-Linux 上。自从我上次测试它们的文本处理以来,其他后端可能也有所改进。
我正在使用 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 的额外步骤,但完成了工作。
Diagrams
中的字体处理高度依赖于后端。 diagrams-cairo
应该可以在您的系统上使用任何 TTF 字体。在 Linux,它将使用 FontConfig 查找名称。它应该在其他 OS 上使用 OS 提供的字体查找机制,但我不记得自己曾经测试过这个。
您打算使用什么后端?我偏向 diagrams-cairo
进行文本处理,但它是最难安装的后端,尤其是在 not-Linux 上。自从我上次测试它们的文本处理以来,其他后端可能也有所改进。