module Text.LaTeX.Base.Types (
ClassName
, PackageName
, Label
, createLabel , labelName
, Pos (..)
, TableSpec (..)
, Measure (..)
) where
import Text.LaTeX.Base.Syntax
import Text.LaTeX.Base.Render
type ClassName = String
type PackageName = String
newtype Label = Label String deriving (Eq, Show)
createLabel :: String -> Label
createLabel = Label
labelName :: Label -> String
labelName (Label str) = str
instance Render Label where
render (Label str) = fromString str
instance IsString Label where
fromString = createLabel
data Pos = Bottom | Center | Top deriving Show
instance Render Pos where
render Bottom = "b"
render Center = "c"
render Top = "t"
data TableSpec =
LeftColumn
| CenterColumn
| RightColumn
| ParColumnTop LaTeX
| ParColumnMid LaTeX
| ParColumnBot LaTeX
| VerticalLine
| DVerticalLine
deriving Show
instance Render TableSpec where
render LeftColumn = "l"
render CenterColumn = "c"
render RightColumn = "r"
render (ParColumnTop l) = "p" <> render (FixArg l)
render (ParColumnMid l) = "m" <> render (FixArg l)
render (ParColumnBot l) = "b" <> render (FixArg l)
render VerticalLine = "|"
render DVerticalLine = "||"
data Measure =
Pt Int
| Mm Float
| Cm Float
| In Float
| Ex Float
| Em Float
| CustomMeasure LaTeX
deriving Show
instance Render Measure where
render (Pt x) = render x <> "pt"
render (Mm x) = render x <> "mm"
render (Cm x) = render x <> "cm"
render (In x) = render x <> "in"
render (Ex x) = render x <> "ex"
render (Em x) = render x <> "em"
render (CustomMeasure x) = render x