haskell - Haskell 图中文本的自定义字体

标签 haskell fonts 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 ,但我想在没有其他图书馆的情况下实现这一目标。那么你们如何在 Diagrams 中设置自定义字体?

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

最佳答案

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

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

关于haskell - Haskell 图中文本的自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118560/

相关文章:

haskell - 如何确定Haskell函数的类型?

haskell - 为什么我必须按字段强制此数据类型,而不是一次全部强制?

android - roboto-android 和 roboto-unhinted 之间有什么区别?

jquery - 如何在 jQuery 中使用 css font-weight 属性为文本设置动画?正常到粗体

Haskell 图对齐函数

haskell : using guards after where

haskell - 带有列表键的 map 是否形成单子(monad)?

与 iOS 字体大小/类型相关的 iOS 应用程序字体大小?

haskell - 如何控制尺度不变性?

haskell - 使用 haskell 图表包设置 id 和 class