{- Simple example This example is intended to be as simple as possible, but containing the most significant parts. The Overloaded Strings language extension is quite handy because it allows you to write text without using 'fromString' everywhere. -} {-# LANGUAGE OverloadedStrings #-} import Text.LaTeX -- By executing 'execLaTeXT' you run the 'LaTeXT' monad and make a 'LaTeX' value as output. -- With 'renderFile' you render it to 'Text' and write it in a file. main :: IO () main = execLaTeXT simple >>= renderFile "simple.tex" -- It's a good idea to separate the preamble of the body. simple :: Monad m => LaTeXT_ m simple = do thePreamble document theBody -- Preamble with some basic info. thePreamble :: Monad m => LaTeXT_ m thePreamble = do documentclass [] article author "Daniel Diaz" title "Simple example" -- Body with a section. theBody :: Monad m => LaTeXT_ m theBody = do maketitle section "Hello" "This is a simple example using the " hatex " library. " -- 'textbf' turns characters to bold font (as you already may know). textbf "Enjoy!" " " -- This is how we nest commands. textbf (large "Yoohoo!")