diagrams-lib-1.2.0.3: Embedded domain-specific language for declarative graphics

Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellNone

Diagrams.TwoD.Text

Contents

Description

Very basic text primitives along with associated attributes.

Synopsis

Creating text diagrams

data Text Source

A text primitive consists of the string contents and alignment specification, along with two transformations: the first accumulates all transformations which have been applied to the text; the second accumulates normalized, anti-scaled versions of the transformations which have had their average scaling component removed.

Constructors

Text T2 T2 TextAlignment String 

data TextAlignment Source

TextAlignment specifies the alignment of the text's origin.

text :: Renderable Text b => String -> Diagram b R2Source

Create a primitive text diagram from the given string, with center alignment, equivalent to alignedText 0.5 0.5.

Note that it takes up no space, as text size information is not available.

topLeftText :: Renderable Text b => String -> Diagram b R2Source

Create a primitive text diagram from the given string, origin at the top left corner of the text's bounding box, equivalent to alignedText 0 1.

Note that it takes up no space.

alignedText :: Renderable Text b => Double -> Double -> String -> Diagram b R2Source

Create a primitive text diagram from the given string, with the origin set to a point interpolated within the bounding box. The first parameter varies from 0 (left) to 1 (right), and the second parameter from 0 (bottom) to 1 (top).

The height of this box is determined by the font's potential ascent and descent, rather than the height of the particular string.

Note that it takes up no space.

baselineText :: Renderable Text b => String -> Diagram b R2Source

Create a primitive text diagram from the given string, with the origin set to be on the baseline, at the beginning (although not bounding). This is the reference point of showText in the Cairo graphics library.

Note that it takes up no space.

Text attributes

Font family

newtype Font Source

The Font attribute specifies the name of a font family. Inner Font attributes override outer ones.

Constructors

Font (Last String) 

getFont :: Font -> StringSource

Extract the font family name from a Font attribute.

font :: HasStyle a => String -> a -> aSource

Specify a font family to be used for all text within a diagram.

Font size

newtype FontSize Source

The FontSize attribute specifies the size of a font's em-square. Inner FontSize attributes override outer ones.

Constructors

FontSize (Last (Measure R2, Bool)) 

getFontSize :: FontSize -> Measure R2Source

Extract the size from a FontSize attribute.

getFontSizeIsLocal :: FontSize -> BoolSource

Determine whether a FontSize attribute began its life measured in Local units.

fontSizeA :: (HasStyle a, V a ~ R2) => FontSize -> a -> aSource

Apply a FontSize attribute.

fontSize :: (HasStyle a, V a ~ R2) => Measure R2 -> a -> aSource

Set the font size, that is, the size of the font's em-square as measured within the current local vector space. The default size is 1.

fontSizeN :: (HasStyle a, V a ~ R2) => Double -> a -> aSource

A convenient synonym for 'fontSize (Normalized w)'.

fontSizeO :: (HasStyle a, V a ~ R2) => Double -> a -> aSource

A convenient synonym for 'fontSize (Output w)'.

fontSizeL :: (HasStyle a, V a ~ R2) => Double -> a -> aSource

A convenient sysnonym for 'fontSize (Local w)'.

fontSizeG :: (HasStyle a, V a ~ R2) => Double -> a -> aSource

A convenient synonym for 'fontSize (Global w)'.

Font slant

data FontSlantA Source

The FontSlantA attribute specifies the slant (normal, italic, or oblique) that should be used for all text within a diagram. Inner FontSlantA attributes override outer ones.

getFontSlant :: FontSlantA -> FontSlantSource

Extract the font slant from a FontSlantA attribute.

fontSlant :: HasStyle a => FontSlant -> a -> aSource

Specify the slant (normal, italic, or oblique) that should be used for all text within a diagram. See also italic and oblique for useful special cases.

italic :: HasStyle a => a -> aSource

Set all text in italics.

oblique :: HasStyle a => a -> aSource

Set all text using an oblique slant.

Font weight

data FontWeightA Source

The FontWeightA attribute specifies the weight (normal or bold) that should be used for all text within a diagram. Inner FontWeightA attributes override outer ones.

getFontWeight :: FontWeightA -> FontWeightSource

Extract the font weight from a FontWeightA attribute.

fontWeight :: HasStyle a => FontWeight -> a -> aSource

Specify the weight (normal or bold) that should be used for all text within a diagram. See also bold for a useful special case.

bold :: HasStyle a => a -> aSource

Set all text using a bold font weight.