{-# LANGUAGE OverloadedStrings #-}

-- |
-- 
-- /For contributors: This module was automatically generated by HaTeX-meta./
-- /So, please, don't make any change here directly, because/
-- /this is intended to be generated from/
-- "Text.LaTeX.Packages.AMSMath" /module via HaTeX-meta,/
-- /and therefore, changes must to be done in these places./

module Text.LaTeX.Packages.AMSMath.Monad
 ( -- * AMSMath package
   amsmath
   -- * AMSMath functions
 , math
   -- * Symbols and utilities
   -- ** Superscript and subscript
 , (^:) , (!:)
   -- ** Function symbols
 , tsin , arcsin
 , tcos , arccos
 , ttan , arctan
 , texp
 , tlog , ln
   -- ** Other symbols
 , to
   -- * Fonts
 , mathbf
 , mathrm
 , mathcal
 , mathsf
 , mathtt
 , mathit
   ) where

import Text.LaTeX.Base.Writer
import Text.LaTeX.Base.Render
import Text.LaTeX.Base.Types
import qualified Text.LaTeX.Packages.AMSMath as App
import Text.LaTeX.Packages.AMSMath()

{-|
AMSMath package.
 Example:

>  usepackage [] amsmath

-}
amsmath :: String
amsmath = App.amsmath

-- | Inline mathematical expressions.

math ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m
math a1
  = do a1 <- extractLaTeX_ a1
       textell ( App.math a1)


(^:) ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m
(^:) a1 a2
  = do a1 <- extractLaTeX_ a1
       a2 <- extractLaTeX_ a2
       textell ( (App.^:) a1 a2)


(!:) ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m
(!:) a1 a2
  = do a1 <- extractLaTeX_ a1
       a2 <- extractLaTeX_ a2
       textell ( (App.!:) a1 a2)

-- | Sine function symbol.

tsin ::   (Monad m) => LaTeXT_ m
tsin = do textell ( App.tsin)

-- | Arcsine function symbol.

arcsin ::   (Monad m) => LaTeXT_ m
arcsin = do textell ( App.arcsin)

-- | Cosine function symbol.

tcos ::   (Monad m) => LaTeXT_ m
tcos = do textell ( App.tcos)

-- | Arccosine function symbol.

arccos ::   (Monad m) => LaTeXT_ m
arccos = do textell ( App.arccos)

-- | Tangent function symbol.

ttan ::   (Monad m) => LaTeXT_ m
ttan = do textell ( App.ttan)


arctan ::   (Monad m) => LaTeXT_ m
arctan = do textell ( App.arctan)

-- | Exponential function symbol.

texp ::   (Monad m) => LaTeXT_ m
texp = do textell ( App.texp)

-- | Logarithm function symbol.

tlog ::   (Monad m) => LaTeXT_ m
tlog = do textell ( App.tlog)

-- | Natural logarithm symbol.

ln ::   (Monad m) => LaTeXT_ m
ln = do textell ( App.ln)

-- | A right-arrow.

to ::   (Monad m) => LaTeXT_ m
to = do textell ( App.to)


mathbf ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m
mathbf a1
  = do a1 <- extractLaTeX_ a1
       textell ( App.mathbf a1)


mathrm ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m
mathrm a1
  = do a1 <- extractLaTeX_ a1
       textell ( App.mathrm a1)


mathcal ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m
mathcal a1
  = do a1 <- extractLaTeX_ a1
       textell ( App.mathcal a1)


mathsf ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m
mathsf a1
  = do a1 <- extractLaTeX_ a1
       textell ( App.mathsf a1)


mathtt ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m
mathtt a1
  = do a1 <- extractLaTeX_ a1
       textell ( App.mathtt a1)


mathit ::   (Monad m) => LaTeXT_ m -> LaTeXT_ m
mathit a1
  = do a1 <- extractLaTeX_ a1
       textell ( App.mathit a1)