Text.TeXMath

texmath-0.9.4: Conversion between formats used to represent mathematics.

Safe Haskell | None
Language | Haskell2010

Text.TeXMath

Description

Functions for converting between different representations of mathematical formulas.

Also note that in general `writeLaTeX . readLaTeX /= id`.

A typical use is to combine together a reader and writer.

    import Control.Applicative ((<$>))
    import Text.TeXMath (writeMathML, readTeX)

    texMathToMathML :: DisplayType -> String -> Either String Element
    texMathToMathML dt s = writeMathML dt <$> readTeX s

It is also possible to manipulate the AST using `Generics`. For example, if you wanted to replace all occurences of the identifier x in your expression, you do could do so with the following script.

    import Control.Applicative ((<$>))
    import Data.Generics (everywhere, mkT)
    import Text.TeXMath (writeMathML, readTeX)
    import Text.TeXMath.Types
    import Text.XML.Light (Element)

    changeIdent :: Exp -> Exp
    changeIdent (EIdentifier "x") = EIdentifier "y"
    changeIdent e = e

    texToMMLWithChangeIdent :: DisplayType -> String -> Either String Element
    texToMMLWithChangeIdent dt s =
      writeMathML dt . everywhere (mkT changeIdent) <$> readTeX s

Synopsis

- readMathML :: String -> Either String [Exp]
- readOMML :: String -> Either String [Exp]
- readTeX :: String -> Either String [Exp]
- writeTeX :: [Exp] -> String
- writeTeXWith :: Env -> [Exp] -> String
- addLaTeXEnvironment :: DisplayType -> String -> String
- writeEqn :: DisplayType -> [Exp] -> String
- writeOMML :: DisplayType -> [Exp] -> Element
- writeMathML :: DisplayType -> [Exp] -> Element
- writePandoc :: DisplayType -> [Exp] -> Maybe [Inline]
- data DisplayType
  - = DisplayBlock
  - | DisplayInline
- data Exp

# Documentation

readMathML :: String -> Either String [Exp] #

Parse a MathML expression to a list of `Exp`.

readOMML :: String -> Either String [Exp] #

readTeX :: String -> Either String [Exp] #

Parse a formula, returning a list of `Exp`.

writeTeX :: [Exp] -> String #

Transforms an expression tree to equivalent LaTeX with the default packages (amsmath and amssymb)

writeTeXWith :: Env -> [Exp] -> String #

Transforms an expression tree to equivalent LaTeX with the specified packages

addLaTeXEnvironment :: DisplayType -> String -> String #

Adds the correct LaTeX environment around a TeXMath fragment

writeEqn :: DisplayType -> [Exp] -> String #

Transforms an expression tree to equivalent Eqn with the default packages (amsmath and amssymb)

writeOMML :: DisplayType -> [Exp] -> Element #

Transforms an expression tree to an OMML XML Tree

writeMathML :: DisplayType -> [Exp] -> Element #

Transforms an expression tree to a MathML XML tree

writePandoc :: DisplayType -> [Exp] -> Maybe [Inline] #

Attempts to convert a formula to a list of `Pandoc` inlines.

data DisplayType #

Constructors

DisplayBlock | A displayed formula.
DisplayInline | A formula rendered inline in text.

Instances

Eq DisplayType # |
Methods (==) :: DisplayType -> DisplayType -> Bool # (/=) :: DisplayType -> DisplayType -> Bool #
Ord DisplayType # |
Methods compare :: DisplayType -> DisplayType -> Ordering # (<) :: DisplayType -> DisplayType -> Bool # (<=) :: DisplayType -> DisplayType -> Bool # (>) :: DisplayType -> DisplayType -> Bool # (>=) :: DisplayType -> DisplayType -> Bool # max :: DisplayType -> DisplayType -> DisplayType # min :: DisplayType -> DisplayType -> DisplayType #
Show DisplayType # |
Methods showsPrec :: Int -> DisplayType -> ShowS # show :: DisplayType -> String # showList :: [DisplayType] -> ShowS #

data Exp #

Instances

Eq Exp # |
Methods (==) :: Exp -> Exp -> Bool # (/=) :: Exp -> Exp -> Bool #
Data Exp # |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Exp -> c Exp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Exp # toConstr :: Exp -> Constr # dataTypeOf :: Exp -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Exp) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Exp) # gmapT :: (forall b. Data b => b -> b) -> Exp -> Exp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r # gmapQ :: (forall d. Data d => d -> u) -> Exp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Exp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Exp -> m Exp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp #
Ord Exp # |
Methods compare :: Exp -> Exp -> Ordering # (<) :: Exp -> Exp -> Bool # (<=) :: Exp -> Exp -> Bool # (>) :: Exp -> Exp -> Bool # (>=) :: Exp -> Exp -> Bool # max :: Exp -> Exp -> Exp # min :: Exp -> Exp -> Exp #
Read Exp # |
Methods readsPrec :: Int -> ReadS Exp # readList :: ReadS [Exp] # readPrec :: ReadPrec Exp # readListPrec :: ReadPrec [Exp] #
Show Exp # |
Methods showsPrec :: Int -> Exp -> ShowS # show :: Exp -> String # showList :: [Exp] -> ShowS #