The SVGFonts package

[Tags: bsd3, library]

Native font support for the diagrams framework (http://projects.haskell.org/diagrams/). Note that this package can be used with any diagrams backend, not just the SVG backend. The SVG-font format is easy to parse and was therefore chosen for a font library completely written in Haskell.

You can convert your own font to SVG with http://fontforge.sourceforge.net/, or use the included LinLibertine and Bitstream fonts.

Features:

XML speed issues can be solved by trimming the svg file to only those characters that are used (or maybe binary xml one day).

Version 1.0 of this library supports texturing, though this would only sense in a diagrams backend that does rasterization in Haskell.

Example:

  # LANGUAGE NoMonomorphismRestriction #

 import Diagrams.Prelude
 import Diagrams.Backend.Cairo.CmdLine
 import Graphics.SVGFonts.ReadFont (textSVG)

 main = defaultMain (text' "Hello World")

 text'   t = stroke (textSVG t 1) # fc purple # fillRule EvenOdd
 text''  t = stroke (textSVG' $ TextOpts t lin INSIDE_H KERN False 1 1 ) # fillRule EvenOdd
 text''' t =        (textSVG_ $ TextOpts t lin INSIDE_H KERN True  1 1 ) # fillRule EvenOdd

[Skip to ReadMe]

Properties

Versions0.1, 0.2, 0.3, 0.4, 1.0, 1.1, 1.1.1, 1.1.2, 1.2, 1.2.1, 1.3, 1.3.0.1, 1.3.0.2, 1.4, 1.4.0.1, 1.4.0.2, 1.4.0.3, 1.5.0.0
Change logCHANGES.md
Dependenciesattoparsec, base (==4.*), blaze-markup (>=0.5), blaze-svg (>=0.3.3), containers (>=0.4 && <0.6), data-default-class (<0.1), diagrams-lib (>=0.7 && <1.3), directory (>=1.1), parsec, split, text, tuple, vector, vector-space, xml [details]
LicenseBSD3
AuthorTillmann Vogt
Maintainerdiagrams-discuss@googlegroups.com
CategoryGraphics
Source repositoryhead: git clone https://github.com/diagrams/SVGFonts.git
UploadedMon Jun 2 18:15:28 UTC 2014 by jeffreyrosenbluth
DistributionsLTSHaskell:1.5.0.0, NixOS:1.5.0.0, Stackage:1.5.0.0
Downloads5323 total (220 in last 30 days)
Votes
0 []
StatusDocs uploaded by user [build log]
All reported builds failed [all 1 reports]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for SVGFonts-1.4.0.3

SVGFonts

Native font support for the Diagrams library. The SVG-Font format is easy to parse and was therefore chosen for a font library completely written in Haskell.

You can convert your own font to SVG with http://fontforge.sourceforge.net/ or use the included LinLibertine, Bitstream.

Features

Complete implementation of the features that fontforge produces (but not the complete SVG format):

XML speed issues can be solved by trimming the svg file to only those characters that are used (or maybe binary xml one day)

Version 1.0 of this library supports texturing which would only make sense in a Diagrams Backend that does rasterization in Haskell.

Example

{-# LANGUAGE NoMonomorphismRestriction #-}

import Diagrams.Prelude
import Diagrams.Backend.Cairo.CmdLine
import Graphics.SVGFonts.ReadFont

main = defaultMain ( (text' "Hello World") <> (rect 8 1) # alignBL )

text'  t = stroke (textSVG t 1) # fc purple # fillRule EvenOdd
text'' t = stroke (textSVG_ $ TextOpts t lin INSIDE_H KERN 1 1 )
             # fc purple # fillRule EvenOdd

Usage

Convert your favourite font (i.e. .ttf) into a .svg file with fontforge (the menu item under "Save All"). If a font converted on your own doesn't work, try the repair options, and if this still doesn't work edit the file by hand or tell me. Remember that a lot of fonts are not allowed to be distributed freely.