package mlpost

  1. Overview
  2. Docs

Functions to manipulate commands as if they were pictures

Pictures are a powerful way to reuse and modify parts of a figure

type t = Command.t

The abstract type of pictures

val make : Command.t -> t

Make a picture from a drawing command

val tex : string -> t

Take a string in Latex format and transform it into a picture

val transform : Transform.t -> t -> t

Apply a transformation to a picture

val bbox : t -> Path.t

Get the bounding box of a picture (with default padding, as in MetaPost)

val corner_bbox : ?dx:Num.t -> ?dy:Num.t -> t -> Path.t

Get the bounding box of a picture, according to its corners and supplied padding dx and dy.

val center : Point.t -> t -> t

Place a picture centered at some point

val place_up_left : Point.t -> t -> t

Place a picture with its upper left corner at some point

val place_up_right : Point.t -> t -> t

Place a picture with its upper right corner at some point

val place_bot_left : Point.t -> t -> t

Place a picture with its bottom left corner at some point

val place_bot_right : Point.t -> t -> t

Place a picture with its bottom right corner at some point

val beside : t -> t -> t

beside p1 p2 returns a picture in which p2 is placed right to p1

val below : t -> t -> t

below p1 p2 returns a picture in which p2 is placed below p1

Special points of the bounding box of a picture

val ctr : t -> Point.t
ctr.png
val north : t -> Point.t
ctr.pngnorth.png
val south : t -> Point.t
north.pngsouth.png
val west : t -> Point.t
south.pngwest.png
val east : t -> Point.t
west.pngeast.png
val north_west : t -> Point.t
east.png

north_west.png

val south_west : t -> Point.t

north_west.png

south_west.png

val north_east : t -> Point.t

south_west.png

north_east.png

val south_east : t -> Point.t

north_east.png

south_east.png

val corner : Command.position -> t -> Point.t

Special points of the bounding box of a picture (Deprecated)

val ulcorner : t -> Point.t

These have been superseded by the preceding functions

val llcorner : t -> Point.t
val urcorner : t -> Point.t
val lrcorner : t -> Point.t
val clip : t -> Path.t -> t

clip pic path limits pic to the cyclic path path; all elements outside of path are cut off.

Dimensions

val width : t -> Num.t
val height : t -> Num.t

Predefined Transformations

val scale : Num.t -> t -> t
val rotate : float -> t -> t
val shift : Point.t -> t -> t
val yscale : Num.t -> t -> t
val xscale : Num.t -> t -> t
val spin : float -> t -> t
type escaped = [
  1. | `Backslash
  2. | `Underscore
]
val escape_latex : escaped list -> string -> string
val escape_all : string -> string
val set_pos : Point.t -> t -> t

alias of center