Position specifies the text position.
const ( PosLeft = -1 PosBottom = -1 PosCenter = 0 PosTop = +1 PosRight = +1 )
Handler parses, formats and renders text.
type Handler interface { // Cache returns the cache of fonts used by the text handler. Cache() *font.Cache // Extents returns the Extents of a font. Extents(fnt font.Font) font.Extents // Lines splits a given block of text into separate lines. Lines(txt string) []string // Box returns the bounding box of the given non-multiline text where: // - width is the horizontal space from the origin. // - height is the vertical space above the baseline. // - depth is the vertical space below the baseline, a positive number. Box(txt string, fnt font.Font) (width, height, depth vg.Length) // Draw renders the given text with the provided style and position // on the canvas. Draw(c vg.Canvas, txt string, sty Style, pt vg.Point) }
Latex parses, formats and renders LaTeX.
type Latex struct { // Fonts is the cache of font faces used by this text handler. Fonts *font.Cache // DPI is the dot-per-inch controlling the font resolution used by LaTeX. // If zero, the resolution defaults to 72. DPI float64 }
▹ Example
func (hdlr Latex) Box(txt string, fnt font.Font) (width, height, depth vg.Length)
Box returns the bounding box of the given non-multiline text where:
func (hdlr Latex) Cache() *font.Cache
Cache returns the cache of fonts used by the text handler.
func (hdlr Latex) Draw(c vg.Canvas, txt string, sty Style, pt vg.Point)
Draw renders the given text with the provided style and position on the canvas.
func (hdlr Latex) Extents(fnt font.Font) font.Extents
Extents returns the Extents of a font.
func (hdlr Latex) Lines(txt string) []string
Lines splits a given block of text into separate lines.
Plain is a text/plain handler.
type Plain struct { Fonts *font.Cache }
func (hdlr Plain) Box(txt string, fnt font.Font) (width, height, depth vg.Length)
Box returns the bounding box of the given non-multiline text where:
func (hdlr Plain) Cache() *font.Cache
Cache returns the cache of fonts used by the text handler.
func (hdlr Plain) Draw(c vg.Canvas, txt string, sty Style, pt vg.Point)
Draw renders the given text with the provided style and position on the canvas.
func (hdlr Plain) Extents(fnt font.Font) font.Extents
Extents returns the Extents of a font.
func (hdlr Plain) Lines(txt string) []string
Lines splits a given block of text into separate lines.
Style describes what text will look like.
type Style struct { // Color is the text color. Color color.Color // Font is the font description. Font font.Font // Rotation is the text rotation in radians, performed around the axis // defined by XAlign and YAlign. Rotation float64 // XAlign and YAlign specify the alignment of the text. XAlign XAlignment YAlign YAlignment // Handler parses and formats text according to a given // dialect (Markdown, LaTeX, plain, ...) // The default is a plain text handler. Handler Handler }
func (s Style) FontExtents() font.Extents
FontExtents returns the extents of this Style's font.
func (s Style) Height(txt string) vg.Length
Height returns the height of the text when using the given font before any text rotation is applied.
func (s Style) Rectangle(txt string) vg.Rectangle
Rectangle returns a rectangle giving the bounds of this text assuming that it is drawn at (0, 0).
func (s Style) Width(txt string) (max vg.Length)
Width returns the width of lines of text when using the given font before any text rotation is applied.
XAlignment specifies text alignment in the X direction. Three preset options are available, but an arbitrary alignment can also be specified using XAlignment(desired number).
type XAlignment float64
const ( // XLeft aligns the left edge of the text with the specified location. XLeft XAlignment = 0 // XCenter aligns the horizontal center of the text with the specified location. XCenter XAlignment = -0.5 // XRight aligns the right edge of the text with the specified location. XRight XAlignment = -1 )
YAlignment specifies text alignment in the Y direction. Three preset options are available, but an arbitrary alignment can also be specified using YAlignment(desired number).
type YAlignment float64
const ( // YTop aligns the top of of the text with the specified location. YTop YAlignment = -1 // YCenter aligns the vertical center of the text with the specified location. YCenter YAlignment = -0.5 // YBottom aligns the bottom of the text with the specified location. YBottom YAlignment = 0 )