HaTeX- LaTeX code writer.

Safe HaskellNone




LaTeX syntax description in the definition of the LaTeX datatype. If you want to add new commands or environments not defined in the library, import this module and use LaTeX data constructors.


LaTeX datatype

data LaTeX Source

A LaTeX object represents some expression written in LaTeX.


TeXRaw Text

Raw text.

TeXComm String [TeXArg]

Constructor for commands. First argument is the name of the command. Second, its arguments.

TeXCommS String

Constructor for commands with no arguments.

TeXEnv String [TeXArg] LaTeX

Constructor for environments. First argument is the name of the environment. Second, its arguments. Third, its content.

TeXMath LaTeX

Mathematical expressions.

TeXNewLine Bool

Newline character.

TeXOp String LaTeX LaTeX


TeXBraces LaTeX 
TeXSeq LaTeX LaTeX

Sequencing of LaTeX expressions. Use <> preferably.


An empty expression. Neutral element of <>.


Eq LaTeX 
Num LaTeX

Methods abs and signum are undefined. Don't use them!

Show LaTeX 
IsString LaTeX

Method fromString escapes LaTeX reserved characters.

Monoid LaTeX

Method mappend is strict in both arguments (except in the case when the first argument is TeXEmpty).

Render LaTeX 

data TeXArg Source

An argument for a LaTeX command or environment.


OptArg LaTeX

Optional argument.

FixArg LaTeX

Fixed argument.

MOptArg [LaTeX]

Multiple optional argument.

SymArg LaTeX

An argument enclosed between < and >.

MSymArg [LaTeX]

Version of SymArg with multiple options.

(<>) :: Monoid m => m -> m -> m

An infix synonym for mappend.


comm :: String -> LaTeXSource

A simple (without arguments) command generator, given the name of the command.