module Text.LaTeX.Packages.AMSThm
(
amsthm
, newtheorem
, theorem
, proof
, qedhere
, TheoremStyle (..)
, theoremstyle
) where
import Text.LaTeX.Base.Syntax
import Text.LaTeX.Base.Render
amsthm :: String
amsthm = "amsthm"
newtheorem :: String -> LaTeX -> LaTeX
newtheorem str l = TeXComm "newtheorem" [ FixArg $ fromString str , FixArg l ]
theorem :: String -> LaTeX -> LaTeX
theorem str l = TeXEnv str [] l
proof :: Maybe LaTeX -> LaTeX -> LaTeX
proof Nothing l = TeXEnv "proof" [ ] l
proof (Just n) l = TeXEnv "proof" [ OptArg n ] l
qedhere :: LaTeX
qedhere = TeXComm "qedhere" []
data TheoremStyle =
Plain
| Definition
| Remark
| CustomThmStyle String
deriving Show
instance Render TheoremStyle where
render Plain = "plain"
render Definition = "definition"
render Remark = "remark"
render (CustomThmStyle str) = fromString str
theoremstyle :: TheoremStyle -> LaTeX
theoremstyle thmsty = TeXComm "theoremstyle" [ FixArg $ TeXRaw $ render thmsty ]