module Text.LaTeX.Define (
comm0_
, comm0
, comm1
, comm2
, comm3
, comm4
, comm5
, comm6
, comm7
, comm8
, comm9
, comm10
, comm11
, comm12
, env
, env2
, env3
) where
import Control.Monad.Writer
import Data.List (intersperse)
import Data.String.Combinators (braces,comma,brackets)
import Text.LaTeX.Monad
import Text.LaTeX.Result
listOpts :: [LaTeX] -> LaTeX
listOpts [] = ""
listOpts xs = brackets . sequence_ . intersperse comma $ xs
comm0_ :: LaTeX -> LaTeX
comm0_ = mappend "\\"
comm0 :: LaTeX -> LaTeX
comm0 n = do comm0_ n
braces ""
comm1 :: LaTeX -> LaTeX -> LaTeX
comm1 n x = do comm0_ n
braces x
comm2 :: LaTeX -> LaTeX -> [LaTeX] -> LaTeX
comm2 n x opts = do comm1 n x
listOpts opts
comm3 :: LaTeX -> [LaTeX] -> LaTeX
comm3 n opts = do comm0_ n
listOpts opts
comm4 :: LaTeX -> [LaTeX] -> LaTeX -> LaTeX
comm4 n opts x = do comm3 n opts
braces x
comm5 :: LaTeX -> LaTeX -> LaTeX -> LaTeX
comm5 n x y = do comm1 n x
braces y
comm6 :: LaTeX -> LaTeX -> [LaTeX] -> LaTeX -> LaTeX
comm6 n x opts y = do comm2 n x opts
braces y
comm7 :: LaTeX -> LaTeX -> [LaTeX] -> LaTeX -> LaTeX -> LaTeX
comm7 n x opts y z = do comm6 n x opts y
braces z
comm8 :: LaTeX -> LaTeX -> LaTeX
comm8 n x = braces $ do comm0 n
x
comm9 :: LaTeX -> [LaTeX] -> LaTeX -> LaTeX -> LaTeX
comm9 n opts x y = do comm4 n opts x
braces y
comm10 :: LaTeX -> [LaTeX] -> [LaTeX] -> LaTeX -> LaTeX
comm10 n opts1 opts2 x = do comm3 n opts1
listOpts opts2
braces x
comm11 :: LaTeX -> LaTeX -> [LaTeX] -> [LaTeX] -> LaTeX -> LaTeX
comm11 n x opts1 opts2 y = do comm2 n x opts1
listOpts opts2
braces y
comm12 :: LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX
comm12 n x y z = do comm5 n x y
braces z
env :: LaTeX -> LaTeX -> LaTeX
env t x = do comm1 "begin" t
x
comm1 "end" t
env2 :: LaTeX -> [LaTeX] -> LaTeX -> LaTeX
env2 t opts x = do comm2 "begin" t opts
x
comm1 "end" t
env3 :: LaTeX -> [LaTeX] -> LaTeX -> LaTeX -> LaTeX
env3 t opts x y = do comm6 "begin" t opts x
y
comm1 "end" t