| Copyright | (c) 2011 diagrams-lib team (see LICENSE) |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | diagrams-discuss@googlegroups.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Diagrams.TwoD.Text
Description
Very basic text primitives along with associated attributes.
- data Text = Text T2 T2 TextAlignment String
- data TextAlignment
- text :: Renderable Text b => String -> Diagram b R2
- topLeftText :: Renderable Text b => String -> Diagram b R2
- alignedText :: Renderable Text b => Double -> Double -> String -> Diagram b R2
- baselineText :: Renderable Text b => String -> Diagram b R2
- newtype Font = Font (Last String)
- getFont :: Font -> String
- font :: HasStyle a => String -> a -> a
- newtype FontSize = FontSize (Last (Measure R2, Bool))
- getFontSize :: FontSize -> Measure R2
- getFontSizeIsLocal :: FontSize -> Bool
- fontSizeA :: (HasStyle a, V a ~ R2) => FontSize -> a -> a
- fontSize :: (HasStyle a, V a ~ R2) => Measure R2 -> a -> a
- fontSizeN :: (HasStyle a, V a ~ R2) => Double -> a -> a
- fontSizeO :: (HasStyle a, V a ~ R2) => Double -> a -> a
- fontSizeL :: (HasStyle a, V a ~ R2) => Double -> a -> a
- fontSizeG :: (HasStyle a, V a ~ R2) => Double -> a -> a
- data FontSlant
- data FontSlantA
- getFontSlant :: FontSlantA -> FontSlant
- fontSlant :: HasStyle a => FontSlant -> a -> a
- italic :: HasStyle a => a -> a
- oblique :: HasStyle a => a -> a
- data FontWeight
- data FontWeightA
- getFontWeight :: FontWeightA -> FontWeight
- fontWeight :: HasStyle a => FontWeight -> a -> a
- bold :: HasStyle a => a -> a
Creating text diagrams
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 |
Instances
| Transformable Text | |
| HasOrigin Text | |
| Typeable * Text | |
| Renderable Text NullBackend | |
| type V Text = R2 |
data TextAlignment Source
TextAlignment specifies the alignment of the text's origin.
Constructors
| BaselineText | |
| BoxAlignedText Double Double |
text :: Renderable Text b => String -> Diagram b R2 Source
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 R2 Source
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 R2 Source
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 R2 Source
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
The Font attribute specifies the name of a font family. Inner
Font attributes override outer ones.
font :: HasStyle a => String -> a -> a Source
Specify a font family to be used for all text within a diagram.
Font size
The FontSize attribute specifies the size of a font's
em-square. Inner FontSize attributes override outer ones.
getFontSize :: FontSize -> Measure R2 Source
Extract the size from a FontSize attribute.
getFontSizeIsLocal :: FontSize -> Bool Source
Determine whether a FontSize attribute began its life measured
in Local units.
fontSize :: (HasStyle a, V a ~ R2) => Measure R2 -> a -> a Source
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 -> a Source
A convenient synonym for 'fontSize (Normalized w)'.
fontSizeO :: (HasStyle a, V a ~ R2) => Double -> a -> a Source
A convenient synonym for 'fontSize (Output w)'.
fontSizeL :: (HasStyle a, V a ~ R2) => Double -> a -> a Source
A convenient sysnonym for 'fontSize (Local w)'.
fontSizeG :: (HasStyle a, V a ~ R2) => Double -> a -> a Source
A convenient synonym for 'fontSize (Global w)'.
Font slant
Constructors
| FontSlantNormal | |
| FontSlantItalic | |
| FontSlantOblique |
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 -> FontSlant Source
Extract the font slant from a FontSlantA attribute.
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 -> FontWeight Source
Extract the font weight from a FontWeightA attribute.
fontWeight :: HasStyle a => FontWeight -> a -> a Source
Specify the weight (normal or bold) that should be
used for all text within a diagram. See also bold
for a useful special case.