HaTeX-3.6: The Haskell LaTeX library.

Safe HaskellSafe-Inferred




This module provides a monadic interface to build TPath values. It does so using PathBuilders. The construction of a PathBuilder is equivalent to the construction of a TPath by hand, but with a sometimes more convenient syntax.

For example, this path corresponds to a triangle:

 trianglePath :: TPath
 trianglePath = bpath (pointAtXY (-1) 0) $ do
    line $ pointAtXY 1 0
    line $ pointAtXY 0 1

The equivalent syntax created by hand would be:

 trianglePath :: TPath
 trianglePath = Cycle $ Start (pointAtXY (-1) 0) ->- pointAtXY 1 0 ->- pointAtXY 0 1

The Cycle constructor at the beginning may seem unintuitive, since we are building the path from left to right. In the PathBuilder monad, the instructions are always written in order.


Path builder

data PathBuilder a Source

Use a path builder to construct a value of type TPath. Use bpath for this purpose.

bpath :: TPoint -> PathBuilder a -> TPathSource

Build a path using a starting point and a PathBuilder.

Builder functions

line :: TPoint -> PathBuilder ()Source

Line from the current point to the given one.

rectangle :: TPoint -> PathBuilder ()Source

Rectangle with the current point as one cornder and the given point as the opposite corner.

circle :: Double -> PathBuilder ()Source

Circle with the given radius centered at the current point.



:: Double

Half width of the ellipse.

-> Double

Half height of the ellipse.

-> PathBuilder () 

Ellipse with width and height described by the arguments and centered at the current point.