如何为多个图表使用相同的输出?

时间:2017-05-01 20:58:36

标签: haskell svg haskell-diagrams

我还将以下内容发布为diagrams-doc issue,但我认为这可能更合适。

用户手册says this

  

输出单元特别有用的一种情况是在准备具有各种物理尺寸的多个嵌入图表的文档(纸张,博客文章等)时。对每个图表的线宽(或箭头长度,箭头间隙,字体大小等)使用相同的输出值可确保图表看起来都一致。

这正是我想要做的。我正在制作一个包含多个diagrams生成的不同大小内联svg文件的网页,我希望线条宽度,箭头大小和圆弧半径保持一致。但我不知道怎么做。如何将相同的输出值传递给所有箭头,箭头,圆圈等?当我最终使用renderPretty进行渲染时,我会在size参数中设置SVGOptions,以便它只是使svg的内容大小为什么?

1 个答案:

答案 0 :(得分:0)

我终于设法解决了这个问题。

我有一些箭头:因为我使用了arrowOpts:

(with & arrowHead .~ myTri
      & arrowTail .~ lineTail
      & lengths .~ output 15
      & arrowShaft .~ idShaft offset
      & shaftStyle %~ lwO 1)

对于SVG渲染,我使用renderPretty' outFile svgOpt diagram

svgOpt :: Num n => Options SVG V2 n
svgOpt = SVGOptions {
  _size = absolute,
  _idPrefix = empty,
  _svgDefinitions = Nothing,
  _svgAttributes = [],
  _generateDoctype = False
}

关键部分是设置_size = absolute,这会导致生成的svg根本不会缩放。

我仍在尝试追踪尚未output的其他测量值。