HaTeX 2.1.3 → 3.0.0
raw patch · 34 files changed
+3322/−2129 lines, 34 filesdep +bytestringdep +textdep −dstringdep −filepathdep −string-combinatorsdep ~basedep ~mtlsetup-changedPVP ok
version bump matches the API change (PVP)
Dependencies added: bytestring, text
Dependencies removed: dstring, filepath, string-combinators
Dependency ranges changed: base, mtl
API changes (from Hackage documentation)
- Text.LaTeX: export :: MonadIO m => LaTeX m -> FilePath -> m ()
- Text.LaTeX: hatex :: Monad m => LaTeX m
- Text.LaTeX: hatexVersion :: Monad m => LaTeX m
- Text.LaTeX: render :: Monad m => LaTeX m -> m String
- Text.LaTeX.Arguments: a4paper :: Monad m => ClassOption m
- Text.LaTeX.Arguments: a5paper :: Monad m => ClassOption m
- Text.LaTeX.Arguments: article :: Monad m => Class m
- Text.LaTeX.Arguments: b5paper :: Monad m => ClassOption m
- Text.LaTeX.Arguments: book :: Monad m => Class m
- Text.LaTeX.Arguments: cm :: Monad m => Float -> LaTeX m
- Text.LaTeX.Arguments: depth :: Monad m => LaTeX m
- Text.LaTeX.Arguments: em :: Monad m => Float -> LaTeX m
- Text.LaTeX.Arguments: empty :: Monad m => Style m
- Text.LaTeX.Arguments: ex :: Monad m => Float -> LaTeX m
- Text.LaTeX.Arguments: executivepaper :: Monad m => ClassOption m
- Text.LaTeX.Arguments: fleqn :: Monad m => ClassOption m
- Text.LaTeX.Arguments: headings :: Monad m => Style m
- Text.LaTeX.Arguments: height :: Monad m => LaTeX m
- Text.LaTeX.Arguments: inch :: Monad m => Float -> LaTeX m
- Text.LaTeX.Arguments: landscape :: Monad m => ClassOption m
- Text.LaTeX.Arguments: legalpaper :: Monad m => ClassOption m
- Text.LaTeX.Arguments: leqno :: Monad m => ClassOption m
- Text.LaTeX.Arguments: letterpaper :: Monad m => ClassOption m
- Text.LaTeX.Arguments: minimal :: Monad m => Class m
- Text.LaTeX.Arguments: mm :: Monad m => Float -> LaTeX m
- Text.LaTeX.Arguments: notitlepage :: Monad m => ClassOption m
- Text.LaTeX.Arguments: onecolumn :: Monad m => ClassOption m
- Text.LaTeX.Arguments: oneside :: Monad m => ClassOption m
- Text.LaTeX.Arguments: openany :: Monad m => ClassOption m
- Text.LaTeX.Arguments: openright :: Monad m => ClassOption m
- Text.LaTeX.Arguments: plain :: Monad m => Style m
- Text.LaTeX.Arguments: proc :: Monad m => Class m
- Text.LaTeX.Arguments: pt :: Monad m => Int -> LaTeX m
- Text.LaTeX.Arguments: report :: Monad m => Class m
- Text.LaTeX.Arguments: slides :: Monad m => Class m
- Text.LaTeX.Arguments: titlepage :: Monad m => ClassOption m
- Text.LaTeX.Arguments: totalheight :: Monad m => LaTeX m
- Text.LaTeX.Arguments: twocolumn :: Monad m => ClassOption m
- Text.LaTeX.Arguments: twoside :: Monad m => ClassOption m
- Text.LaTeX.Arguments: type Class m = LaTeX m
- Text.LaTeX.Arguments: type ClassOption m = LaTeX m
- Text.LaTeX.Arguments: type Color m = LaTeX m
- Text.LaTeX.Arguments: type Date m = LaTeX m
- Text.LaTeX.Arguments: type Encoding m = LaTeX m
- Text.LaTeX.Arguments: type Extend m = LaTeX m
- Text.LaTeX.Arguments: type Height m = LaTeX m
- Text.LaTeX.Arguments: type ItemOption m = LaTeX m
- Text.LaTeX.Arguments: type Language m = LaTeX m
- Text.LaTeX.Arguments: type Lift m = LaTeX m
- Text.LaTeX.Arguments: type Marker m = LaTeX m
- Text.LaTeX.Arguments: type Name m = LaTeX m
- Text.LaTeX.Arguments: type PlacementSpecifier m = LaTeX m
- Text.LaTeX.Arguments: type Style m = LaTeX m
- Text.LaTeX.Arguments: type Text m = LaTeX m
- Text.LaTeX.Arguments: type Title m = LaTeX m
- Text.LaTeX.Arguments: type URL m = LaTeX m
- Text.LaTeX.Arguments: type Width m = LaTeX m
- Text.LaTeX.Arguments: type Word m = LaTeX m
- Text.LaTeX.Arguments: width :: Monad m => LaTeX m
- Text.LaTeX.Commands: (&) :: Monad m => LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: (//) :: Monad m => LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: abstract :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: appendix :: Monad m => LaTeX m
- Text.LaTeX.Commands: author :: Monad m => Name m -> LaTeX m
- Text.LaTeX.Commands: backmatter :: Monad m => LaTeX m
- Text.LaTeX.Commands: bigskip :: Monad m => LaTeX m
- Text.LaTeX.Commands: caption :: Monad m => Text m -> LaTeX m
- Text.LaTeX.Commands: center :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: chapter :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: chapter_ :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: chaptertab :: Monad m => Title m -> Title m -> LaTeX m
- Text.LaTeX.Commands: cjustified :: Monad m => Width m -> LaTeX m
- Text.LaTeX.Commands: cleardoublepage :: Monad m => LaTeX m
- Text.LaTeX.Commands: clearpage :: Monad m => LaTeX m
- Text.LaTeX.Commands: cline :: Monad m => Int -> Int -> LaTeX m
- Text.LaTeX.Commands: csep :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: date :: Monad m => Date m -> LaTeX m
- Text.LaTeX.Commands: description :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: document :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: documentclass :: Monad m => [ClassOption m] -> Class m -> LaTeX m
- Text.LaTeX.Commands: emph :: Monad m => Text m -> LaTeX m
- Text.LaTeX.Commands: endsen :: Monad m => LaTeX m
- Text.LaTeX.Commands: enumerate :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: fbox :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: figure :: Monad m => [PlacementSpecifier m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: flushleft :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: flushright :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: footnote :: Monad m => Text m -> LaTeX m
- Text.LaTeX.Commands: footnotesize :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: framebox :: Monad m => [Width m] -> [Char] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: frenchspacing :: Monad m => LaTeX m
- Text.LaTeX.Commands: frontmatter :: Monad m => LaTeX m
- Text.LaTeX.Commands: fussy :: Monad m => LaTeX m
- Text.LaTeX.Commands: hline :: Monad m => LaTeX m
- Text.LaTeX.Commands: hspace :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: hspace_ :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: huge :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: huge2 :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: hyp :: Monad m => LaTeX m
- Text.LaTeX.Commands: hyphenation :: Monad m => [Word m] -> LaTeX m
- Text.LaTeX.Commands: ignorespaces :: Monad m => LaTeX m
- Text.LaTeX.Commands: ignorespacesafterend :: Monad m => LaTeX m
- Text.LaTeX.Commands: include :: Monad m => FilePath -> LaTeX m
- Text.LaTeX.Commands: includeonly :: Monad m => [FilePath] -> LaTeX m
- Text.LaTeX.Commands: input :: Monad m => FilePath -> LaTeX m
- Text.LaTeX.Commands: item :: Monad m => [ItemOption m] -> LaTeX m
- Text.LaTeX.Commands: itemize :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: label :: Monad m => Marker m -> LaTeX m
- Text.LaTeX.Commands: large :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: large2 :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: large3 :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: latex :: Monad m => LaTeX m
- Text.LaTeX.Commands: latexe :: Monad m => LaTeX m
- Text.LaTeX.Commands: ldots :: Monad m => LaTeX m
- Text.LaTeX.Commands: linebreak :: Monad m => Int -> LaTeX m
- Text.LaTeX.Commands: linespread :: Monad m => Float -> LaTeX m
- Text.LaTeX.Commands: listoffigures :: Monad m => LaTeX m
- Text.LaTeX.Commands: listoftables :: Monad m => LaTeX m
- Text.LaTeX.Commands: lnbk :: Monad m => LaTeX m
- Text.LaTeX.Commands: lnbk_ :: Monad m => LaTeX m
- Text.LaTeX.Commands: mainmatter :: Monad m => LaTeX m
- Text.LaTeX.Commands: makebox :: Monad m => [Width m] -> [Char] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: maketitle :: Monad m => LaTeX m
- Text.LaTeX.Commands: matrixTab :: Monad m => [LaTeX m] -> LaTeX m -> LxMatrix m -> Tabular m
- Text.LaTeX.Commands: mbox :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: mbox_ :: Monad m => LaTeX m
- Text.LaTeX.Commands: minipage :: Monad m => [Char] -> Width m -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: multicolumn :: Monad m => Int -> LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: newcommand :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: newenvironment :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: newpage :: Monad m => LaTeX m
- Text.LaTeX.Commands: nolinebreak :: Monad m => Int -> LaTeX m
- Text.LaTeX.Commands: nopagebreak :: Monad m => Int -> LaTeX m
- Text.LaTeX.Commands: normalsize :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: pagebreak :: Monad m => Int -> LaTeX m
- Text.LaTeX.Commands: pageref :: Monad m => Marker m -> LaTeX m
- Text.LaTeX.Commands: pagestyle :: Monad m => Style m -> LaTeX m
- Text.LaTeX.Commands: par :: Monad m => LaTeX m
- Text.LaTeX.Commands: paragraph :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: paragraph_ :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: paragraphtab :: Monad m => Title m -> Title m -> LaTeX m
- Text.LaTeX.Commands: parbox :: Monad m => [Char] -> Width m -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: part :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: part_ :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: parttab :: Monad m => Title m -> Title m -> LaTeX m
- Text.LaTeX.Commands: pfbk :: Monad m => LaTeX m
- Text.LaTeX.Commands: phantom :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: protect :: Monad m => LaTeX m
- Text.LaTeX.Commands: providecommand :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: providesPackage :: Monad m => Name m -> LaTeX m
- Text.LaTeX.Commands: qts :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: quotation :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: quote :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: raisebox :: Monad m => Lift m -> [Extend m] -> [Extend m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: ref :: Monad m => Marker m -> LaTeX m
- Text.LaTeX.Commands: renewcommand :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: rule :: Monad m => [Lift m] -> Width m -> Height m -> LaTeX m
- Text.LaTeX.Commands: scriptsize :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: section :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: section_ :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: sectiontab :: Monad m => Title m -> Title m -> LaTeX m
- Text.LaTeX.Commands: skip :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: sloppy :: Monad m => LaTeX m
- Text.LaTeX.Commands: small :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: smallskip :: Monad m => LaTeX m
- Text.LaTeX.Commands: stretch :: Monad m => Int -> LaTeX m
- Text.LaTeX.Commands: string :: Monad m => String -> LaTeX m
- Text.LaTeX.Commands: subparagraph :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: subparagraph_ :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: subparagraphtab :: Monad m => Title m -> Title m -> LaTeX m
- Text.LaTeX.Commands: subsection :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: subsection_ :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: subsectiontab :: Monad m => Title m -> Title m -> LaTeX m
- Text.LaTeX.Commands: subsubsection :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: subsubsection_ :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: subsubsectiontab :: Monad m => Title m -> Title m -> LaTeX m
- Text.LaTeX.Commands: table :: Monad m => [PlacementSpecifier m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Commands: tableofcontents :: Monad m => LaTeX m
- Text.LaTeX.Commands: tabular :: Monad m => [LaTeX m] -> LaTeX m -> LaTeX m -> Tabular m
- Text.LaTeX.Commands: tex :: Monad m => LaTeX m
- Text.LaTeX.Commands: textbf :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textit :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textmd :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textnormal :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textrm :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textsc :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textsf :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textsl :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: texttt :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: textup :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: thispagestyle :: Monad m => Style m -> LaTeX m
- Text.LaTeX.Commands: tiny :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: title :: Monad m => Title m -> LaTeX m
- Text.LaTeX.Commands: today :: Monad m => LaTeX m
- Text.LaTeX.Commands: type LxMatrix m = [[LaTeX m]]
- Text.LaTeX.Commands: type Tabular m = LaTeX m
- Text.LaTeX.Commands: underline :: Monad m => Text m -> LaTeX m
- Text.LaTeX.Commands: usepackage :: Monad m => [PackageOption m] -> Package m -> LaTeX m
- Text.LaTeX.Commands: verb :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: verb_ :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: verbatim :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: verbatim_ :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: verse :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: vspace :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Commands: vspace_ :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm0 :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm0_ :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm1 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm10 :: Monad m => LaTeX m -> [LaTeX m] -> [LaTeX m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm11 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> [LaTeX m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm12 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm2 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> LaTeX m
- Text.LaTeX.Define: comm3 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m
- Text.LaTeX.Define: comm4 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm5 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm6 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm7 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm8 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: comm9 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: env :: Monad m => LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: env2 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m
- Text.LaTeX.Define: env3 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -> LaTeX m
- Text.LaTeX.Macro: m_article :: Monad m => Name m -> Title m -> LaTeX m -> LaTeX m
- Text.LaTeX.Macro: m_articlep :: Monad m => Name m -> Title m -> [([PackageOption m], Package m)] -> LaTeX m -> LaTeX m
- Text.LaTeX.Macro: m_math :: Monad m => Name m -> Title m -> LaTeX m -> LaTeX m
- Text.LaTeX.Macro: m_simple :: Monad m => [ClassOption m] -> Class m -> Name m -> Title m -> LaTeX m -> LaTeX m
- Text.LaTeX.Macro: m_wpkgs :: Monad m => [ClassOption m] -> Class m -> Name m -> Title m -> [([PackageOption m], Package m)] -> LaTeX m -> LaTeX m
- Text.LaTeX.Monad: genlx :: Monad m => LaTeX m -> LaTeXT m a
- Text.LaTeX.Monad: instance Monad m => Eq (LaTeXT m a)
- Text.LaTeX.Monad: instance Monad m => IsString (LaTeXT m a)
- Text.LaTeX.Monad: instance Monad m => Monoid (LaTeXT m a)
- Text.LaTeX.Monad: instance Monad m => Show (LaTeXT m a)
- Text.LaTeX.Monad: lx :: Monad m => Result -> LaTeX m
- Text.LaTeX.Monad: lxany :: (Monad m, Show a) => a -> LaTeX m
- Text.LaTeX.Monad: lxanyw :: (Monad m, Show b) => b -> LaTeXT m a
- Text.LaTeX.Monad: lxw :: Monad m => Result -> LaTeXT m a
- Text.LaTeX.Monad: mlx :: Monad m => m a -> LaTeXT m a
- Text.LaTeX.Monad: nlx :: Monad m => LaTeXT m a -> m Result
- Text.LaTeX.Monad: reslx :: Monad m => (Result -> Result) -> (LaTeXT m a -> LaTeXT m a)
- Text.LaTeX.Monad: type LaTeX m = LaTeXT m ()
- Text.LaTeX.Monad: type LaTeXT m a = WriterT Result m a
- Text.LaTeX.Monad: ungenlx :: Monad m => LaTeXT m a -> LaTeX m
- Text.LaTeX.Packages: (!:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (*:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (+-) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (-+) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (-/) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (->>) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (-|) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (/=:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (/@) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (<*>) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (<=:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (<=@) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (<@) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (==:) :: Monad m => LaTeXT m a -> LaTeXT m a -> LaTeXT m a
- Text.LaTeX.Packages: (===) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (>=:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (>=@) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (>@) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (^:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (|-) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (|.|) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (~=) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: (~~) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: acute :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: alpha :: Monad m => LaTeX m
- Text.LaTeX.Packages: amsmath :: Monad m => Package m
- Text.LaTeX.Packages: ansinew :: Monad m => Encoding m
- Text.LaTeX.Packages: applemac :: Monad m => Encoding m
- Text.LaTeX.Packages: babel :: Monad m => Package m
- Text.LaTeX.Packages: bar :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: beta :: Monad m => LaTeX m
- Text.LaTeX.Packages: binom :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: breve :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: cdot :: Monad m => MathTerm m
- Text.LaTeX.Packages: cdots :: Monad m => MathTerm m
- Text.LaTeX.Packages: check :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: chi :: Monad m => LaTeX m
- Text.LaTeX.Packages: color :: Monad m => Color m -> LaTeX m
- Text.LaTeX.Packages: colorpkg :: Monad m => Package m
- Text.LaTeX.Packages: cp1251 :: Monad m => Encoding m
- Text.LaTeX.Packages: cp850 :: Monad m => Encoding m
- Text.LaTeX.Packages: cp866nav :: Monad m => Encoding m
- Text.LaTeX.Packages: dagger :: Monad m => LaTeX m
- Text.LaTeX.Packages: ddagger :: Monad m => LaTeX m
- Text.LaTeX.Packages: ddot :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: ddots :: Monad m => MathTerm m
- Text.LaTeX.Packages: delta :: Monad m => LaTeX m
- Text.LaTeX.Packages: delta_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: doc :: Monad m => Package m
- Text.LaTeX.Packages: dot :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: dvipsnames :: Monad m => PackageOption m
- Text.LaTeX.Packages: epsilon :: Monad m => LaTeX m
- Text.LaTeX.Packages: equation :: Monad m => MathTerm m -> LaTeX m
- Text.LaTeX.Packages: equation_ :: Monad m => MathTerm m -> LaTeX m
- Text.LaTeX.Packages: eta :: Monad m => LaTeX m
- Text.LaTeX.Packages: euro :: Monad m => LaTeX m
- Text.LaTeX.Packages: eurosym :: Monad m => Package m
- Text.LaTeX.Packages: exscale :: Monad m => Package m
- Text.LaTeX.Packages: fancy :: Monad m => Style m
- Text.LaTeX.Packages: fancyhdr :: Monad m => Package m
- Text.LaTeX.Packages: fontenc :: Monad m => Package m
- Text.LaTeX.Packages: forall :: Monad m => LaTeX m
- Text.LaTeX.Packages: gamma :: Monad m => LaTeX m
- Text.LaTeX.Packages: gamma_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: grave :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: hat :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: href :: Monad m => URL m -> Text m -> LaTeX m
- Text.LaTeX.Packages: hyperref :: Monad m => Package m
- Text.LaTeX.Packages: ifthen :: Monad m => Package m
- Text.LaTeX.Packages: inputenc :: Monad m => Package m
- Text.LaTeX.Packages: instance Monad m => Floating (LaTeXT m a)
- Text.LaTeX.Packages: instance Monad m => Fractional (LaTeXT m a)
- Text.LaTeX.Packages: instance Monad m => Num (LaTeXT m a)
- Text.LaTeX.Packages: iota :: Monad m => LaTeX m
- Text.LaTeX.Packages: kappa :: Monad m => LaTeX m
- Text.LaTeX.Packages: koi8_ru :: Monad m => Encoding m
- Text.LaTeX.Packages: lambda :: Monad m => LaTeX m
- Text.LaTeX.Packages: lambda_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: latin1 :: Monad m => Encoding m
- Text.LaTeX.Packages: lgr :: Monad m => Encoding m
- Text.LaTeX.Packages: lim :: Monad m => MathTerm m
- Text.LaTeX.Packages: macukr :: Monad m => Encoding m
- Text.LaTeX.Packages: makeidx :: Monad m => Package m
- Text.LaTeX.Packages: math :: Monad m => MathTerm m -> LaTeX m
- Text.LaTeX.Packages: mathring :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: monochrome :: Monad m => PackageOption m
- Text.LaTeX.Packages: msym :: Monad m => Package m
- Text.LaTeX.Packages: mu :: Monad m => LaTeX m
- Text.LaTeX.Packages: nodvipsnames :: Monad m => PackageOption m
- Text.LaTeX.Packages: normalcolor :: Monad m => LaTeX m
- Text.LaTeX.Packages: nu :: Monad m => LaTeX m
- Text.LaTeX.Packages: oT1 :: Monad m => Encoding m
- Text.LaTeX.Packages: omega :: Monad m => LaTeX m
- Text.LaTeX.Packages: omega_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: overbrace :: Monad m => MathTerm m -> MathTerm m
- Text.LaTeX.Packages: overline :: Monad m => MathTerm m -> MathTerm m
- Text.LaTeX.Packages: pagecolor :: Monad m => Color m -> LaTeX m
- Text.LaTeX.Packages: pdftex :: Monad m => PackageOption m
- Text.LaTeX.Packages: phi :: Monad m => LaTeX m
- Text.LaTeX.Packages: phi_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: pi_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: proof :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: psi :: Monad m => LaTeX m
- Text.LaTeX.Packages: psi_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: rgb :: Monad m => Float -> Float -> Float -> Color m
- Text.LaTeX.Packages: rho :: Monad m => LaTeX m
- Text.LaTeX.Packages: selectlanguage :: Monad m => Language m -> LaTeX m
- Text.LaTeX.Packages: sigma :: Monad m => LaTeX m
- Text.LaTeX.Packages: sigma_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: smash :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: sqroot :: Monad m => [MathTerm m] -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: summ :: Monad m => MathTerm m -> MathTerm m -> MathTerm m
- Text.LaTeX.Packages: sums :: Monad m => MathTerm m
- Text.LaTeX.Packages: sums_ :: Monad m => MathTerm m
- Text.LaTeX.Packages: syntaxonly :: Monad m => LaTeX m
- Text.LaTeX.Packages: syntonly :: Monad m => Package m
- Text.LaTeX.Packages: t1 :: Monad m => Encoding m
- Text.LaTeX.Packages: t2A :: Monad m => Encoding m
- Text.LaTeX.Packages: t2B :: Monad m => Encoding m
- Text.LaTeX.Packages: t2C :: Monad m => Encoding m
- Text.LaTeX.Packages: tau :: Monad m => LaTeX m
- Text.LaTeX.Packages: textcelsius :: Monad m => LaTeX m
- Text.LaTeX.Packages: textcomp :: Monad m => Package m
- Text.LaTeX.Packages: textdegree :: Monad m => LaTeX m
- Text.LaTeX.Packages: texteuro :: Monad m => LaTeX m
- Text.LaTeX.Packages: theta :: Monad m => LaTeX m
- Text.LaTeX.Packages: theta_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: tilde :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: type MathTerm m = LaTeX m
- Text.LaTeX.Packages: type Package m = LaTeX m
- Text.LaTeX.Packages: type PackageOption m = LaTeX m
- Text.LaTeX.Packages: ucs :: Monad m => Package m
- Text.LaTeX.Packages: underbrace :: Monad m => MathTerm m -> MathTerm m
- Text.LaTeX.Packages: upsilon :: Monad m => LaTeX m
- Text.LaTeX.Packages: upsilon_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: usenames :: Monad m => PackageOption m
- Text.LaTeX.Packages: utf8x :: Monad m => Encoding m
- Text.LaTeX.Packages: varepsilon :: Monad m => LaTeX m
- Text.LaTeX.Packages: varphi :: Monad m => LaTeX m
- Text.LaTeX.Packages: varpi :: Monad m => LaTeX m
- Text.LaTeX.Packages: varrho :: Monad m => LaTeX m
- Text.LaTeX.Packages: varsigma :: Monad m => LaTeX m
- Text.LaTeX.Packages: vartheta :: Monad m => LaTeX m
- Text.LaTeX.Packages: vdots :: Monad m => MathTerm m
- Text.LaTeX.Packages: vec :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: widehat :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: widetilde :: Monad m => LaTeX m -> LaTeX m
- Text.LaTeX.Packages: x2 :: Monad m => Encoding m
- Text.LaTeX.Packages: xi :: Monad m => LaTeX m
- Text.LaTeX.Packages: xi_ :: Monad m => LaTeX m
- Text.LaTeX.Packages: zeta :: Monad m => LaTeX m
- Text.LaTeX.Result: fromResult :: Result -> String
- Text.LaTeX.Result: resCharsStr :: [(Char, Result)]
- Text.LaTeX.Result: toResult :: String -> Result
- Text.LaTeX.Result: type Result = DString
+ Text.LaTeX.Base: (<>) :: Monoid a => a -> a -> a
+ Text.LaTeX.Base: data LaTeX
+ Text.LaTeX.Base.Commands: (&) :: LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: a0paper :: LaTeX
+ Text.LaTeX.Base.Commands: a1paper :: LaTeX
+ Text.LaTeX.Base.Commands: a2paper :: LaTeX
+ Text.LaTeX.Base.Commands: a3paper :: LaTeX
+ Text.LaTeX.Base.Commands: a4paper :: LaTeX
+ Text.LaTeX.Base.Commands: a5paper :: LaTeX
+ Text.LaTeX.Base.Commands: a6paper :: LaTeX
+ Text.LaTeX.Base.Commands: abstract :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: alph :: LaTeX
+ Text.LaTeX.Base.Commands: alph_ :: LaTeX
+ Text.LaTeX.Base.Commands: appendix :: LaTeX
+ Text.LaTeX.Base.Commands: arabic :: LaTeX
+ Text.LaTeX.Base.Commands: article :: LaTeX
+ Text.LaTeX.Base.Commands: author :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: b0paper :: LaTeX
+ Text.LaTeX.Base.Commands: b1paper :: LaTeX
+ Text.LaTeX.Base.Commands: b2paper :: LaTeX
+ Text.LaTeX.Base.Commands: b3paper :: LaTeX
+ Text.LaTeX.Base.Commands: b4paper :: LaTeX
+ Text.LaTeX.Base.Commands: b5paper :: LaTeX
+ Text.LaTeX.Base.Commands: b6paper :: LaTeX
+ Text.LaTeX.Base.Commands: bigskip :: LaTeX
+ Text.LaTeX.Base.Commands: book :: LaTeX
+ Text.LaTeX.Base.Commands: center :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: chapter :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: cite :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: cleardoublepage :: LaTeX
+ Text.LaTeX.Base.Commands: clearpage :: LaTeX
+ Text.LaTeX.Base.Commands: cline :: Int -> Int -> LaTeX
+ Text.LaTeX.Base.Commands: date :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: ddots :: LaTeX
+ Text.LaTeX.Base.Commands: description :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: document :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: documentclass :: [LaTeX] -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: draft :: LaTeX
+ Text.LaTeX.Base.Commands: emph :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: empty :: LaTeX
+ Text.LaTeX.Base.Commands: enumerate :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: equation :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: equation_ :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: executivepaper :: LaTeX
+ Text.LaTeX.Base.Commands: fbox :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: fleqn :: LaTeX
+ Text.LaTeX.Base.Commands: flushleft :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: flushright :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: footnote :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: footnotesize :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: framebox :: Maybe Measure -> Maybe Pos -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: hatex :: LaTeX
+ Text.LaTeX.Base.Commands: hatex3 :: LaTeX
+ Text.LaTeX.Base.Commands: hatex_meta :: LaTeX
+ Text.LaTeX.Base.Commands: hatex_version :: LaTeX
+ Text.LaTeX.Base.Commands: headings :: LaTeX
+ Text.LaTeX.Base.Commands: hline :: LaTeX
+ Text.LaTeX.Base.Commands: hspace :: Measure -> LaTeX
+ Text.LaTeX.Base.Commands: hspace_ :: Measure -> LaTeX
+ Text.LaTeX.Base.Commands: huge :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: huge2 :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: hyp :: LaTeX
+ Text.LaTeX.Base.Commands: hyphenation :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: indent :: LaTeX
+ Text.LaTeX.Base.Commands: institute :: Maybe LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: item :: Maybe LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: itemize :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: laTeX2 :: LaTeX
+ Text.LaTeX.Base.Commands: laTeXe :: LaTeX
+ Text.LaTeX.Base.Commands: label :: Label -> LaTeX
+ Text.LaTeX.Base.Commands: landscape :: LaTeX
+ Text.LaTeX.Base.Commands: large :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: large2 :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: large3 :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: latex :: LaTeX
+ Text.LaTeX.Base.Commands: ldots :: LaTeX
+ Text.LaTeX.Base.Commands: legalpaper :: LaTeX
+ Text.LaTeX.Base.Commands: leqno :: LaTeX
+ Text.LaTeX.Base.Commands: letterpaper :: LaTeX
+ Text.LaTeX.Base.Commands: linebreak :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: linespread :: Float -> LaTeX
+ Text.LaTeX.Base.Commands: lnbk :: LaTeX
+ Text.LaTeX.Base.Commands: lnbk_ :: LaTeX
+ Text.LaTeX.Base.Commands: makebox :: Maybe Measure -> Maybe Pos -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: maketitle :: LaTeX
+ Text.LaTeX.Base.Commands: markboth :: LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: markright :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: mbox :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: minimal :: LaTeX
+ Text.LaTeX.Base.Commands: myheadings :: LaTeX
+ Text.LaTeX.Base.Commands: newline :: LaTeX
+ Text.LaTeX.Base.Commands: newpage :: LaTeX
+ Text.LaTeX.Base.Commands: noindent :: LaTeX
+ Text.LaTeX.Base.Commands: nolinebreak :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: nopagebreak :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: normalsize :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: notitlepage :: LaTeX
+ Text.LaTeX.Base.Commands: onecolumn :: LaTeX
+ Text.LaTeX.Base.Commands: oneside :: LaTeX
+ Text.LaTeX.Base.Commands: openany :: LaTeX
+ Text.LaTeX.Base.Commands: openright :: LaTeX
+ Text.LaTeX.Base.Commands: pagebreak :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: pagenumbering :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: pageref :: Label -> LaTeX
+ Text.LaTeX.Base.Commands: pagestyle :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: paragraph :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: parbox :: Maybe Pos -> Measure -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: part :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: plain :: LaTeX
+ Text.LaTeX.Base.Commands: proc :: LaTeX
+ Text.LaTeX.Base.Commands: protect :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: qts :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: quote :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: raisebox :: Measure -> Maybe Measure -> Maybe Measure -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: raw :: Text -> LaTeX
+ Text.LaTeX.Base.Commands: ref :: Label -> LaTeX
+ Text.LaTeX.Base.Commands: report :: LaTeX
+ Text.LaTeX.Base.Commands: roman :: LaTeX
+ Text.LaTeX.Base.Commands: roman_ :: LaTeX
+ Text.LaTeX.Base.Commands: rule :: Maybe Measure -> Measure -> Measure -> LaTeX
+ Text.LaTeX.Base.Commands: scriptsize :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: section :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: slides :: LaTeX
+ Text.LaTeX.Base.Commands: small :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: smallskip :: LaTeX
+ Text.LaTeX.Base.Commands: stretch :: Int -> LaTeX
+ Text.LaTeX.Base.Commands: subparagraph :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: subsection :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: subsubsection :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: tableofcontents :: LaTeX
+ Text.LaTeX.Base.Commands: tabular :: Maybe Pos -> [TableSpec] -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: tex :: LaTeX
+ Text.LaTeX.Base.Commands: textbf :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textit :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textmd :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textnormal :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textrm :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textsc :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textsf :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textsl :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: texttt :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: textup :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: thanks :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: thispagestyle :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: tiny :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: title :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: titlepage :: LaTeX
+ Text.LaTeX.Base.Commands: today :: LaTeX
+ Text.LaTeX.Base.Commands: twocolumn :: LaTeX
+ Text.LaTeX.Base.Commands: twoside :: LaTeX
+ Text.LaTeX.Base.Commands: underline :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: usepackage :: [LaTeX] -> String -> LaTeX
+ Text.LaTeX.Base.Commands: vdots :: LaTeX
+ Text.LaTeX.Base.Commands: verbatim :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: verse :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Commands: vspace :: Measure -> LaTeX
+ Text.LaTeX.Base.Commands.Monad: (&) :: Monad m => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: a0paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: a1paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: a2paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: a3paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: a4paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: a5paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: a6paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: abstract :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: alph :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: alph_ :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: appendix :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: arabic :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: article :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: author :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: b0paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: b1paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: b2paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: b3paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: b4paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: b5paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: b6paper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: bigskip :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: book :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: center :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: chapter :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: cite :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: cleardoublepage :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: clearpage :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: cline :: Monad m => Int -> Int -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: date :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: ddots :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: description :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: document :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: documentclass :: Monad m => [LaTeXT_ m] -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: draft :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: emph :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: empty :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: enumerate :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: equation :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: equation_ :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: executivepaper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: fbox :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: fleqn :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: flushleft :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: flushright :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: footnote :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: footnotesize :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: framebox :: Monad m => Maybe Measure -> Maybe Pos -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hatex :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hatex3 :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hatex_meta :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hatex_version :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: headings :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hline :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hspace :: Monad m => Measure -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hspace_ :: Monad m => Measure -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: huge :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: huge2 :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hyp :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: hyphenation :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: indent :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: institute :: Monad m => Maybe (LaTeXT_ m) -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: item :: Monad m => Maybe (LaTeXT_ m) -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: itemize :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: laTeX2 :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: laTeXe :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: label :: Monad m => Label -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: landscape :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: large :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: large2 :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: large3 :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: latex :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: ldots :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: legalpaper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: leqno :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: letterpaper :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: linebreak :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: linespread :: Monad m => Float -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: lnbk :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: lnbk_ :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: makebox :: Monad m => Maybe Measure -> Maybe Pos -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: maketitle :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: markboth :: Monad m => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: markright :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: mbox :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: minimal :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: myheadings :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: newline :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: newpage :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: noindent :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: nolinebreak :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: nopagebreak :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: normalsize :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: notitlepage :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: onecolumn :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: oneside :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: openany :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: openright :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: pagebreak :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: pagenumbering :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: pageref :: Monad m => Label -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: pagestyle :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: paragraph :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: parbox :: Monad m => Maybe Pos -> Measure -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: part :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: plain :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: proc :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: protect :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: qts :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: quote :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: raisebox :: Monad m => Measure -> Maybe Measure -> Maybe Measure -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: raw :: Monad m => Text -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: ref :: Monad m => Label -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: report :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: roman :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: roman_ :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: rule :: Monad m => Maybe Measure -> Measure -> Measure -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: scriptsize :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: section :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: slides :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: small :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: smallskip :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: stretch :: Monad m => Int -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: subparagraph :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: subsection :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: subsubsection :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: tableofcontents :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: tabular :: Monad m => Maybe Pos -> [TableSpec] -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: tex :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textbf :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textit :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textmd :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textnormal :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textrm :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textsc :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textsf :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textsl :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: texttt :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: textup :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: thanks :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: thispagestyle :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: tiny :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: title :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: titlepage :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: today :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: twocolumn :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: twoside :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: underline :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: usepackage :: Monad m => [LaTeXT_ m] -> String -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: vdots :: Monad m => LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: verbatim :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: verse :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Base.Commands.Monad: vspace :: Monad m => Measure -> LaTeXT_ m
+ Text.LaTeX.Base.Monad: (<>) :: Monoid a => a -> a -> a
+ Text.LaTeX.Base.Monad: data LaTeX
+ Text.LaTeX.Base.Render: class Show a => Render a
+ Text.LaTeX.Base.Render: data Text :: *
+ Text.LaTeX.Base.Render: instance Render Float
+ Text.LaTeX.Base.Render: instance Render Int
+ Text.LaTeX.Base.Render: instance Render LaTeX
+ Text.LaTeX.Base.Render: instance Render TeXArg
+ Text.LaTeX.Base.Render: readFileTex :: FilePath -> IO Text
+ Text.LaTeX.Base.Render: render :: Render a => a -> Text
+ Text.LaTeX.Base.Render: renderAppend :: Render a => [a] -> Text
+ Text.LaTeX.Base.Render: renderCommas :: Render a => [a] -> Text
+ Text.LaTeX.Base.Render: renderFile :: Render a => FilePath -> a -> IO ()
+ Text.LaTeX.Base.Render: rendertex :: Render a => a -> LaTeX
+ Text.LaTeX.Base.Syntax: (<>) :: Monoid a => a -> a -> a
+ Text.LaTeX.Base.Syntax: FixArg :: LaTeX -> TeXArg
+ Text.LaTeX.Base.Syntax: MOptArg :: [LaTeX] -> TeXArg
+ Text.LaTeX.Base.Syntax: MSymArg :: [LaTeX] -> TeXArg
+ Text.LaTeX.Base.Syntax: OptArg :: LaTeX -> TeXArg
+ Text.LaTeX.Base.Syntax: SymArg :: LaTeX -> TeXArg
+ Text.LaTeX.Base.Syntax: TeXBraces :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXComm :: String -> [TeXArg] -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXCommS :: String -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXEmpty :: LaTeX
+ Text.LaTeX.Base.Syntax: TeXEnv :: String -> [TeXArg] -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXMath :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXNewLine :: Bool -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXOp :: String -> LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXRaw :: Text -> LaTeX
+ Text.LaTeX.Base.Syntax: TeXSeq :: LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Base.Syntax: braces :: LaTeX -> LaTeX
+ Text.LaTeX.Base.Syntax: data LaTeX
+ Text.LaTeX.Base.Syntax: data TeXArg
+ Text.LaTeX.Base.Syntax: instance IsString LaTeX
+ Text.LaTeX.Base.Syntax: instance Monoid LaTeX
+ Text.LaTeX.Base.Syntax: instance Show LaTeX
+ Text.LaTeX.Base.Syntax: instance Show TeXArg
+ Text.LaTeX.Base.Types: Bottom :: Pos
+ Text.LaTeX.Base.Types: Center :: Pos
+ Text.LaTeX.Base.Types: CenterColumn :: TableSpec
+ Text.LaTeX.Base.Types: Cm :: Float -> Measure
+ Text.LaTeX.Base.Types: CustomMeasure :: LaTeX -> Measure
+ Text.LaTeX.Base.Types: DVerticalLine :: TableSpec
+ Text.LaTeX.Base.Types: Em :: Float -> Measure
+ Text.LaTeX.Base.Types: Ex :: Float -> Measure
+ Text.LaTeX.Base.Types: In :: Float -> Measure
+ Text.LaTeX.Base.Types: LeftColumn :: TableSpec
+ Text.LaTeX.Base.Types: Mm :: Float -> Measure
+ Text.LaTeX.Base.Types: ParColumnBot :: LaTeX -> TableSpec
+ Text.LaTeX.Base.Types: ParColumnMid :: LaTeX -> TableSpec
+ Text.LaTeX.Base.Types: ParColumnTop :: LaTeX -> TableSpec
+ Text.LaTeX.Base.Types: Pt :: Int -> Measure
+ Text.LaTeX.Base.Types: RightColumn :: TableSpec
+ Text.LaTeX.Base.Types: Top :: Pos
+ Text.LaTeX.Base.Types: VerticalLine :: TableSpec
+ Text.LaTeX.Base.Types: createLabel :: String -> Label
+ Text.LaTeX.Base.Types: data Label
+ Text.LaTeX.Base.Types: data Measure
+ Text.LaTeX.Base.Types: data Pos
+ Text.LaTeX.Base.Types: data TableSpec
+ Text.LaTeX.Base.Types: instance Render Label
+ Text.LaTeX.Base.Types: instance Render Measure
+ Text.LaTeX.Base.Types: instance Render Pos
+ Text.LaTeX.Base.Types: instance Render TableSpec
+ Text.LaTeX.Base.Types: instance Show Label
+ Text.LaTeX.Base.Types: instance Show Measure
+ Text.LaTeX.Base.Types: instance Show Pos
+ Text.LaTeX.Base.Types: instance Show TableSpec
+ Text.LaTeX.Base.Writer: data LaTeXT m a
+ Text.LaTeX.Base.Writer: execLaTeXT :: Functor m => LaTeXT m a -> m LaTeX
+ Text.LaTeX.Base.Writer: extractLaTeX :: Monad m => LaTeXT m a -> LaTeXT m (a, LaTeX)
+ Text.LaTeX.Base.Writer: extractLaTeX_ :: Monad m => LaTeXT m a -> LaTeXT m LaTeX
+ Text.LaTeX.Base.Writer: instance Applicative m => Applicative (LaTeXT m)
+ Text.LaTeX.Base.Writer: instance Functor m => Functor (LaTeXT m)
+ Text.LaTeX.Base.Writer: instance Monad m => IsString (LaTeXT m a)
+ Text.LaTeX.Base.Writer: instance Monad m => Monad (LaTeXT m)
+ Text.LaTeX.Base.Writer: instance MonadIO m => MonadIO (LaTeXT m)
+ Text.LaTeX.Base.Writer: runLaTeXT :: LaTeXT m a -> m (a, LaTeX)
+ Text.LaTeX.Base.Writer: textell :: Monad m => LaTeX -> LaTeXT m ()
+ Text.LaTeX.Base.Writer: type LaTeXT_ m = LaTeXT m ()
+ Text.LaTeX.Packages.AMSFonts: amsfonts :: String
+ Text.LaTeX.Packages.AMSFonts: mathbb :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSFonts.Monad: amsfonts :: String
+ Text.LaTeX.Packages.AMSFonts.Monad: mathbb :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath: (!:) :: LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: (^:) :: LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: amsmath :: String
+ Text.LaTeX.Packages.AMSMath: arccos :: LaTeX
+ Text.LaTeX.Packages.AMSMath: arcsin :: LaTeX
+ Text.LaTeX.Packages.AMSMath: arctan :: LaTeX
+ Text.LaTeX.Packages.AMSMath: ln :: LaTeX
+ Text.LaTeX.Packages.AMSMath: math :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: mathbf :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: mathcal :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: mathit :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: mathrm :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: mathsf :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: mathtt :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.AMSMath: tcos :: LaTeX
+ Text.LaTeX.Packages.AMSMath: texp :: LaTeX
+ Text.LaTeX.Packages.AMSMath: tlog :: LaTeX
+ Text.LaTeX.Packages.AMSMath: to :: LaTeX
+ Text.LaTeX.Packages.AMSMath: tsin :: LaTeX
+ Text.LaTeX.Packages.AMSMath: ttan :: LaTeX
+ Text.LaTeX.Packages.AMSMath.Monad: (!:) :: Monad m => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: (^:) :: Monad m => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: amsmath :: String
+ Text.LaTeX.Packages.AMSMath.Monad: arccos :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: arcsin :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: arctan :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: ln :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: math :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: mathbf :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: mathcal :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: mathit :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: mathrm :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: mathsf :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: mathtt :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: tcos :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: texp :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: tlog :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: to :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: tsin :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.AMSMath.Monad: ttan :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Beamer: AnnArbor :: Theme
+ Text.LaTeX.Packages.Beamer: Antibes :: Theme
+ Text.LaTeX.Packages.Beamer: Bergen :: Theme
+ Text.LaTeX.Packages.Beamer: Berkeley :: Theme
+ Text.LaTeX.Packages.Beamer: Berlin :: Theme
+ Text.LaTeX.Packages.Beamer: Boadilla :: Theme
+ Text.LaTeX.Packages.Beamer: Boxes :: Theme
+ Text.LaTeX.Packages.Beamer: CambridgeUS :: Theme
+ Text.LaTeX.Packages.Beamer: Copenhagen :: Theme
+ Text.LaTeX.Packages.Beamer: CustomTheme :: String -> Theme
+ Text.LaTeX.Packages.Beamer: Darmstadt :: Theme
+ Text.LaTeX.Packages.Beamer: Default :: Theme
+ Text.LaTeX.Packages.Beamer: Dresden :: Theme
+ Text.LaTeX.Packages.Beamer: Frankfurt :: Theme
+ Text.LaTeX.Packages.Beamer: FromSlide :: Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer: FromToSlide :: Int -> Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer: Goettingen :: Theme
+ Text.LaTeX.Packages.Beamer: Hannover :: Theme
+ Text.LaTeX.Packages.Beamer: Ilmenau :: Theme
+ Text.LaTeX.Packages.Beamer: JuanLesPins :: Theme
+ Text.LaTeX.Packages.Beamer: Luebeck :: Theme
+ Text.LaTeX.Packages.Beamer: Madrid :: Theme
+ Text.LaTeX.Packages.Beamer: Malmoe :: Theme
+ Text.LaTeX.Packages.Beamer: Marburg :: Theme
+ Text.LaTeX.Packages.Beamer: Montpellier :: Theme
+ Text.LaTeX.Packages.Beamer: OneSlide :: Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer: PaloAlto :: Theme
+ Text.LaTeX.Packages.Beamer: Pittsburgh :: Theme
+ Text.LaTeX.Packages.Beamer: Rochester :: Theme
+ Text.LaTeX.Packages.Beamer: Singapore :: Theme
+ Text.LaTeX.Packages.Beamer: Szeged :: Theme
+ Text.LaTeX.Packages.Beamer: ToSlide :: Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer: Warsaw :: Theme
+ Text.LaTeX.Packages.Beamer: alert :: [OverlaySpec] -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Beamer: beamer :: LaTeX
+ Text.LaTeX.Packages.Beamer: beameritem :: [OverlaySpec] -> LaTeX
+ Text.LaTeX.Packages.Beamer: block :: LaTeX -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Beamer: data OverlaySpec
+ Text.LaTeX.Packages.Beamer: data Theme
+ Text.LaTeX.Packages.Beamer: frame :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.Beamer: framesubtitle :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.Beamer: frametitle :: LaTeX -> LaTeX
+ Text.LaTeX.Packages.Beamer: instance Render OverlaySpec
+ Text.LaTeX.Packages.Beamer: instance Render Theme
+ Text.LaTeX.Packages.Beamer: instance Show OverlaySpec
+ Text.LaTeX.Packages.Beamer: instance Show Theme
+ Text.LaTeX.Packages.Beamer: only :: [OverlaySpec] -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Beamer: pause :: LaTeX
+ Text.LaTeX.Packages.Beamer: uncover :: [OverlaySpec] -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Beamer: usetheme :: Theme -> LaTeX
+ Text.LaTeX.Packages.Beamer.Monad: AnnArbor :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Antibes :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Bergen :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Berkeley :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Berlin :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Boadilla :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Boxes :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: CambridgeUS :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Copenhagen :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: CustomTheme :: String -> Theme
+ Text.LaTeX.Packages.Beamer.Monad: Darmstadt :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Default :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Dresden :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Frankfurt :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: FromSlide :: Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer.Monad: FromToSlide :: Int -> Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer.Monad: Goettingen :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Hannover :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Ilmenau :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: JuanLesPins :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Luebeck :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Madrid :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Malmoe :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Marburg :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Montpellier :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: OneSlide :: Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer.Monad: PaloAlto :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Pittsburgh :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Rochester :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Singapore :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: Szeged :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: ToSlide :: Int -> OverlaySpec
+ Text.LaTeX.Packages.Beamer.Monad: Warsaw :: Theme
+ Text.LaTeX.Packages.Beamer.Monad: alert :: Monad m => [OverlaySpec] -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: beamer :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: beameritem :: Monad m => [OverlaySpec] -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: block :: Monad m => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: data OverlaySpec
+ Text.LaTeX.Packages.Beamer.Monad: data Theme
+ Text.LaTeX.Packages.Beamer.Monad: frame :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: framesubtitle :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: frametitle :: Monad m => LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: only :: Monad m => [OverlaySpec] -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: pause :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: uncover :: Monad m => [OverlaySpec] -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Beamer.Monad: usetheme :: Monad m => Theme -> LaTeXT_ m
+ Text.LaTeX.Packages.Color: Apricot :: ColorName
+ Text.LaTeX.Packages.Color: Aquamarine :: ColorName
+ Text.LaTeX.Packages.Color: Bittersweet :: ColorName
+ Text.LaTeX.Packages.Color: Black :: Color
+ Text.LaTeX.Packages.Color: Blue :: Color
+ Text.LaTeX.Packages.Color: BlueGreen :: ColorName
+ Text.LaTeX.Packages.Color: BlueViolet :: ColorName
+ Text.LaTeX.Packages.Color: BrickRed :: ColorName
+ Text.LaTeX.Packages.Color: Brown :: ColorName
+ Text.LaTeX.Packages.Color: BurntOrange :: ColorName
+ Text.LaTeX.Packages.Color: CMYK :: Float -> Float -> Float -> Float -> ColorModel
+ Text.LaTeX.Packages.Color: CadetBlue :: ColorName
+ Text.LaTeX.Packages.Color: CarnationPink :: ColorName
+ Text.LaTeX.Packages.Color: Cerulean :: ColorName
+ Text.LaTeX.Packages.Color: CornflowerBlue :: ColorName
+ Text.LaTeX.Packages.Color: Cyan :: Color
+ Text.LaTeX.Packages.Color: Dandelion :: ColorName
+ Text.LaTeX.Packages.Color: DarkOrchid :: ColorName
+ Text.LaTeX.Packages.Color: DefColor :: Color -> ColSpec
+ Text.LaTeX.Packages.Color: DvipsColor :: ColorName -> ColSpec
+ Text.LaTeX.Packages.Color: Emerald :: ColorName
+ Text.LaTeX.Packages.Color: ForestGreen :: ColorName
+ Text.LaTeX.Packages.Color: Fuchsia :: ColorName
+ Text.LaTeX.Packages.Color: Goldenrod :: ColorName
+ Text.LaTeX.Packages.Color: Gray :: ColorName
+ Text.LaTeX.Packages.Color: GrayM :: Float -> ColorModel
+ Text.LaTeX.Packages.Color: Green :: Color
+ Text.LaTeX.Packages.Color: GreenYellow :: ColorName
+ Text.LaTeX.Packages.Color: HTML :: String -> ColorModel
+ Text.LaTeX.Packages.Color: JungleGreen :: ColorName
+ Text.LaTeX.Packages.Color: Lavender :: ColorName
+ Text.LaTeX.Packages.Color: LimeGreen :: ColorName
+ Text.LaTeX.Packages.Color: Magenta :: Color
+ Text.LaTeX.Packages.Color: Mahogany :: ColorName
+ Text.LaTeX.Packages.Color: Maroon :: ColorName
+ Text.LaTeX.Packages.Color: Melon :: ColorName
+ Text.LaTeX.Packages.Color: MidnightBlue :: ColorName
+ Text.LaTeX.Packages.Color: ModColor :: ColorModel -> ColSpec
+ Text.LaTeX.Packages.Color: Mulberry :: ColorName
+ Text.LaTeX.Packages.Color: NavyBlue :: ColorName
+ Text.LaTeX.Packages.Color: OliveGreen :: ColorName
+ Text.LaTeX.Packages.Color: Orange :: ColorName
+ Text.LaTeX.Packages.Color: OrangeRed :: ColorName
+ Text.LaTeX.Packages.Color: Orchid :: ColorName
+ Text.LaTeX.Packages.Color: Peach :: ColorName
+ Text.LaTeX.Packages.Color: Periwinkle :: ColorName
+ Text.LaTeX.Packages.Color: PineGreen :: ColorName
+ Text.LaTeX.Packages.Color: Plum :: ColorName
+ Text.LaTeX.Packages.Color: ProcessBlue :: ColorName
+ Text.LaTeX.Packages.Color: Purple :: ColorName
+ Text.LaTeX.Packages.Color: RGB :: Float -> Float -> Float -> ColorModel
+ Text.LaTeX.Packages.Color: RGB255 :: Int -> Int -> Int -> ColorModel
+ Text.LaTeX.Packages.Color: RawSienna :: ColorName
+ Text.LaTeX.Packages.Color: Red :: Color
+ Text.LaTeX.Packages.Color: RedOrange :: ColorName
+ Text.LaTeX.Packages.Color: RedViolet :: ColorName
+ Text.LaTeX.Packages.Color: Rhodamine :: ColorName
+ Text.LaTeX.Packages.Color: RoyalBlue :: ColorName
+ Text.LaTeX.Packages.Color: RubineRed :: ColorName
+ Text.LaTeX.Packages.Color: Salmon :: ColorName
+ Text.LaTeX.Packages.Color: SeaGreen :: ColorName
+ Text.LaTeX.Packages.Color: Sepia :: ColorName
+ Text.LaTeX.Packages.Color: SkyBlue :: ColorName
+ Text.LaTeX.Packages.Color: SpringGreen :: ColorName
+ Text.LaTeX.Packages.Color: Tan :: ColorName
+ Text.LaTeX.Packages.Color: TealBlue :: ColorName
+ Text.LaTeX.Packages.Color: Thistle :: ColorName
+ Text.LaTeX.Packages.Color: Turquoise :: ColorName
+ Text.LaTeX.Packages.Color: Violet :: ColorName
+ Text.LaTeX.Packages.Color: VioletRed :: ColorName
+ Text.LaTeX.Packages.Color: White :: Color
+ Text.LaTeX.Packages.Color: WildStrawberry :: ColorName
+ Text.LaTeX.Packages.Color: Yellow :: Color
+ Text.LaTeX.Packages.Color: YellowGreen :: ColorName
+ Text.LaTeX.Packages.Color: YellowOrange :: ColorName
+ Text.LaTeX.Packages.Color: color :: ColSpec -> LaTeX
+ Text.LaTeX.Packages.Color: colorbox :: ColSpec -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Color: data ColSpec
+ Text.LaTeX.Packages.Color: data Color
+ Text.LaTeX.Packages.Color: data ColorModel
+ Text.LaTeX.Packages.Color: data ColorName
+ Text.LaTeX.Packages.Color: dvipsnames :: LaTeX
+ Text.LaTeX.Packages.Color: fcolorbox :: ColSpec -> ColSpec -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Color: instance Render ColSpec
+ Text.LaTeX.Packages.Color: instance Render Color
+ Text.LaTeX.Packages.Color: instance Render ColorModel
+ Text.LaTeX.Packages.Color: instance Render ColorName
+ Text.LaTeX.Packages.Color: instance Show ColSpec
+ Text.LaTeX.Packages.Color: instance Show Color
+ Text.LaTeX.Packages.Color: instance Show ColorModel
+ Text.LaTeX.Packages.Color: instance Show ColorName
+ Text.LaTeX.Packages.Color: monochrome :: LaTeX
+ Text.LaTeX.Packages.Color: nodvipsnames :: LaTeX
+ Text.LaTeX.Packages.Color: normalcolor :: LaTeX
+ Text.LaTeX.Packages.Color: pagecolor :: ColSpec -> LaTeX
+ Text.LaTeX.Packages.Color: pcolor :: String
+ Text.LaTeX.Packages.Color: textcolor :: ColSpec -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Color: usenames :: LaTeX
+ Text.LaTeX.Packages.Color.Monad: Apricot :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Aquamarine :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Bittersweet :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Black :: Color
+ Text.LaTeX.Packages.Color.Monad: Blue :: Color
+ Text.LaTeX.Packages.Color.Monad: BlueGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: BlueViolet :: ColorName
+ Text.LaTeX.Packages.Color.Monad: BrickRed :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Brown :: ColorName
+ Text.LaTeX.Packages.Color.Monad: BurntOrange :: ColorName
+ Text.LaTeX.Packages.Color.Monad: CMYK :: Float -> Float -> Float -> Float -> ColorModel
+ Text.LaTeX.Packages.Color.Monad: CadetBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: CarnationPink :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Cerulean :: ColorName
+ Text.LaTeX.Packages.Color.Monad: CornflowerBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Cyan :: Color
+ Text.LaTeX.Packages.Color.Monad: Dandelion :: ColorName
+ Text.LaTeX.Packages.Color.Monad: DarkOrchid :: ColorName
+ Text.LaTeX.Packages.Color.Monad: DefColor :: Color -> ColSpec
+ Text.LaTeX.Packages.Color.Monad: DvipsColor :: ColorName -> ColSpec
+ Text.LaTeX.Packages.Color.Monad: Emerald :: ColorName
+ Text.LaTeX.Packages.Color.Monad: ForestGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Fuchsia :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Goldenrod :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Gray :: ColorName
+ Text.LaTeX.Packages.Color.Monad: GrayM :: Float -> ColorModel
+ Text.LaTeX.Packages.Color.Monad: Green :: Color
+ Text.LaTeX.Packages.Color.Monad: GreenYellow :: ColorName
+ Text.LaTeX.Packages.Color.Monad: HTML :: String -> ColorModel
+ Text.LaTeX.Packages.Color.Monad: JungleGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Lavender :: ColorName
+ Text.LaTeX.Packages.Color.Monad: LimeGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Magenta :: Color
+ Text.LaTeX.Packages.Color.Monad: Mahogany :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Maroon :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Melon :: ColorName
+ Text.LaTeX.Packages.Color.Monad: MidnightBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: ModColor :: ColorModel -> ColSpec
+ Text.LaTeX.Packages.Color.Monad: Mulberry :: ColorName
+ Text.LaTeX.Packages.Color.Monad: NavyBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: OliveGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Orange :: ColorName
+ Text.LaTeX.Packages.Color.Monad: OrangeRed :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Orchid :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Peach :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Periwinkle :: ColorName
+ Text.LaTeX.Packages.Color.Monad: PineGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Plum :: ColorName
+ Text.LaTeX.Packages.Color.Monad: ProcessBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Purple :: ColorName
+ Text.LaTeX.Packages.Color.Monad: RGB :: Float -> Float -> Float -> ColorModel
+ Text.LaTeX.Packages.Color.Monad: RGB255 :: Int -> Int -> Int -> ColorModel
+ Text.LaTeX.Packages.Color.Monad: RawSienna :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Red :: Color
+ Text.LaTeX.Packages.Color.Monad: RedOrange :: ColorName
+ Text.LaTeX.Packages.Color.Monad: RedViolet :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Rhodamine :: ColorName
+ Text.LaTeX.Packages.Color.Monad: RoyalBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: RubineRed :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Salmon :: ColorName
+ Text.LaTeX.Packages.Color.Monad: SeaGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Sepia :: ColorName
+ Text.LaTeX.Packages.Color.Monad: SkyBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: SpringGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Tan :: ColorName
+ Text.LaTeX.Packages.Color.Monad: TealBlue :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Thistle :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Turquoise :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Violet :: ColorName
+ Text.LaTeX.Packages.Color.Monad: VioletRed :: ColorName
+ Text.LaTeX.Packages.Color.Monad: White :: Color
+ Text.LaTeX.Packages.Color.Monad: WildStrawberry :: ColorName
+ Text.LaTeX.Packages.Color.Monad: Yellow :: Color
+ Text.LaTeX.Packages.Color.Monad: YellowGreen :: ColorName
+ Text.LaTeX.Packages.Color.Monad: YellowOrange :: ColorName
+ Text.LaTeX.Packages.Color.Monad: color :: Monad m => ColSpec -> LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: colorbox :: Monad m => ColSpec -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: data ColSpec
+ Text.LaTeX.Packages.Color.Monad: data Color
+ Text.LaTeX.Packages.Color.Monad: data ColorModel
+ Text.LaTeX.Packages.Color.Monad: data ColorName
+ Text.LaTeX.Packages.Color.Monad: dvipsnames :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: fcolorbox :: Monad m => ColSpec -> ColSpec -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: monochrome :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: nodvipsnames :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: normalcolor :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: pagecolor :: Monad m => ColSpec -> LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: pcolor :: String
+ Text.LaTeX.Packages.Color.Monad: textcolor :: Monad m => ColSpec -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Color.Monad: usenames :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Hyperref: HRefPage :: Int -> HRefOption
+ Text.LaTeX.Packages.Hyperref: PDFNewWindow :: HRefOption
+ Text.LaTeX.Packages.Hyperref: PDFRemoteStartView :: HRefOption
+ Text.LaTeX.Packages.Hyperref: autoref :: Label -> LaTeX
+ Text.LaTeX.Packages.Hyperref: createURL :: String -> URL
+ Text.LaTeX.Packages.Hyperref: data HRefOption
+ Text.LaTeX.Packages.Hyperref: data URL
+ Text.LaTeX.Packages.Hyperref: href :: [HRefOption] -> URL -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Hyperref: hyperbaseurl :: URL -> LaTeX
+ Text.LaTeX.Packages.Hyperref: hyperimage :: URL -> LaTeX -> LaTeX
+ Text.LaTeX.Packages.Hyperref: hyperref :: String
+ Text.LaTeX.Packages.Hyperref: instance Render HRefOption
+ Text.LaTeX.Packages.Hyperref: instance Render URL
+ Text.LaTeX.Packages.Hyperref: instance Show HRefOption
+ Text.LaTeX.Packages.Hyperref: instance Show URL
+ Text.LaTeX.Packages.Hyperref: nolinkurl :: URL -> LaTeX
+ Text.LaTeX.Packages.Hyperref: url :: URL -> LaTeX
+ Text.LaTeX.Packages.Hyperref.Monad: HRefPage :: Int -> HRefOption
+ Text.LaTeX.Packages.Hyperref.Monad: PDFNewWindow :: HRefOption
+ Text.LaTeX.Packages.Hyperref.Monad: PDFRemoteStartView :: HRefOption
+ Text.LaTeX.Packages.Hyperref.Monad: autoref :: Monad m => Label -> LaTeXT_ m
+ Text.LaTeX.Packages.Hyperref.Monad: createURL :: String -> URL
+ Text.LaTeX.Packages.Hyperref.Monad: data HRefOption
+ Text.LaTeX.Packages.Hyperref.Monad: data URL
+ Text.LaTeX.Packages.Hyperref.Monad: href :: Monad m => [HRefOption] -> URL -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Hyperref.Monad: hyperbaseurl :: Monad m => URL -> LaTeXT_ m
+ Text.LaTeX.Packages.Hyperref.Monad: hyperimage :: Monad m => URL -> LaTeXT_ m -> LaTeXT_ m
+ Text.LaTeX.Packages.Hyperref.Monad: hyperref :: String
+ Text.LaTeX.Packages.Hyperref.Monad: nolinkurl :: Monad m => URL -> LaTeXT_ m
+ Text.LaTeX.Packages.Hyperref.Monad: url :: Monad m => URL -> LaTeXT_ m
+ Text.LaTeX.Packages.Inputenc: inputenc :: String
+ Text.LaTeX.Packages.Inputenc: latin1 :: LaTeX
+ Text.LaTeX.Packages.Inputenc: utf8 :: LaTeX
+ Text.LaTeX.Packages.Inputenc.Monad: inputenc :: String
+ Text.LaTeX.Packages.Inputenc.Monad: latin1 :: Monad m => LaTeXT_ m
+ Text.LaTeX.Packages.Inputenc.Monad: utf8 :: Monad m => LaTeXT_ m
Files
- HaTeX.cabal +54/−38
- ReleaseNotes +6/−0
- Setup.hs +2/−1
- Text/LaTeX.hs +12/−210
- Text/LaTeX/Arguments.hs +0/−242
- Text/LaTeX/Base.hs +28/−0
- Text/LaTeX/Base/Commands.hs +730/−0
- Text/LaTeX/Base/Commands/Monad.hs +1011/−0
- Text/LaTeX/Base/Monad.hs +34/−0
- Text/LaTeX/Base/Parser.hs +6/−0
- Text/LaTeX/Base/Render.hs +105/−0
- Text/LaTeX/Base/Syntax.hs +84/−0
- Text/LaTeX/Base/Types.hs +68/−0
- Text/LaTeX/Base/Writer.hs +54/−0
- Text/LaTeX/Commands.hs +0/−741
- Text/LaTeX/Define.hs +0/−115
- Text/LaTeX/Macro.hs +0/−104
- Text/LaTeX/Monad.hs +12/−105
- Text/LaTeX/Packages.hs +18/−523
- Text/LaTeX/Packages/AMSFonts.hs +27/−0
- Text/LaTeX/Packages/AMSFonts/Monad.hs +46/−0
- Text/LaTeX/Packages/AMSMath.hs +115/−0
- Text/LaTeX/Packages/AMSMath/Monad.hs +158/−0
- Text/LaTeX/Packages/Beamer.hs +131/−0
- Text/LaTeX/Packages/Beamer/Monad.hs +115/−0
- Text/LaTeX/Packages/Color.hs +150/−0
- Text/LaTeX/Packages/Color/Monad.hs +107/−0
- Text/LaTeX/Packages/Hyperref.hs +74/−0
- Text/LaTeX/Packages/Hyperref/Monad.hs +81/−0
- Text/LaTeX/Packages/Inputenc.hs +27/−0
- Text/LaTeX/Packages/Inputenc/Monad.hs +45/−0
- Text/LaTeX/Packages/Monad.hs +21/−0
- Text/LaTeX/Result.hs +0/−49
- license +1/−1
HaTeX.cabal view
@@ -1,38 +1,54 @@-Name: HaTeX -Version: 2.1.3 -Author: Daniel Diaz -Homepage: http://ddiaz.asofilak.es/packages/HaTeX -License: BSD3 -License-file: license -Maintainer: Daniel Diaz <danieldiaz@asofilak.es> -Category: Text -Synopsis: Monadic tool for write LaTeX files. -Description: - See <http://www.haskell.org/haskellwiki/HaTeX> for a brief introduction. - Also included in Text.LaTeX module API documentation. - . - More information in /HaTeX, a monadic perspective of LaTeX/, available in the package homepage. - . - Also, if you have an example where you use HaTeX, you could send it to the same email. Thanks in advance. - . - Changes from last version: - . - * Modified some documentation. - . - * Updated to some changes in dependencies. -Extensions: OverloadedStrings , FlexibleInstances , TypeSynonymInstances -Build-type: Simple -Build-depends: base == 4.* - , mtl - , dstring - , string-combinators - , filepath -Cabal-version: >= 1.6 -Exposed-modules: Text.LaTeX - , Text.LaTeX.Macro - , Text.LaTeX.Commands - , Text.LaTeX.Packages - , Text.LaTeX.Arguments - , Text.LaTeX.Define - , Text.LaTeX.Monad - , Text.LaTeX.Result+Name: HaTeX +Version: 3.0.0+Author: Daniel Díaz +Category: Text +Build-type: Simple +License: BSD3 +License-file: license +Maintainer: Daniel Díaz {danieldiaz <at> dhelta <dot> net} +Stability: Experimental +Homepage: http://dhelta.net/hprojects/HaTeX+Bug-reports: danieldiaz <at> dhelta <dot> net +Synopsis: LaTeX code writer. +Description: HaTeX consists in a set of combinators which allow you to build LaTeX code, + following the LaTeX syntax in a type-safe manner. + . + This allows you to build programs which generates LaTeX code automatically + for any purpose you can figure out.+Cabal-version: >= 1.6 +Tested-with: GHC == 6.12.3 , GHC == 7.0.3+Extra-source-files: ReleaseNotes++Library+ Build-depends: base ==4.* + , bytestring + , mtl ==2.* + , text + Exposed-modules: + Text.LaTeX+ Text.LaTeX.Monad + Text.LaTeX.Base+ Text.LaTeX.Base.Monad+ Text.LaTeX.Base.Commands+ Text.LaTeX.Base.Commands.Monad+ Text.LaTeX.Base.Parser+ Text.LaTeX.Base.Render+ Text.LaTeX.Base.Syntax+ Text.LaTeX.Base.Types+ Text.LaTeX.Base.Writer+ Text.LaTeX.Packages+ Text.LaTeX.Packages.Monad+ Text.LaTeX.Packages.AMSFonts+ Text.LaTeX.Packages.AMSFonts.Monad+ Text.LaTeX.Packages.AMSMath+ Text.LaTeX.Packages.AMSMath.Monad+ Text.LaTeX.Packages.Beamer+ Text.LaTeX.Packages.Beamer.Monad+ Text.LaTeX.Packages.Hyperref+ Text.LaTeX.Packages.Hyperref.Monad+ Text.LaTeX.Packages.Inputenc+ Text.LaTeX.Packages.Inputenc.Monad+ Text.LaTeX.Packages.Color+ Text.LaTeX.Packages.Color.Monad + Extensions: GeneralizedNewtypeDeriving+ , OverloadedStrings
+ ReleaseNotes view
@@ -0,0 +1,6 @@+HaTeX Release Notes +-- From version 3.0.0 + +>>> 3.0.0 + +* First release of the third version of HaTeX.
Setup.hs view
@@ -1,2 +1,3 @@ import Distribution.Simple -main = defaultMain + +main = defaultMain
Text/LaTeX.hs view
@@ -1,211 +1,13 @@- -{-# OPTIONS_GHC -XOverloadedStrings #-} - --- | This is the main module of the HaTeX library. --- For a complete understanding of this package, read \"/HaTeX, a monadic perspective of LaTeX/\" --- at the HaTeX home page: <http://ddiaz.asofilak.es/packages/HaTeX>. -module Text.LaTeX - ( -- * How to use HaTeX - -- ** About HaTeX - -- $guide0 - - -- ** Introduction - -- $guide1 - - -- ** LaTeX file structure - -- $guide2 - - -- ** A simple example - -- $guide3 - - -- ** Enriching your text - -- $guide4 - - -- ** Performing monadic computations - -- $guide5 - - -- ** Adding sections - -- $guide6 - - -- * HaTeX related functions - hatex - , hatexVersion - -- * Exporting to /.tex/ - , render - , export - -- * Re-exports - , module Text.LaTeX.Result - , module Text.LaTeX.Monad - , module Text.LaTeX.Define - , module Text.LaTeX.Arguments - , module Text.LaTeX.Packages - , module Text.LaTeX.Commands - , module Text.LaTeX.Macro - -- * Data.String re-export - , module Data.String - ) where - -import Text.LaTeX.Monad hiding (genlx,ungenlx) -import Text.LaTeX.Commands -import Text.LaTeX.Arguments -import Text.LaTeX.Define -import Text.LaTeX.Packages -import Text.LaTeX.Result -import Text.LaTeX.Macro --- -import Data.String --- -import System.FilePath (takeExtension) -import Control.Monad.Trans (MonadIO (..)) - --- | HaTeX nice word. -hatex :: Monad m => LaTeX m -hatex = makebox [] [] $ do "H" - raisebox (ex (-0.51)) [] [] $ - makebox [0.5 >> width] [] "A" - tex - --- | Your HaTeX version. -hatexVersion :: Monad m => LaTeX m -hatexVersion = do textbf "2" ; ".1.2" - --- | Render 'LaTeX' to 'String'. -render :: Monad m => LaTeX m -> m String -render = (>>= return . fromResult) . nlx - --- | Export the 'Result' of a 'LaTeX' sequence in a /.tex/ file. -export :: MonadIO m => - LaTeX m -- ^ 'LaTeX' to export. - -> FilePath -- ^ Path of export. - -> m () -export x fp = do y <- nlx x - let z = fromResult y - if takeExtension fp == ".tex" then liftIO $ writeFile fp z - else liftIO $ writeFile (fp ++ ".tex") z - ------------------------------------------------------------------------------------------------------------ - -{- $guide0 -HaTeX is a package which lets you to write LaTeX code from Haskell. - -HaTeX page: <http://ddiaz.asofilak.es/packages/HaTeX> - -Here a link to the package in Hackage: <http://hackage.haskell.org/package/HaTeX> --} - --- Introduction - -{- $guide1 -If you know how to use LaTeX, you will easily understand how to use HaTeX. -Otherwise, you will need to read well the documentation. - -A first step may be to know the LaTeX file structure. --} - --- LaTeX file structure - -{- $guide2 -A LaTeX file has two parts: - -- A /preamble/ where you define general settings (document class, page style, use of extern packages, ...) of your document. - -- The document's content. --} - --- A simple example - -{- $guide3 -We're going to write an example, the best for understanding. - -* Function 'documentclass' is used for determining if our document is an 'article', a 'book', a 'report', etc. - -* Function 'author' is used for specify document's authory. - -* Function 'title' for document's title. - -Then, with this three functions, we will define a preamble in the 'LaTeX' monad. -'LaTeX' is a writer monad that concatenates the text generated by the programmer. -Usually, the text is generated simply writing it, or by functions. - -> example = do documentclass [] article -> author "Daniel Diaz" -> title "Example" - -The first argument of 'documentclass' is used for change certain settings of the class. -For example, you can set the document's main font size to 12pt, writing: - -> documentclass [pt 12] article - -Or set paper size to A4: - -> documentclass [pt 12,a4paper] article - -Now, I will write a content: - -> hello = "Hello, world!" - -To insert the content into the document, we have the function 'document'. Completing our first example: - -> example = do documentclass [] article -> author "Daniel Diaz" -> title "Example" -> document $ do maketitle -> hello - -/Note: /'maketitle'/ doesn't work in some document classes./ - -At first glance, it seems that 'author', 'title' or 'document' receive a 'String' as argument. -Really, they require a 'LaTeX' argument. 'LaTeX' is the type that represents texts in HaTeX. -So, I recommend to use Overloaded Strings -(See <http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/type-class-extensions.html#overloaded-strings>). --} - --- Enriching your text - -{- $guide4 -There are numerous functions to enrich your document. -One feature is change your font format. For example, in: - -> texttt "Hello!" - -'texttt' sets as monospaced font his content. Or composing: - -> texttt $ textbf "Hello!" - -'textbf' sets as bold font the monospaced font of '"Hello!"'. - -If you only want '"ll"' with bold format: - -> texttt $ do "He" -> textbf "ll" -> "o!" - -Applying the function to only part of the text, we achieve modify just that part. --} - --- Performing monadic computations - -{- $guide5 -All computations in HaTeX take place in the 'LaTeXT' monadic transformer. -To includes a monadic computation, use 'mlx'. - -> gtime = do t <- mlx getClockTime -> ... - --} - --- Adding sections - -{- $guide6 -Commands to adding sections are included in Text.LaTeX.Commands. Examples are 'section' or 'paragraph'. - -If you want sections without number, use 'section_'. This also avoid showing the section into the table of contents. - -If you want title of section to be different in the context than in the table of contents, use 'sectiontab'. --} - - - - - ++-- | This module is a re-export of the main modules.+-- Importing this will you give access to almost all+-- functionality of the library. It is recommended+-- to import the @Base@ module and, then, import only+-- packages you will need. +module Text.LaTeX + ( module Text.LaTeX.Base + , module Text.LaTeX.Packages + ) where +import Text.LaTeX.Base +import Text.LaTeX.Packages
− Text/LaTeX/Arguments.hs
@@ -1,242 +0,0 @@- -{-# LANGUAGE OverloadedStrings #-} - -module Text.LaTeX.Arguments ( - -- * Renaming @LaTeX@ - Language - , Encoding - , URL - , Color - , Name , Title , Date - , Word - , Marker, Text - , ItemOption - , PlacementSpecifier - -- * Classes - , Class - , article - , proc - , minimal - , report - , book - , slides - -- * Class Options - , ClassOption - -- ** Paper related - , letterpaper - , a4paper - , a5paper - , b5paper - , executivepaper - , legalpaper - -- ** @fleqn@,@leqno@ - , fleqn , leqno - -- ** Title related - , titlepage - , notitlepage - -- ** Column related - , onecolumn - , twocolumn - -- ** Sides Related - , twoside , oneside - -- ** Landscape - , landscape - -- ** @Open@ - , openright , openany - -- * Styles - , Style - , plain - , headings - , empty - -- * Meters - -- ** Width and Height - , Width, Lift, Extend, Height - , width, height, depth - , totalheight - -- $measures - - -- ** Measures - , mm , cm , inch - , pt , em , ex - ) where - -import Text.LaTeX.Monad -import Text.LaTeX.Define - -import Data.List - -type Language m = LaTeX m - -type Encoding m = LaTeX m - -type URL m = LaTeX m - -type Color m = LaTeX m - -type Name m = LaTeX m - -type Title m = LaTeX m - -type Date m = LaTeX m - -type Word m = LaTeX m - -type Marker m = LaTeX m - -type Text m = LaTeX m - -type ItemOption m = LaTeX m - -type PlacementSpecifier m = LaTeX m - --- - -type ClassOption m = LaTeX m - -letterpaper :: Monad m => ClassOption m -letterpaper = "letterpaper" - -a4paper :: Monad m => ClassOption m -a4paper = "a4paper" - -a5paper :: Monad m => ClassOption m -a5paper = "a5paper" - -b5paper :: Monad m => ClassOption m -b5paper = "b5paper" - -executivepaper :: Monad m => ClassOption m -executivepaper = "executivepaper" - -legalpaper :: Monad m => ClassOption m -legalpaper = "legalpaper" - --- - -fleqn :: Monad m => ClassOption m -fleqn = "fleqn" - -leqno :: Monad m => ClassOption m -leqno = "leqno" - --- - -titlepage :: Monad m => ClassOption m -titlepage = "titlepage" - -notitlepage :: Monad m => ClassOption m -notitlepage = "notitlepage" - --- - -onecolumn :: Monad m => ClassOption m -onecolumn = "onecolumn" - -twocolumn :: Monad m => ClassOption m -twocolumn = "twocolumn" - --- - -twoside :: Monad m => ClassOption m -twoside = "twoside" - -oneside :: Monad m => ClassOption m -oneside = "oneside" - --- - -landscape :: Monad m => ClassOption m -landscape = "landscape" - --- - -openright :: Monad m => ClassOption m -openright = "openright" - -openany :: Monad m => ClassOption m -openany = "openany" - --- - -type Class m = LaTeX m - -article :: Monad m => Class m -article = "article" - -proc :: Monad m => Class m -proc = "proc" - -minimal :: Monad m => Class m -minimal = "minimal" - -report :: Monad m => Class m -report = "report" - -book :: Monad m => Class m -book = "book" - -slides :: Monad m => Class m -slides = "slides" - --- - --- | Page style for a LaTeX document. -type Style m = LaTeX m - --- | Page numbers on the bottom of the page, at the middle of the footer. --- Default style. -plain :: Monad m => Style m -plain = "plain" - --- | Current chapter and page number at the top of the page. -headings :: Monad m => Style m -headings = "headings" - --- | Empty page style. -empty :: Monad m => Style m -empty = "empty" - --- Meters - -type Width m = LaTeX m - -type Lift m = LaTeX m - -type Extend m = LaTeX m - -type Height m = LaTeX m - -width :: Monad m => LaTeX m -width = comm0_ "width" - -height :: Monad m => LaTeX m -height = comm0_ "height" - -depth :: Monad m => LaTeX m -depth = comm0_ "depth" - -totalheight :: Monad m => LaTeX m -totalheight = comm0_ "totalheight" - --- $measures --- #Measures# - -mm :: Monad m => Float -> LaTeX m -mm = (>>"mm") . lxany - -cm :: Monad m => Float -> LaTeX m -cm = (>>"cm") . lxany - -inch :: Monad m => Float -> LaTeX m -inch = (>>"in") . lxany - -pt :: Monad m => Int -> LaTeX m -pt = (>>"pt") . lxany - -em :: Monad m => Float -> LaTeX m -em = (>>"em") . lxany - -ex :: Monad m => Float -> LaTeX m -ex = (>>"ex") . lxany - -
+ Text/LaTeX/Base.hs view
@@ -0,0 +1,28 @@++{- |+This module exports those minimal things you need+to work with HaTeX. Those things are:++* The 'LaTeX' datatype.++* The '<>' operator, to append 'LaTeX' values.++* The "Text.LaTeX.Base.Render" module, to render a 'LaTeX' value into 'Text'.++* The "Text.LaTeX.Base.Types" module, which contains several types used by+ other modules.++* The "Text.LaTeX.Base.Commands" module, which exports the LaTeX standard commands+ and environments.+-} +module Text.LaTeX.Base + ( LaTeX , (<>) + , module Text.LaTeX.Base.Render+ , module Text.LaTeX.Base.Types + , module Text.LaTeX.Base.Commands + ) where + +import Text.LaTeX.Base.Syntax (LaTeX,(<>)) +import Text.LaTeX.Base.Render+import Text.LaTeX.Base.Types +import Text.LaTeX.Base.Commands
+ Text/LaTeX/Base/Commands.hs view
@@ -0,0 +1,730 @@+{-# LANGUAGE OverloadedStrings #-}++-- | LaTeX standard commands and environments.+module Text.LaTeX.Base.Commands+ ( raw+ -- * Preamble commands+ , title+ , author+ , date+ , institute+ , thanks+ , documentclass+ , usepackage+ , linespread+ -- ** Classes+ -- *** Document classes+ , article+ , proc+ , report+ , minimal+ , book+ , slides+ -- *** Class options+ , draft+ , titlepage+ , notitlepage+ , onecolumn+ , twocolumn+ , oneside+ , twoside+ , landscape+ , openright+ , openany+ , fleqn+ , leqno+ -- ** Paper sizes+ , a0paper+ , a1paper+ , a2paper+ , a3paper+ , a4paper+ , a5paper+ , a6paper+ , b0paper+ , b1paper+ , b2paper+ , b3paper+ , b4paper+ , b5paper+ , b6paper+ , letterpaper+ , executivepaper+ , legalpaper+ -- ** Page styles+ , pagestyle+ , thispagestyle+ , plain+ , headings+ , empty+ , myheadings+ , markboth+ , markright+ -- * Body commands+ , document+ , maketitle+ -- ** Document structure+ , tableofcontents+ , abstract+ , appendix+ -- *** Sections+ , part+ , chapter+ , section+ , subsection+ , subsubsection+ , paragraph+ , subparagraph+ -- ** Logos & symbols+ , today+ , tex+ , latex+ , laTeX2+ , laTeXe+ , ldots+ , vdots+ , ddots+ -- *** HaTeX specific+ , hatex+ , hatex3+ , hatex_meta+ , hatex_version+ -- ** Document layout+ , newline+ , lnbk+ , lnbk_+ , newpage+ , cleardoublepage+ , clearpage+ , linebreak+ , nolinebreak+ , pagebreak+ , nopagebreak+ , hspace+ , hspace_+ , vspace+ , stretch+ , smallskip+ , bigskip+ , indent+ , noindent+ -- ** Formatting text+ , verbatim+ -- *** Fonts+ , textbf+ , textit+ , texttt+ , textrm+ , textsf+ , textmd+ , textup+ , textsl+ , textsc+ , textnormal+ , underline+ , emph+ -- *** Sizes+ , tiny+ , scriptsize+ , footnotesize+ , small+ , normalsize+ , large+ , large2+ , large3+ , huge+ , huge2+ -- ** Environments+ , equation+ , equation_+ , enumerate+ , itemize+ , item+ , flushleft+ , flushright+ , center+ , quote+ , verse+ , cite+ , description+ -- ** Page numbering+ , pagenumbering+ , arabic+ , roman+ , roman_+ , alph+ , alph_+ -- ** Cross references+ , label+ , ref+ , pageref+ -- ** Boxes+ , mbox+ , fbox+ , parbox+ , framebox+ , makebox+ , raisebox+ , rule+ -- ** Tables+ , tabular+ , (&)+ , hline+ , cline+ -- ** Others+ , footnote+ , protect+ , hyphenation+ , hyp+ , qts+ ) where++import Data.String+import Data.Maybe (catMaybes)+import Text.LaTeX.Base.Syntax+import Text.LaTeX.Base.Render+import Text.LaTeX.Base.Types++-- | Insert a raw piece of 'Text'.+-- This functions doesn't care about @LaTeX@ reserved characters,+-- it insert the text just as it is received.+raw :: Text -> LaTeX+raw = TeXRaw++-- | Generate the title. It normally contains the 'title' name+-- of your document, the 'author'(s) and 'date'.+maketitle :: LaTeX+maketitle = TeXComm "maketitle" []++-- | Set the title of your document.+title :: LaTeX -> LaTeX+title t = TeXComm "title" [FixArg t]++-- | Set a date for your document.+date :: LaTeX -> LaTeX+date t = TeXComm "date" [FixArg t]++-- | Set the author(s) of the document.+author :: LaTeX -> LaTeX+author t = TeXComm "author" [FixArg t]++-- | Set either an institute or an organization+-- for the document.+institute :: Maybe LaTeX -> LaTeX -> LaTeX+institute Nothing l = TeXComm "institute" [FixArg l]+institute (Just s) l = TeXComm "institute" [OptArg s,FixArg l]++thanks :: LaTeX -> LaTeX+thanks x = TeXComm "thanks" [FixArg x]++-- | Import a package. First argument is a list of options for+-- the package named in the second argument.+usepackage :: [LaTeX] -> String -> LaTeX+usepackage lopt str = TeXComm "usepackage" [MOptArg lopt ,FixArg $ fromString str]++-- | The @LaTeX@ logo.+latex :: LaTeX+latex = TeXComm "LaTeX" []++-- | Start a new line.+newline :: LaTeX+newline = TeXComm "newline" []++part :: LaTeX -> LaTeX+part p = TeXComm "part" [FixArg p]++chapter :: LaTeX -> LaTeX+chapter c = TeXComm "chapter" [FixArg c]++-- | Start a new section with a given title.+section :: LaTeX -> LaTeX+section s = TeXComm "section" [FixArg s]++subsection :: LaTeX -> LaTeX+subsection sub = TeXComm "subsection" [FixArg sub]++subsubsection :: LaTeX -> LaTeX+subsubsection sub = TeXComm "subsubsection" [FixArg sub]++paragraph :: LaTeX -> LaTeX+paragraph p = TeXComm "paragraph" [FixArg p]++subparagraph :: LaTeX -> LaTeX+subparagraph p = TeXComm "subparagraph" [FixArg p]++-- | Create the table of contents, automatically generated+-- from your 'section's, 'subsection's, and other related stuff.+tableofcontents :: LaTeX+tableofcontents = TeXComm "tableofcontents" []++appendix :: LaTeX+appendix = TeXComm "appendix" []++item :: Maybe LaTeX -> LaTeX+item Nothing = TeXCommS "item "+item (Just opt) = TeXComm "item" [OptArg opt]++equation :: LaTeX -> LaTeX+equation = TeXEnv "equation" []++equation_ :: LaTeX -> LaTeX+equation_ = TeXEnv "equation*" []++enumerate :: LaTeX -> LaTeX+enumerate = TeXEnv "enumerate" []++itemize :: LaTeX -> LaTeX+itemize = TeXEnv "itemize" []++description :: LaTeX -> LaTeX+description = TeXEnv "description" []++flushleft :: LaTeX -> LaTeX+flushleft = TeXEnv "flushleft" []++flushright :: LaTeX -> LaTeX+flushright = TeXEnv "flushright" []++center :: LaTeX -> LaTeX+center = TeXEnv "center" []++quote :: LaTeX -> LaTeX+quote = TeXEnv "quote" []++verse :: LaTeX -> LaTeX+verse = TeXEnv "verse" []++abstract :: LaTeX -> LaTeX+abstract = TeXEnv "abstract" []++cite :: LaTeX -> LaTeX+cite l = TeXComm "cite" [FixArg l]++ref :: Label -> LaTeX+ref l = TeXComm "ref" [FixArg $ TeXRaw $ render l]++label :: Label -> LaTeX+label l = TeXComm "label" [FixArg $ TeXRaw $ render l]++pageref :: Label -> LaTeX+pageref l = TeXComm "pageref" [FixArg $ TeXRaw $ render l]++documentclass :: [LaTeX] -> LaTeX -> LaTeX+documentclass ls l = TeXComm "documentclass" [MOptArg ls , FixArg l]++article :: LaTeX+article = "article"++proc:: LaTeX+proc = "proc"++minimal:: LaTeX+minimal = "minimal"++report:: LaTeX+report = "report"++book:: LaTeX+book = "book"++slides:: LaTeX+slides = "slides"++a0paper:: LaTeX+a0paper = "a0paper"++a1paper:: LaTeX+a1paper = "a1paper"++a2paper:: LaTeX+a2paper = "a2paper"++a3paper:: LaTeX+a3paper = "a3paper"++a4paper:: LaTeX+a4paper = "a4paper"++a5paper:: LaTeX+a5paper = "a5paper"++a6paper:: LaTeX+a6paper = "a6paper"++b0paper:: LaTeX+b0paper = "b0paper"++b1paper:: LaTeX+b1paper = "b1paper"++b2paper:: LaTeX+b2paper = "b2paper"++b3paper:: LaTeX+b3paper = "b3paper"++b4paper:: LaTeX+b4paper = "b4paper"++b5paper:: LaTeX+b5paper = "b5paper"++b6paper:: LaTeX+b6paper = "b6paper"++letterpaper:: LaTeX+letterpaper = "letterpaper"++executivepaper:: LaTeX+executivepaper = "executivepaper"++legalpaper:: LaTeX+legalpaper = "legalpaper"++draft :: LaTeX+draft = "draft"++-- | Typesets displayed formulae left-aligned instead of centred.+fleqn:: LaTeX+fleqn = "fleqn"++-- | Places the numbering of formulae on the left hand side instead of the right.+leqno:: LaTeX+leqno = "leqno"++titlepage:: LaTeX+titlepage = "titlepage"++notitlepage:: LaTeX+notitlepage = "notitlepage"++onecolumn:: LaTeX+onecolumn = "onecolumn"++twocolumn:: LaTeX+twocolumn = "twocolumn"++oneside :: LaTeX+oneside = "oneside"++twoside:: LaTeX+twoside = "twoside"++-- | Changes the layout of the document to print in landscape mode+landscape:: LaTeX+landscape = "landscape"++-- | Makes chapters begin either only on right hand pages+openright:: LaTeX+openright = "openright"++-- | Makes chapters begin on the next page available.+openany:: LaTeX+openany = "openany"++document :: LaTeX -> LaTeX+document = TeXEnv "document" []++pagenumbering :: LaTeX -> LaTeX+pagenumbering l = TeXComm "pagenumbering" [FixArg l]++-- | Arabic numerals.+arabic :: LaTeX+arabic = "arabic"++-- | Lowercase roman numerals.+roman :: LaTeX+roman = "roman"++-- | Uppercase roman numerals.+roman_ :: LaTeX+roman_ = "Roman"++-- | Lowercase letters.+alph :: LaTeX+alph = "alph"++-- | Uppercase letters.+alph_ :: LaTeX+alph_ = "Alph"++pagestyle :: LaTeX -> LaTeX+pagestyle l = TeXComm "pagestyle" [FixArg l]++thispagestyle :: LaTeX -> LaTeX+thispagestyle l = TeXComm "thispagestyle" [FixArg l]++plain :: LaTeX+plain = "plain"++headings :: LaTeX+headings = "headings"++empty :: LaTeX+empty = "empty"++myheadings :: LaTeX+myheadings = "myheadings"++-- | Used in conjunction with 'myheadings' for setting both the left and the right heading.+markboth :: LaTeX -> LaTeX -> LaTeX+markboth l1 l2 = TeXComm "markboth" [FixArg l1,FixArg l2]++-- | Used in conjunction with 'myheadings' for setting the right heading.+markright :: LaTeX -> LaTeX+markright l = TeXComm "markright" [FixArg l]++-- | Start a new line. In a 'tabular', it starts a new row, so use 'newline' instead.+lnbk :: LaTeX+lnbk = TeXNewLine False++lnbk_ :: LaTeX+lnbk_ = TeXNewLine True++hyp :: LaTeX+hyp = TeXCommS "-"++cleardoublepage :: LaTeX+cleardoublepage = TeXComm "cleardoublepage" []++clearpage :: LaTeX+clearpage = TeXComm "clearpage" []++newpage :: LaTeX+newpage = TeXComm "newpage" []++linebreak :: LaTeX -> LaTeX+linebreak l = TeXComm "linebreak" [OptArg l]++nolinebreak :: LaTeX -> LaTeX+nolinebreak l = TeXComm "nolinebreak" [OptArg l]++nopagebreak :: LaTeX -> LaTeX+nopagebreak l = TeXComm "nopagebreak" [OptArg l]++pagebreak :: LaTeX -> LaTeX+pagebreak l = TeXComm "pagebreak" [OptArg l]++hyphenation :: LaTeX -> LaTeX+hyphenation l = TeXComm "hyphenation" [FixArg l]++mbox :: LaTeX -> LaTeX+mbox l = TeXComm "mbox" [FixArg l]++fbox :: LaTeX -> LaTeX+fbox l = TeXComm "fbox" [FixArg l]++today :: LaTeX+today = TeXComm "today" []++tex :: LaTeX+tex = TeXComm "TeX" []++laTeX2 :: LaTeX+laTeX2 = TeXComm "LaTeX" []++laTeXe :: LaTeX+laTeXe = TeXComm "LaTeXe" []++-- | Horizontal dots.+ldots :: LaTeX+ldots = TeXComm "ldots" []++-- | Vertical dots.+vdots :: LaTeX+vdots = TeXComm "vdots" []++-- | Diagonal dots.+ddots :: LaTeX+ddots = TeXComm "ddots" []++-- | Quotation marks.+qts :: LaTeX -> LaTeX+qts l = raw "``" <> l <> raw "''"++footnote :: LaTeX -> LaTeX+footnote l = TeXComm "footnote" [FixArg l]++linespread :: Float -> LaTeX+linespread f = TeXComm "linespread" [FixArg $ TeXRaw $ render f]++indent :: LaTeX+indent = TeXComm "indent" []++noindent :: LaTeX+noindent = TeXComm "noindent" []++hspace :: Measure -> LaTeX+hspace m = TeXComm "hspace" [FixArg $ TeXRaw $ render m]++hspace_ :: Measure -> LaTeX+hspace_ m = TeXComm "hspace*" [FixArg $ TeXRaw $ render m]++stretch :: Int -> LaTeX+stretch n = TeXComm "stretch" [FixArg $ TeXRaw $ render n]++vspace :: Measure -> LaTeX+vspace m = TeXComm "vspace" [FixArg $ TeXRaw $ render m]++protect :: LaTeX -> LaTeX+protect l = TeXCommS "protect" <> l++verbatim :: LaTeX -> LaTeX+verbatim = TeXEnv "verbatim" []++underline :: LaTeX -> LaTeX+underline l = TeXComm "underline" [FixArg l]++emph :: LaTeX -> LaTeX+emph l = TeXComm "emph" [FixArg l]++textrm :: LaTeX -> LaTeX+textrm l = TeXComm "textrm" [FixArg l]++textsf :: LaTeX -> LaTeX+textsf l = TeXComm "textsf" [FixArg l]++texttt :: LaTeX -> LaTeX+texttt l = TeXComm "texttt" [FixArg l]++textmd :: LaTeX -> LaTeX+textmd l = TeXComm "textmd" [FixArg l]++textbf :: LaTeX -> LaTeX+textbf l = TeXComm "textbf" [FixArg l]++textup :: LaTeX -> LaTeX+textup l = TeXComm "textup" [FixArg l]++textit :: LaTeX -> LaTeX+textit l = TeXComm "textit" [FixArg l]++textsl :: LaTeX -> LaTeX+textsl l = TeXComm "textsl" [FixArg l]++textsc :: LaTeX -> LaTeX+textsc l = TeXComm "textsc" [FixArg l]++textnormal :: LaTeX -> LaTeX+textnormal l = TeXComm "textnormal" [FixArg l]++tiny :: LaTeX -> LaTeX+tiny l = TeXComm "tiny" [FixArg l]++scriptsize :: LaTeX -> LaTeX+scriptsize l = TeXComm "scriptsize" [FixArg l] ++footnotesize :: LaTeX -> LaTeX+footnotesize l = TeXComm "footnotesize" [FixArg l]++small :: LaTeX -> LaTeX+small l = TeXComm "small" [FixArg l]++normalsize :: LaTeX -> LaTeX+normalsize l = TeXComm "normalsize" [FixArg l]++large :: LaTeX -> LaTeX+large l = TeXComm "large" [FixArg l]++large2 :: LaTeX -> LaTeX+large2 l = TeXComm "Large" [FixArg l]++large3 :: LaTeX -> LaTeX+large3 l = TeXComm "LARGE" [FixArg l]++huge :: LaTeX -> LaTeX+huge l = TeXComm "huge" [FixArg l]++huge2 :: LaTeX -> LaTeX+huge2 l = TeXComm "Huge" [FixArg l]++smallskip :: LaTeX+smallskip = TeXComm "smallskip" []++bigskip :: LaTeX+bigskip = TeXComm "bigskip" []++-- | The 'tabular' environment can be used to typeset tables with optional horizontal and vertical lines.+tabular :: Maybe Pos -- ^ This optional parameter can be used to specify the vertical position of the table.+ -- Defaulted to 'Center'.+ -> [TableSpec] -- ^ Table specification of columns and vertical lines.+ -> LaTeX -- ^ Table content. See '&', 'lnbk', 'hline' and 'cline'.+ -> LaTeX -- ^ Resulting table syntax.+tabular Nothing ts = TeXEnv "tabular" [ FixArg $ TeXRaw $ renderAppend ts ]+tabular (Just p) ts = TeXEnv "tabular" [ OptArg $ TeXRaw $ render p , FixArg $ TeXRaw $ renderAppend ts ]++-- | Column separator.+(&) :: LaTeX -> LaTeX -> LaTeX+(&) = TeXOp "&"++-- | Horizontal line.+hline :: LaTeX+hline = TeXCommS "hline "++-- | @cline i j@ writes a partial horizontal line beginning in column i and ending in column j.+cline :: Int -> Int -> LaTeX+cline i j = TeXComm "cline" [ FixArg $ TeXRaw $ render i <> "-" <> render j ]++parbox :: Maybe Pos -> Measure -> LaTeX -> LaTeX+parbox Nothing w t = TeXComm "parbox" [ FixArg $ TeXRaw $ render w+ , FixArg t]+parbox (Just p) w t = TeXComm "parbox" [ OptArg $ TeXRaw $ render p+ , FixArg $ TeXRaw $ render w+ , FixArg t]++makebox :: Maybe Measure -> Maybe Pos -> LaTeX -> LaTeX+makebox Nothing Nothing t = TeXComm "makebox" [ FixArg t]+makebox Nothing (Just p) t = TeXComm "makebox" [ OptArg $ TeXRaw $ render p, FixArg t]+makebox (Just w) Nothing t = TeXComm "makebox" [ OptArg $ TeXRaw $ render w, FixArg t]+makebox (Just w) (Just p) t = TeXComm "makebox" [ OptArg $ TeXRaw $ render w+ , OptArg $ TeXRaw $ render p+ , FixArg t] ++framebox :: Maybe Measure -> Maybe Pos -> LaTeX -> LaTeX+framebox Nothing Nothing t = TeXComm "framebox" [ FixArg t]+framebox Nothing (Just p) t = TeXComm "framebox" [ OptArg $ TeXRaw $ render p, FixArg t]+framebox (Just w) Nothing t = TeXComm "framebox" [ OptArg $ TeXRaw $ render w, FixArg t]+framebox (Just w) (Just p) t = TeXComm "framebox" [ OptArg $ TeXRaw $ render w+ , OptArg $ TeXRaw $ render p+ , FixArg t]++raisebox :: Measure -> Maybe Measure -> Maybe Measure -> LaTeX -> LaTeX+raisebox l ma mb t = TeXComm "raisebox" $+ [ FixArg $ TeXRaw $ render l ]+ ++ fmap (OptArg . TeXRaw . render) (catMaybes [ma,mb])+ ++ [ FixArg t ]++-- | Produce a simple black box.+rule :: Maybe Measure -- ^ Optional lifting.+ -> Measure -- ^ Width.+ -> Measure -- ^ Height.+ -> LaTeX+rule Nothing w h = TeXComm "rule" [ FixArg $ TeXRaw $ render w+ , FixArg $ TeXRaw $ render h ]+rule (Just l) w h = TeXComm "rule" [ OptArg $ TeXRaw $ render l+ , FixArg $ TeXRaw $ render w+ , FixArg $ TeXRaw $ render h ]++-- HaTeX specific symbols++-- | Print the HaTeX logo.+hatex :: LaTeX+hatex = "H"+ <> hspace (Ex $ negate 0.3)+ <> textsc "a"+ <> hspace (Ex $ negate 0.3)+ <> tex++-- | Print the HaTeX 3 logo.+hatex3 :: LaTeX+hatex3 = hatex <> emph (textbf "3")++-- | Print the HaTeX-meta logo.+hatex_meta :: LaTeX+hatex_meta = hatex <> emph (textsc "-meta")++-- | Print the HaTeX logo, beside the complete version number.+hatex_version :: LaTeX+hatex_version = hatex3+ <> hspace (Ex $ negate 0.3)+ <> emph ".0.0"
+ Text/LaTeX/Base/Commands/Monad.hs view
@@ -0,0 +1,1011 @@+{-# LANGUAGE OverloadedStrings #-} + +-- | LaTeX standard commands and environments. +-- +-- /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.Base.Commands" /module via HaTeX-meta,/ +-- /and therefore, changes must to be done in these places./ + +module Text.LaTeX.Base.Commands.Monad + ( raw + -- * Preamble commands + , title + , author + , date + , institute + , thanks + , documentclass + , usepackage + , linespread + -- ** Classes + -- *** Document classes + , article + , proc + , report + , minimal + , book + , slides + -- *** Class options + , draft + , titlepage + , notitlepage + , onecolumn + , twocolumn + , oneside + , twoside + , landscape + , openright + , openany + , fleqn + , leqno + -- ** Paper sizes + , a0paper + , a1paper + , a2paper + , a3paper + , a4paper + , a5paper + , a6paper + , b0paper + , b1paper + , b2paper + , b3paper + , b4paper + , b5paper + , b6paper + , letterpaper + , executivepaper + , legalpaper + -- ** Page styles + , pagestyle + , thispagestyle + , plain + , headings + , empty + , myheadings + , markboth + , markright + -- * Body commands + , document + , maketitle + -- ** Document structure + , tableofcontents + , abstract + , appendix + -- *** Sections + , part + , chapter + , section + , subsection + , subsubsection + , paragraph + , subparagraph + -- ** Logos & symbols + , today + , tex + , latex + , laTeX2 + , laTeXe + , ldots + , vdots + , ddots + -- *** HaTeX specific + , hatex + , hatex3 + , hatex_meta + , hatex_version + -- ** Document layout + , newline + , lnbk + , lnbk_ + , newpage + , cleardoublepage + , clearpage + , linebreak + , nolinebreak + , pagebreak + , nopagebreak + , hspace + , hspace_ + , vspace + , stretch + , smallskip + , bigskip + , indent + , noindent + -- ** Formatting text + , verbatim + -- *** Fonts + , textbf + , textit + , texttt + , textrm + , textsf + , textmd + , textup + , textsl + , textsc + , textnormal + , underline + , emph + -- *** Sizes + , tiny + , scriptsize + , footnotesize + , small + , normalsize + , large + , large2 + , large3 + , huge + , huge2 + -- ** Environments + , equation + , equation_ + , enumerate + , itemize + , item + , flushleft + , flushright + , center + , quote + , verse + , cite + , description + -- ** Page numbering + , pagenumbering + , arabic + , roman + , roman_ + , alph + , alph_ + -- ** Cross references + , label + , ref + , pageref + -- ** Boxes + , mbox + , fbox + , parbox + , framebox + , makebox + , raisebox + , rule + -- ** Tables + , tabular + , (&) + , hline + , cline + -- ** Others + , footnote + , protect + , hyphenation + , hyp + , qts + ) where + +import Text.LaTeX.Base.Writer +import Text.LaTeX.Base.Render +import Text.LaTeX.Base.Types +import qualified Text.LaTeX.Base.Commands as App +import Text.LaTeX.Base.Commands() + +{-| +Insert a raw piece of 'Text'. + This functions doesn't care about @LaTeX@ reserved characters, + it insert the text just as it is received. +-} +raw :: (Monad m) => Text -> LaTeXT_ m +raw a1 = do textell ( App.raw a1) + +{-| +Generate the title. It normally contains the 'title' name + of your document, the 'author'(s) and 'date'. +-} +maketitle :: (Monad m) => LaTeXT_ m +maketitle = do textell ( App.maketitle) + +-- | Set the title of your document. + +title :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +title a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.title a1) + +-- | Set a date for your document. + +date :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +date a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.date a1) + +-- | Set the author(s) of the document. + +author :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +author a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.author a1) + +{-| +Set either an institute or an organization + for the document. +-} +institute :: (Monad m) => Maybe (LaTeXT_ m) -> LaTeXT_ m -> LaTeXT_ m +institute a1 a2 + = do a1 <- maybe (return Nothing) + ((>>= return . Just) . extractLaTeX_) + a1 + a2 <- extractLaTeX_ a2 + textell ( App.institute a1 a2) + + +thanks :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +thanks a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.thanks a1) + +{-| +Import a package. First argument is a list of options for + the package named in the second argument. +-} +usepackage :: (Monad m) => [LaTeXT_ m] -> String -> LaTeXT_ m +usepackage a1 a2 + = do a1 <- mapM extractLaTeX_ a1 + textell ( App.usepackage a1 a2) + +-- | The @LaTeX@ logo. + +latex :: (Monad m) => LaTeXT_ m +latex = do textell ( App.latex) + +-- | Start a new line. + +newline :: (Monad m) => LaTeXT_ m +newline = do textell ( App.newline) + + +part :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +part a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.part a1) + + +chapter :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +chapter a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.chapter a1) + +-- | Start a new section with a given title. + +section :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +section a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.section a1) + + +subsection :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +subsection a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.subsection a1) + + +subsubsection :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +subsubsection a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.subsubsection a1) + + +paragraph :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +paragraph a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.paragraph a1) + + +subparagraph :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +subparagraph a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.subparagraph a1) + +{-| +Create the table of contents, automatically generated + from your 'section's, 'subsection's, and other related stuff. +-} +tableofcontents :: (Monad m) => LaTeXT_ m +tableofcontents = do textell ( App.tableofcontents) + + +appendix :: (Monad m) => LaTeXT_ m +appendix = do textell ( App.appendix) + + +item :: (Monad m) => Maybe (LaTeXT_ m) -> LaTeXT_ m +item a1 + = do a1 <- maybe (return Nothing) + ((>>= return . Just) . extractLaTeX_) + a1 + textell ( App.item a1) + + +equation :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +equation a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.equation a1) + + +equation_ :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +equation_ a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.equation_ a1) + + +enumerate :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +enumerate a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.enumerate a1) + + +itemize :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +itemize a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.itemize a1) + + +description :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +description a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.description a1) + + +flushleft :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +flushleft a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.flushleft a1) + + +flushright :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +flushright a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.flushright a1) + + +center :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +center a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.center a1) + + +quote :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +quote a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.quote a1) + + +verse :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +verse a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.verse a1) + + +abstract :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +abstract a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.abstract a1) + + +cite :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +cite a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.cite a1) + + +ref :: (Monad m) => Label -> LaTeXT_ m +ref a1 = do textell ( App.ref a1) + + +label :: (Monad m) => Label -> LaTeXT_ m +label a1 = do textell ( App.label a1) + + +pageref :: (Monad m) => Label -> LaTeXT_ m +pageref a1 = do textell ( App.pageref a1) + + +documentclass :: (Monad m) => [LaTeXT_ m] -> LaTeXT_ m -> LaTeXT_ m +documentclass a1 a2 + = do a1 <- mapM extractLaTeX_ a1 + a2 <- extractLaTeX_ a2 + textell ( App.documentclass a1 a2) + + +article :: (Monad m) => LaTeXT_ m +article = do textell ( App.article) + + +proc :: (Monad m) => LaTeXT_ m +proc = do textell ( App.proc) + + +minimal :: (Monad m) => LaTeXT_ m +minimal = do textell ( App.minimal) + + +report :: (Monad m) => LaTeXT_ m +report = do textell ( App.report) + + +book :: (Monad m) => LaTeXT_ m +book = do textell ( App.book) + + +slides :: (Monad m) => LaTeXT_ m +slides = do textell ( App.slides) + + +a0paper :: (Monad m) => LaTeXT_ m +a0paper = do textell ( App.a0paper) + + +a1paper :: (Monad m) => LaTeXT_ m +a1paper = do textell ( App.a1paper) + + +a2paper :: (Monad m) => LaTeXT_ m +a2paper = do textell ( App.a2paper) + + +a3paper :: (Monad m) => LaTeXT_ m +a3paper = do textell ( App.a3paper) + + +a4paper :: (Monad m) => LaTeXT_ m +a4paper = do textell ( App.a4paper) + + +a5paper :: (Monad m) => LaTeXT_ m +a5paper = do textell ( App.a5paper) + + +a6paper :: (Monad m) => LaTeXT_ m +a6paper = do textell ( App.a6paper) + + +b0paper :: (Monad m) => LaTeXT_ m +b0paper = do textell ( App.b0paper) + + +b1paper :: (Monad m) => LaTeXT_ m +b1paper = do textell ( App.b1paper) + + +b2paper :: (Monad m) => LaTeXT_ m +b2paper = do textell ( App.b2paper) + + +b3paper :: (Monad m) => LaTeXT_ m +b3paper = do textell ( App.b3paper) + + +b4paper :: (Monad m) => LaTeXT_ m +b4paper = do textell ( App.b4paper) + + +b5paper :: (Monad m) => LaTeXT_ m +b5paper = do textell ( App.b5paper) + + +b6paper :: (Monad m) => LaTeXT_ m +b6paper = do textell ( App.b6paper) + + +letterpaper :: (Monad m) => LaTeXT_ m +letterpaper = do textell ( App.letterpaper) + + +executivepaper :: (Monad m) => LaTeXT_ m +executivepaper = do textell ( App.executivepaper) + + +legalpaper :: (Monad m) => LaTeXT_ m +legalpaper = do textell ( App.legalpaper) + + +draft :: (Monad m) => LaTeXT_ m +draft = do textell ( App.draft) + +-- | Typesets displayed formulae left-aligned instead of centred. + +fleqn :: (Monad m) => LaTeXT_ m +fleqn = do textell ( App.fleqn) + +-- | Places the numbering of formulae on the left hand side instead of the right. + +leqno :: (Monad m) => LaTeXT_ m +leqno = do textell ( App.leqno) + + +titlepage :: (Monad m) => LaTeXT_ m +titlepage = do textell ( App.titlepage) + + +notitlepage :: (Monad m) => LaTeXT_ m +notitlepage = do textell ( App.notitlepage) + + +onecolumn :: (Monad m) => LaTeXT_ m +onecolumn = do textell ( App.onecolumn) + + +twocolumn :: (Monad m) => LaTeXT_ m +twocolumn = do textell ( App.twocolumn) + + +oneside :: (Monad m) => LaTeXT_ m +oneside = do textell ( App.oneside) + + +twoside :: (Monad m) => LaTeXT_ m +twoside = do textell ( App.twoside) + +-- | Changes the layout of the document to print in landscape mode + +landscape :: (Monad m) => LaTeXT_ m +landscape = do textell ( App.landscape) + +-- | Makes chapters begin either only on right hand pages + +openright :: (Monad m) => LaTeXT_ m +openright = do textell ( App.openright) + +-- | Makes chapters begin on the next page available. + +openany :: (Monad m) => LaTeXT_ m +openany = do textell ( App.openany) + + +document :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +document a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.document a1) + + +pagenumbering :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +pagenumbering a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.pagenumbering a1) + +-- | Arabic numerals. + +arabic :: (Monad m) => LaTeXT_ m +arabic = do textell ( App.arabic) + +-- | Lowercase roman numerals. + +roman :: (Monad m) => LaTeXT_ m +roman = do textell ( App.roman) + +-- | Uppercase roman numerals. + +roman_ :: (Monad m) => LaTeXT_ m +roman_ = do textell ( App.roman_) + +-- | Lowercase letters. + +alph :: (Monad m) => LaTeXT_ m +alph = do textell ( App.alph) + +-- | Uppercase letters. + +alph_ :: (Monad m) => LaTeXT_ m +alph_ = do textell ( App.alph_) + + +pagestyle :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +pagestyle a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.pagestyle a1) + + +thispagestyle :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +thispagestyle a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.thispagestyle a1) + + +plain :: (Monad m) => LaTeXT_ m +plain = do textell ( App.plain) + + +headings :: (Monad m) => LaTeXT_ m +headings = do textell ( App.headings) + + +empty :: (Monad m) => LaTeXT_ m +empty = do textell ( App.empty) + + +myheadings :: (Monad m) => LaTeXT_ m +myheadings = do textell ( App.myheadings) + +-- | Used in conjunction with 'myheadings' for setting both the left and the right heading. + +markboth :: (Monad m) => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m +markboth a1 a2 + = do a1 <- extractLaTeX_ a1 + a2 <- extractLaTeX_ a2 + textell ( App.markboth a1 a2) + +-- | Used in conjunction with 'myheadings' for setting the right heading. + +markright :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +markright a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.markright a1) + +-- | Start a new line. In a 'tabular', it starts a new row, so use 'newline' instead. + +lnbk :: (Monad m) => LaTeXT_ m +lnbk = do textell ( App.lnbk) + + +lnbk_ :: (Monad m) => LaTeXT_ m +lnbk_ = do textell ( App.lnbk_) + + +hyp :: (Monad m) => LaTeXT_ m +hyp = do textell ( App.hyp) + + +cleardoublepage :: (Monad m) => LaTeXT_ m +cleardoublepage = do textell ( App.cleardoublepage) + + +clearpage :: (Monad m) => LaTeXT_ m +clearpage = do textell ( App.clearpage) + + +newpage :: (Monad m) => LaTeXT_ m +newpage = do textell ( App.newpage) + + +linebreak :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +linebreak a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.linebreak a1) + + +nolinebreak :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +nolinebreak a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.nolinebreak a1) + + +nopagebreak :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +nopagebreak a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.nopagebreak a1) + + +pagebreak :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +pagebreak a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.pagebreak a1) + + +hyphenation :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +hyphenation a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.hyphenation a1) + + +mbox :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +mbox a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.mbox a1) + + +fbox :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +fbox a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.fbox a1) + + +today :: (Monad m) => LaTeXT_ m +today = do textell ( App.today) + + +tex :: (Monad m) => LaTeXT_ m +tex = do textell ( App.tex) + + +laTeX2 :: (Monad m) => LaTeXT_ m +laTeX2 = do textell ( App.laTeX2) + + +laTeXe :: (Monad m) => LaTeXT_ m +laTeXe = do textell ( App.laTeXe) + +-- | Horizontal dots. + +ldots :: (Monad m) => LaTeXT_ m +ldots = do textell ( App.ldots) + +-- | Vertical dots. + +vdots :: (Monad m) => LaTeXT_ m +vdots = do textell ( App.vdots) + +-- | Diagonal dots. + +ddots :: (Monad m) => LaTeXT_ m +ddots = do textell ( App.ddots) + +-- | Quotation marks. + +qts :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +qts a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.qts a1) + + +footnote :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +footnote a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.footnote a1) + + +linespread :: (Monad m) => Float -> LaTeXT_ m +linespread a1 = do textell ( App.linespread a1) + + +indent :: (Monad m) => LaTeXT_ m +indent = do textell ( App.indent) + + +noindent :: (Monad m) => LaTeXT_ m +noindent = do textell ( App.noindent) + + +hspace :: (Monad m) => Measure -> LaTeXT_ m +hspace a1 = do textell ( App.hspace a1) + + +hspace_ :: (Monad m) => Measure -> LaTeXT_ m +hspace_ a1 = do textell ( App.hspace_ a1) + + +stretch :: (Monad m) => Int -> LaTeXT_ m +stretch a1 = do textell ( App.stretch a1) + + +vspace :: (Monad m) => Measure -> LaTeXT_ m +vspace a1 = do textell ( App.vspace a1) + + +protect :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +protect a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.protect a1) + + +verbatim :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +verbatim a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.verbatim a1) + + +underline :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +underline a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.underline a1) + + +emph :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +emph a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.emph a1) + + +textrm :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textrm a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textrm a1) + + +textsf :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textsf a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textsf a1) + + +texttt :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +texttt a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.texttt a1) + + +textmd :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textmd a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textmd a1) + + +textbf :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textbf a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textbf a1) + + +textup :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textup a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textup a1) + + +textit :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textit a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textit a1) + + +textsl :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textsl a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textsl a1) + + +textsc :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textsc a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textsc a1) + + +textnormal :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +textnormal a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.textnormal a1) + + +tiny :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +tiny a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.tiny a1) + + +scriptsize :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +scriptsize a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.scriptsize a1) + + +footnotesize :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +footnotesize a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.footnotesize a1) + + +small :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +small a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.small a1) + + +normalsize :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +normalsize a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.normalsize a1) + + +large :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +large a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.large a1) + + +large2 :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +large2 a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.large2 a1) + + +large3 :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +large3 a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.large3 a1) + + +huge :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +huge a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.huge a1) + + +huge2 :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +huge2 a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.huge2 a1) + + +smallskip :: (Monad m) => LaTeXT_ m +smallskip = do textell ( App.smallskip) + + +bigskip :: (Monad m) => LaTeXT_ m +bigskip = do textell ( App.bigskip) + +-- | The 'tabular' environment can be used to typeset tables with optional horizontal and vertical lines. + +tabular :: (Monad m) => Maybe Pos -> [TableSpec] -> LaTeXT_ m -> LaTeXT_ m +tabular a1 a2 a3 + = do a3 <- extractLaTeX_ a3 + textell ( App.tabular a1 a2 a3) + + +(&) :: (Monad m) => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m +(&) a1 a2 + = do a1 <- extractLaTeX_ a1 + a2 <- extractLaTeX_ a2 + textell ( (App.&) a1 a2) + +-- | Horizontal line. + +hline :: (Monad m) => LaTeXT_ m +hline = do textell ( App.hline) + +-- | @cline i j@ writes a partial horizontal line beginning in column i and ending in column j. + +cline :: (Monad m) => Int -> Int -> LaTeXT_ m +cline a1 a2 = do textell ( App.cline a1 a2) + + +parbox :: (Monad m) => Maybe Pos -> Measure -> LaTeXT_ m -> LaTeXT_ m +parbox a1 a2 a3 + = do a3 <- extractLaTeX_ a3 + textell ( App.parbox a1 a2 a3) + + +makebox :: (Monad m) => Maybe Measure -> Maybe Pos -> LaTeXT_ m -> LaTeXT_ m +makebox a1 a2 a3 + = do a3 <- extractLaTeX_ a3 + textell ( App.makebox a1 a2 a3) + + +framebox :: (Monad m) => Maybe Measure -> Maybe Pos -> LaTeXT_ m -> LaTeXT_ m +framebox a1 a2 a3 + = do a3 <- extractLaTeX_ a3 + textell ( App.framebox a1 a2 a3) + + +raisebox :: (Monad m) => + Measure -> Maybe Measure -> Maybe Measure -> LaTeXT_ m -> LaTeXT_ m +raisebox a1 a2 a3 a4 + = do a4 <- extractLaTeX_ a4 + textell ( App.raisebox a1 a2 a3 a4) + +-- | Produce a simple black box. + +rule :: (Monad m) => Maybe Measure -> Measure -> Measure -> LaTeXT_ m +rule a1 a2 a3 = do textell ( App.rule a1 a2 a3) + +-- | Print the HaTeX logo. + +hatex :: (Monad m) => LaTeXT_ m +hatex = do textell ( App.hatex) + +-- | Print the HaTeX 3 logo. + +hatex3 :: (Monad m) => LaTeXT_ m +hatex3 = do textell ( App.hatex3) + +-- | Print the HaTeX-meta logo. + +hatex_meta :: (Monad m) => LaTeXT_ m +hatex_meta = do textell ( App.hatex_meta) + +-- | Print the HaTeX logo, beside the complete version number. + +hatex_version :: (Monad m) => LaTeXT_ m +hatex_version = do textell ( App.hatex_version) + +
+ Text/LaTeX/Base/Monad.hs view
@@ -0,0 +1,34 @@++{- |+This module exports those minimal things you need+to work with HaTeX. Those things are:++* The 'LaTeX' datatype.++* The '<>' operator, to append 'LaTeX' values.++* The "Text.LaTeX.Base.Render" module, to render a 'LaTeX' value into 'Text'.++* The "Text.LaTeX.Base.Types" module, which contains several types used by+ other modules.++* The "Text.LaTeX.Base.Writer" module, needed to run the 'LaTeXT' monad, and+ obtain a result of type 'LaTeX'.++* The "Text.LaTeX.Base.Commands.Monad" module, which exports the LaTeX standard commands+ and environments.+-} +module Text.LaTeX.Base.Monad + ( LaTeX , (<>) + , module Text.LaTeX.Base.Render+ , module Text.LaTeX.Base.Types+ , module Text.LaTeX.Base.Writer + , module Text.LaTeX.Base.Commands.Monad + ) where + +import Text.LaTeX.Base.Syntax (LaTeX,(<>)) +import Text.LaTeX.Base.Render+import Text.LaTeX.Base.Types+import Text.LaTeX.Base.Writer +import Text.LaTeX.Base.Commands.Monad+
+ Text/LaTeX/Base/Parser.hs view
@@ -0,0 +1,6 @@++-- | Parser is not yet implemented. +module Text.LaTeX.Base.Parser + ( + ) where +
+ Text/LaTeX/Base/Render.hs view
@@ -0,0 +1,105 @@+ +{-# LANGUAGE OverloadedStrings #-} + +module Text.LaTeX.Base.Render + ( -- * Re-exports + Text + , module Data.String + -- * Render class + , Render (..) + , renderAppend + , renderCommas + , renderFile + , rendertex+ -- * Reading files+ , readFileTex + ) where + +import Data.Text (Text) +import Text.LaTeX.Base.Syntax +import Data.String +import Data.Monoid (Monoid (..)) +import qualified Data.Text.IO as T +import Data.Text.Encoding +import Data.List (intersperse) +import qualified Data.ByteString as B ++-- | Class of values that can be transformed to 'Text'.+-- You mainly will use this to obtain the 'Text' output+-- of a 'LaTeX' value. +class Show a => Render a where + render :: a -> Text + -- + render = fromString . show ++-- | Render every element of a list and append results. +renderAppend :: Render a => [a] -> Text +renderAppend = mconcat . fmap render ++-- | Render every element of a list and append results,+-- separated by commas. +renderCommas :: Render a => [a] -> Text +renderCommas = mconcat . intersperse "," . fmap render ++-- | Use this function to render a 'LaTeX' (or another+-- one in the 'Render' class) value directly+-- in a file. +renderFile :: Render a => FilePath -> a -> IO () +renderFile f = B.writeFile f . encodeUtf8 . render ++-- | If you are going to insert the content of a file+-- in your 'LaTeX' data, use this function to ensure+-- your encoding is correct.+readFileTex :: FilePath -> IO Text+readFileTex = fmap decodeUtf8 . B.readFile++-- | If you can transform a value to 'Text', you can+-- insert that 'Text' in your 'LaTeX' code.+-- That is what this function does.+--+-- /Warning: /'rendertex'/ does not escape LaTeX reserver characters./ +rendertex :: Render a => a -> LaTeX +rendertex = TeXRaw . render + +-- LaTeX instances + +instance Render LaTeX where + render (TeXRaw t) = t + render (TeXComm name []) = "\\" <> fromString name <> "{}" + render (TeXComm name args) = + "\\" + <> fromString name + <> renderAppend args + render (TeXCommS name) = "\\" <> fromString name + render (TeXEnv name args c) = + "\\begin{" + <> fromString name + <> "}" + <> renderAppend args + <> render c + <> "\\end{" + <> fromString name + <> "}"+ render (TeXMath l) = "$" <> render l <> "$" + render (TeXNewLine b) = " \\\\" <> ( if b then "*" else mempty ) <> " " + render (TeXOp sym l1 l2) = render l1 <> fromString sym <> render l2+ render (TeXBraces l) = "{" <> render l <> "}" + render (TeXSeq l1 l2) = render l1 <> render l2 + render TeXEmpty = mempty + +instance Render TeXArg where + render (OptArg l) = "[" <> render l <> "]" + render (FixArg l) = "{" <> render l <> "}" + render (MOptArg []) = mempty + render (MOptArg ls) = + fromString "[" + <> renderCommas ls + <> fromString "]" + render (SymArg l) = "<" <> render l <> ">" + render (MSymArg ls) = "<" <> renderCommas ls <> ">" + +-- Other instances + +instance Render Int where +instance Render Float where +
+ Text/LaTeX/Base/Syntax.hs view
@@ -0,0 +1,84 @@+ +-- | 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. +module Text.LaTeX.Base.Syntax + ( -- * @LaTeX@ datatype + LaTeX (..)+ , braces + , TeXArg (..) + , (<>) + ) where + +import Data.Text (Text) +import Data.Monoid +import Data.String + +-- | A 'LaTeX' object represents some expression written in LaTeX. +data LaTeX = + TeXRaw Text -- ^ Raw text. + | TeXComm String [TeXArg] -- ^ Constructor for commands.+ -- First argument is the name of the command.+ -- Second, its arguments. + | TeXCommS String + | 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 -- ^ Operators.+ | TeXBraces LaTeX -- A expression between braces. + | TeXSeq LaTeX LaTeX -- ^ Sequencing of 'LaTeX' expressions.+ -- Use '<>' preferably. + | TeXEmpty -- ^ An empty expression.+ -- Neutral element of '<>'. + deriving Show++-- | Alias for 'TeXBraces'.+braces :: LaTeX -> LaTeX+braces = TeXBraces + +-- | An argument for a 'LaTeX' command or environment. +data TeXArg = + 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. + deriving Show + +-- Monoid instance for 'LaTeX'. + +-- | 'mappend' is strict in its first argument. +instance Monoid LaTeX where + mempty = TeXEmpty + mappend TeXEmpty x = x + mappend x TeXEmpty = x + mappend x y = TeXSeq x y + +-- | Alias for 'mappend'. +(<>) :: Monoid a => a -> a -> a +(<>) = mappend ++-- | 'fromString' escapes LaTeX reserved characters. +instance IsString LaTeX where + fromString = TeXRaw . fromString . protectString ++-- | Escape LaTeX reserved characters in a 'String'. +protectString :: String -> String +protectString = mconcat . fmap protectChar + +protectChar :: Char -> String +protectChar '#' = "\\#" +protectChar '$' = "\\$" +protectChar '%' = "\\%" +protectChar '^' = "\\^{}" +protectChar '&' = "\\&" +protectChar '{' = "\\{" +protectChar '}' = "\\}" +protectChar '~' = "\\~{}" +protectChar '\\' = "\\textbackslash{}"+protectChar '_' = "\\_{}" +protectChar x = [x] +
+ Text/LaTeX/Base/Types.hs view
@@ -0,0 +1,68 @@++{-# LANGUAGE OverloadedStrings #-}++module Text.LaTeX.Base.Types (+ Label+ , createLabel+ , Pos (..)+ , TableSpec (..)+ , Measure (..)+ ) where++import Text.LaTeX.Base.Syntax+import Text.LaTeX.Base.Render++newtype Label = Label String deriving Show++createLabel :: String -> Label+createLabel str = Label str++instance Render Label where+ render (Label str) = fromString str++data Pos = Bottom | Center | Top deriving Show++instance Render Pos where+ render Bottom = "b"+ render Center = "c"+ render Top = "t"++data TableSpec =+ LeftColumn -- ^ Left-justified column.+ | CenterColumn -- ^ Centered column.+ | RightColumn -- ^ Right-justified column.+ | ParColumnTop LaTeX -- ^ Paragraph column with text vertically aligned at the top.+ | ParColumnMid LaTeX -- ^ Paragraph column with text vertically aligned at the middle. Requires 'array' package.+ | ParColumnBot LaTeX -- ^ Paragraph column with text vertically aligned at the bottom. Requires 'array' package.+ | VerticalLine -- ^ Vertical line between two columns.+ | DVerticalLine -- ^ Double vertical line between two columns.+ deriving Show++instance Render TableSpec where+ render LeftColumn = "l"+ render CenterColumn = "c"+ render RightColumn = "r"+ render (ParColumnTop l) = "p" <> render (FixArg l)+ render (ParColumnMid l) = "m" <> render (FixArg l)+ render (ParColumnBot l) = "b" <> render (FixArg l)+ render VerticalLine = "|"+ render DVerticalLine = "||"++data Measure =+ Pt Int -- ^ A point is 1/72.27 inch, that means about 0.0138 inch or 0.3515 mm.+ | Mm Float -- ^ Millimeter.+ | Cm Float -- ^ Centimeter.+ | In Float -- ^ Inch.+ | Ex Float -- ^ The height of an \"x\" in the current font.+ | Em Float -- ^ The width of an \"M\" in the current font.+ | CustomMeasure LaTeX -- ^ You can introduce a 'LaTeX' expression as a measure.+ deriving Show++instance Render Measure where+ render (Pt x) = render x <> "pt"+ render (Mm x) = render x <> "mm"+ render (Cm x) = render x <> "cm"+ render (In x) = render x <> "in"+ render (Ex x) = render x <> "ex"+ render (Em x) = render x <> "em"+ render (CustomMeasure x) = render x
+ Text/LaTeX/Base/Writer.hs view
@@ -0,0 +1,54 @@+ +{-# LANGUAGE GeneralizedNewtypeDeriving #-} + +module Text.LaTeX.Base.Writer + ( -- * @LaTeXT@ writer + LaTeXT+ , LaTeXT_ + , runLaTeXT + , execLaTeXT + , extractLaTeX+ , extractLaTeX_+ , textell + ) where + +import Control.Monad.Writer +import Control.Applicative+import Data.String +-- +import Text.LaTeX.Base.Syntax +import Text.LaTeX.Base.Render + +-- | Newtype wrapper over the 'WriterT' monad transformer, with 'LaTeX' +-- as writer state. +newtype LaTeXT m a =+ LaTeXT { unwrapLaTeXT :: WriterT LaTeX m a }+ deriving (Functor,Applicative,Monad,MonadIO) ++type LaTeXT_ m = LaTeXT m ()+ +runLaTeXT :: LaTeXT m a -> m (a,LaTeX) +runLaTeXT = runWriterT . unwrapLaTeXT ++-- | This is the usual way to run the 'LaTeXT' monad+-- and obtain a 'LaTeX' value. +execLaTeXT :: Functor m => LaTeXT m a -> m LaTeX +execLaTeXT = fmap snd . runLaTeXT ++-- | This function run a 'LaTeXT' computation,+-- lifting the result again in the monad. +extractLaTeX :: Monad m => LaTeXT m a -> LaTeXT m (a,LaTeX) +extractLaTeX = LaTeXT . lift . runLaTeXT ++extractLaTeX_ :: Monad m => LaTeXT m a -> LaTeXT m LaTeX +extractLaTeX_ = (>>= return . snd) . LaTeXT . lift . runLaTeXT++-- | With 'textell' you can append 'LaTeX' values to the+-- state of the 'LaTeXT' monad. +textell :: Monad m => LaTeX -> LaTeXT m () +textell = LaTeXT . tell++-- Overloaded Strings++instance Monad m => IsString (LaTeXT m a) where+ fromString = (>> return undefined) . textell . fromString
− Text/LaTeX/Commands.hs
@@ -1,741 +0,0 @@- -{-# LANGUAGE OverloadedStrings #-} - --- | Here, principal LaTeX /commands/ and /environments/. -module Text.LaTeX.Commands ( - -- * Document's Properties - documentclass - , usepackage - , pagestyle - , thispagestyle - , author - , title - , date - -- * Document Environment - , document - -- * Text Layout - , lnbk , lnbk_ - , pfbk - , newpage - , linebreak , nolinebreak - , pagebreak , nopagebreak - , fussy , sloppy - , endsen - , frenchspacing - , par - -- * Importing - , include , includeonly - , input - -- * Hyphenation - , hyphenation , hyp - -- * Pre-made - , today - , tex , latex , latexe - -- * Sections - , section , section_ , sectiontab - , subsection , subsection_ , subsectiontab - , subsubsection , subsubsection_ , subsubsectiontab - , paragraph , paragraph_ , paragraphtab - , subparagraph , subparagraph_ , subparagraphtab - , part , part_ , parttab - , chapter , chapter_ , chaptertab - , appendix - , maketitle , tableofcontents - , frontmatter , mainmatter , backmatter - -- * Cross references - , label , ref , pageref - -- * Footnotes - , footnote - -- * Emphasized - , underline , emph - -- * Environments - , itemize - , enumerate - , description - , item - , flushleft - , flushright - , center - , quote , quotation - , verse - , abstract - , verbatim , verbatim_ - , verb , verb_ - -- * Floating Bodies - , figure - , table - , caption - , listoffigures , listoftables - , clearpage , cleardoublepage - -- * Customizing - , newcommand , renewcommand , providecommand - , newenvironment - , ignorespaces , ignorespacesafterend - , providesPackage - -- * Fonts - -- $fontslabel - - -- ** Format - , textrm , texttt , textmd - , textup , textsl , textsf - , textbf , textit , textsc - , textnormal - -- ** Size - -- $fontsize - , tiny , scriptsize - , footnotesize , small - , normalsize - , large , large2 , large3 - , huge , huge2 - -- * Spacing - , linespread - , hspace , hspace_ - , vspace , vspace_ - , stretch - , skip , bigskip , smallskip - -- * Boxes - , mbox , mbox_ - , fbox - , parbox - , minipage - , makebox - , framebox - , raisebox - , rule - -- * Tabular - , Tabular - , cjustified - , csep - , tabular - , (&) , (//) - , hline , cline - , multicolumn - , LxMatrix - , matrixTab - -- * Others - , protect - , phantom - , string - , qts - , ldots - ) where - -import Prelude hiding (unwords) -import Data.List (intersperse) -import GHC.Exts (fromString) -import Data.Monoid (mappend) - -import Data.String.Combinators (braces,unwords,between - ,mid ,newline,brackets) - -import Text.LaTeX.Monad -import Text.LaTeX.Define -import Text.LaTeX.Arguments -import Text.LaTeX.Packages -import Text.LaTeX.Result - --- Special Characters - -char :: Monad m => Char -> LaTeX m -char = chReplace resCharsStr - where - chReplace [] c = lx $ toResult [c] - chReplace ((x,y):xs) c = if x == c then lx y else chReplace xs c - --- | Like 'fromString', but taking care with reserved characters. -string :: Monad m => String -> LaTeX m -string = mapM_ char - --- | Delimite between quotes a text. -qts :: Monad m => LaTeX m -> LaTeX m -qts = between "``" "''" - --- | Write a ellipsis. -ldots :: Monad m => LaTeX m -ldots = comm0 "ldots" - --- - --- | In preamble, determines the document class. -documentclass :: Monad m => [ClassOption m] -> Class m -> LaTeX m -documentclass = comm4 "documentclass" - --- | In preamble, import a package. -usepackage :: Monad m => [PackageOption m] -> Package m -> LaTeX m -usepackage = comm4 "usepackage" - --- | In preamble, determines page style. -pagestyle :: Monad m => Style m -> LaTeX m -pagestyle = comm1 "pagestyle" - --- | A local version of 'pagestyle', to use for any page. -thispagestyle :: Monad m => Style m -> LaTeX m -thispagestyle = comm1 "thispagestyle" - --- | In preamble, especifies the document's author. -author :: Monad m => Name m -> LaTeX m -author = comm1 "author" - --- | In preamble, especifies the document's title. -title :: Monad m => Title m -> LaTeX m -title = comm1 "title" - --- | In preamble, inserts a date of writing. --- If you don't specify one, it takes the date of export. -date :: Monad m => Date m -> LaTeX m -date = comm1 "date" - --- Document environment - --- | After the preamble, insert document's content with 'document'. -document :: Monad m => LaTeX m -> LaTeX m -document = env "document" - --- Text m Order - --- | Starts a new line. -lnbk :: Monad m => LaTeX m -lnbk = comm0_ "\\ " - --- | Starts a new paragraph. -pfbk :: Monad m => LaTeX m -pfbk = newline >> newline - -lnbk_ :: Monad m => LaTeX m -lnbk_ = comm0_ "\\* " - --- | Starts a new page. -newpage :: Monad m => LaTeX m -newpage = comm0 "newpage" - -linebreak :: Monad m => Int -> LaTeX m -linebreak = comm3 "linebreak" . (:[]) . lxany - -nolinebreak :: Monad m => Int -> LaTeX m -nolinebreak = comm3 "nolinebreak" . (:[]) . lxany - -pagebreak :: Monad m => Int -> LaTeX m -pagebreak = comm3 "pagebreak" . (:[]) . lxany - -nopagebreak :: Monad m => Int -> LaTeX m -nopagebreak = comm3 "nopagebreak" . (:[]) . lxany - -fussy :: Monad m => LaTeX m -fussy = comm0 "fussy" - -sloppy :: Monad m => LaTeX m -sloppy = comm0 "sloppy" - -endsen :: Monad m => LaTeX m -endsen = comm0_ "@" - -frenchspacing :: Monad m => LaTeX m -frenchspacing = comm0 "frenchspacing" - --- Importing - -include :: Monad m => FilePath -> LaTeX m -include = comm1 "include" . fromString - -includeonly :: Monad m => [FilePath] -> LaTeX m -includeonly = comm1 "includeonly" . mapM_ fromString . intersperse "," - -input :: Monad m => FilePath -> LaTeX m -input = comm1 "input" . fromString - --- Hyphenation - -hyphenation :: Monad m => [Word m] -> LaTeX m -hyphenation = comm1 "hyphenation" . unwords - -hyp :: Monad m => LaTeX m -hyp = comm0 "-" - --- Ready-Made Strings - --- | Writes current date. -today :: Monad m => LaTeX m -today = comm0 "today" - --- | TeX nice word. -tex :: Monad m => LaTeX m -tex = comm0 "TeX" - --- | LaTeX nice word. -latex :: Monad m => LaTeX m -latex = comm0 "LaTeX" - --- | LaTeX2e nice word. -latexe :: Monad m => LaTeX m -latexe = comm0 "LaTeXe" - --- Sections (Article) - -section :: Monad m => Title m -> LaTeX m -section = comm1 "section" - -section_ :: Monad m => Title m -> LaTeX m -section_ = comm1 "section*" - -sectiontab :: Monad m => Title m -> Title m -> LaTeX m -sectiontab t1 = comm4 "section" [t1] - -subsection :: Monad m => Title m -> LaTeX m -subsection = comm1 "subsection" - -subsection_ :: Monad m => Title m -> LaTeX m -subsection_ = comm1 "subsection*" - -subsectiontab :: Monad m => Title m -> Title m -> LaTeX m -subsectiontab t1 = comm4 "subsection" [t1] - -subsubsection :: Monad m => Title m -> LaTeX m -subsubsection = comm1 "subsubsection" - -subsubsection_ :: Monad m => Title m -> LaTeX m -subsubsection_ = comm1 "subsubsection*" - -subsubsectiontab :: Monad m => Title m -> Title m -> LaTeX m -subsubsectiontab t1 = comm4 "subsubsection" [t1] - -paragraph :: Monad m => Title m -> LaTeX m -paragraph = comm1 "paragraph" - -paragraph_ :: Monad m => Title m -> LaTeX m -paragraph_ = comm1 "paragraph*" - -paragraphtab :: Monad m => Title m -> Title m -> LaTeX m -paragraphtab t1 = comm4 "paragraph" [t1] - -subparagraph :: Monad m => Title m -> LaTeX m -subparagraph = comm1 "subparagraph" - -subparagraph_ :: Monad m => Title m -> LaTeX m -subparagraph_ = comm1 "subparagraph*" - -subparagraphtab :: Monad m => Title m -> Title m -> LaTeX m -subparagraphtab t1 = comm4 "subparagraph" [t1] - -part :: Monad m => Title m -> LaTeX m -part = comm1 "part" - -part_ :: Monad m => Title m -> LaTeX m -part_ = comm1 "part*" - -parttab :: Monad m => Title m -> Title m -> LaTeX m -parttab t1 = comm4 "part" [t1] - --- Sections (Report or Book) - -chapter :: Monad m => Title m -> LaTeX m -chapter = comm1 "chapter" - -chapter_ :: Monad m => Title m -> LaTeX m -chapter_ = comm1 "chapter*" - -chaptertab :: Monad m => Title m -> Title m -> LaTeX m -chaptertab t1 = comm4 "chapter" [t1] - --- Sections (Others) - --- | Generate the appendix. -appendix :: Monad m => LaTeX m -appendix = comm0 "appendix" - --- | Generate the title page. -maketitle :: Monad m => LaTeX m -maketitle = comm0 "maketitle" - --- | Generate the table of contents. -tableofcontents :: Monad m => LaTeX m -tableofcontents = comm0 "tableofcontents" - --- For Book Class - -frontmatter :: Monad m => LaTeX m -frontmatter = comm0 "frontmatter" - -mainmatter :: Monad m => LaTeX m -mainmatter = comm0 "mainmatter" - -backmatter :: Monad m => LaTeX m -backmatter = comm0 "backmatter" - --- Cross References - -label :: Monad m => Marker m -> LaTeX m -label = comm1 "label" - -ref :: Monad m => Marker m -> LaTeX m -ref = comm1 "ref" - -pageref :: Monad m => Marker m -> LaTeX m -pageref = comm1 "pageref" - --- Footnotes - --- | Adds a given text to the page's footnote. -footnote :: Monad m => Text m -> LaTeX m -footnote = comm1 "footnote" - --- Emphasized - --- | Underlines a text. -underline :: Monad m => Text m -> LaTeX m -underline = comm1 "underline" - --- | Emphasizes a text. -emph :: Monad m => Text m -> LaTeX m -emph = comm1 "emph" - --- Environments - --- | Environment for create simple lists. See 'item'. -itemize :: Monad m => LaTeX m -> LaTeX m -itemize = env "itemize" - --- | Environment for create enumerated lists. See 'item'. -enumerate :: Monad m => LaTeX m -> LaTeX m -enumerate = env "enumerate" - --- | Environment for create description lists. See 'item'. -description :: Monad m => LaTeX m -> LaTeX m -description = env "description" - --- | Create a list item. Optional argument is used to change its icon. --- --- Example: --- --- > do item ["-"] ; "Item content." --- -item :: Monad m => [ItemOption m] -> LaTeX m -item = comm3 "item" - --- | Left alignment. -flushleft :: Monad m => LaTeX m -> LaTeX m -flushleft = env "flushleft" - --- | Right alignment. -flushright :: Monad m => LaTeX m -> LaTeX m -flushright = env "flushright" - --- | Center alignment. -center :: Monad m => LaTeX m -> LaTeX m -center = env "center" - --- | Quote from a text. -quote :: Monad m => LaTeX m -> LaTeX m -quote = env "quote" - --- | Like 'quote', but indenting the first line of each paragraph. -quotation :: Monad m => LaTeX m -> LaTeX m -quotation = env "quotation" - -verse :: Monad m => LaTeX m -> LaTeX m -verse = env "verse" - --- | Use 'abstract' to create an abstract, containing the argument's text. -abstract :: Monad m => LaTeX m -> LaTeX m -abstract = env "abstract" - --- | A text within the 'verbatim' environment has monospaced font --- and no commands or environments will be executed. -verbatim :: Monad m => LaTeX m -> LaTeX m -verbatim = env "verbatim" - --- | Like 'verbatim', but it makes visible the spaces. -verbatim_ :: Monad m => LaTeX m -> LaTeX m -verbatim_ = env "verbatim*" - -sep :: Monad m => LaTeX m -> LaTeX m -sep = between "|" "|" - --- | An inline version of 'verbatim'. Argument must be a single line. -verb :: Monad m => LaTeX m -> LaTeX m -verb = (comm0_ "verb" >>) . sep - --- | An inline version of 'verbatim_'. Argument must be a single line. -verb_ :: Monad m => LaTeX m -> LaTeX m -verb_ = (comm0_ "verb*" >>) . sep - --- Floating Bodies - -figure :: Monad m => [PlacementSpecifier m] -> LaTeX m -> LaTeX m -figure = env2 "figure" - -table :: Monad m => [PlacementSpecifier m] -> LaTeX m -> LaTeX m -table = env2 "table" - -caption :: Monad m => Text m -> LaTeX m -caption = comm1 "caption" - -listoffigures :: Monad m => LaTeX m -listoffigures = comm0 "listoffigures" - -listoftables :: Monad m => LaTeX m -listoftables = comm0 "listoftables" - -clearpage :: Monad m => LaTeX m -clearpage = comm0 "clearpage" - -cleardoublepage :: Monad m => LaTeX m -cleardoublepage = "cleardoblepage" - --- Customizing - -newcommand :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m -newcommand n i = comm6 "newcommand" n (map lxany i) - -renewcommand :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m -renewcommand n i = comm6 "renewcommand" n (map lxany i) - -providecommand :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m -providecommand n i = comm6 "providecommand" n (map lxany i) - -newenvironment :: Monad m => Name m -> [Int] -> LaTeX m -> LaTeX m -> LaTeX m -newenvironment n i = comm7 "newenvironment" n (map lxany i) - -ignorespaces :: Monad m => LaTeX m -ignorespaces = comm0 "ignorespaces" - -ignorespacesafterend :: Monad m => LaTeX m -ignorespacesafterend = comm0 "ignorespacesafterend" - -providesPackage :: Monad m => Name m -> LaTeX m -providesPackage = comm1 "ProvidesPackage" - --- Fonts - --- $fontslabel --- #Fonts# - --- | Roman font -textrm :: Monad m => LaTeX m -> LaTeX m -textrm = comm1 "textrm" - --- | Monospaced font -texttt :: Monad m => LaTeX m -> LaTeX m -texttt = comm1 "texttt" - --- | Medium font -textmd :: Monad m => LaTeX m -> LaTeX m -textmd = comm1 "textmd" - --- | Upright font -textup :: Monad m => LaTeX m -> LaTeX m -textup = comm1 "textup" - --- | Slanted font -textsl :: Monad m => LaTeX m -> LaTeX m -textsl = comm1 "textsl" - --- | Sans Serif font -textsf :: Monad m => LaTeX m -> LaTeX m -textsf = comm1 "textsf" - --- | Bold font -textbf :: Monad m => LaTeX m -> LaTeX m -textbf = comm1 "textbf" - --- | Italic font -textit :: Monad m => LaTeX m -> LaTeX m -textit = comm1 "textit" - --- | Small Caps font -textsc :: Monad m => LaTeX m -> LaTeX m -textsc = comm1 "textsc" - --- | Default font -textnormal :: Monad m => LaTeX m -> LaTeX m -textnormal = comm1 "textnormal" - --- Font Sizes - --- $fontsize --- Differents fonts size are sorted from lowest to highest. - -tiny :: Monad m => LaTeX m -> LaTeX m -tiny = comm8 "tiny" - -scriptsize :: Monad m => LaTeX m -> LaTeX m -scriptsize = comm8 "scriptsize" - -footnotesize :: Monad m => LaTeX m -> LaTeX m -footnotesize = comm8 "footnotesize" - -small :: Monad m => LaTeX m -> LaTeX m -small = comm8 "small" - -normalsize :: Monad m => LaTeX m -> LaTeX m -normalsize = comm8 "normalsize" - -large :: Monad m => LaTeX m -> LaTeX m -large = comm8 "large" - -large2 :: Monad m => LaTeX m -> LaTeX m -large2 = comm8 "Large" - -large3 :: Monad m => LaTeX m -> LaTeX m -large3 = comm8 "LARGE" - -huge :: Monad m => LaTeX m -> LaTeX m -huge = comm8 "huge" - -huge2 :: Monad m => LaTeX m -> LaTeX m -huge2 = comm8 "Huge" - --- - -par :: Monad m => LaTeX m -par = comm0 "par" - --- Spacing - --- | In preamble, it sets the inter-line spacing. Default line spread factor: 1. -linespread :: Monad m => Float -> LaTeX m -linespread = comm1 "linespread" . lxany - --- | Creates an horizontal spaces with length specified by the argument. --- See "Text.LaTeX.Arguments#Measures" to create a correct argument. -hspace :: Monad m => LaTeX m -> LaTeX m -hspace = comm1 "hspace" - --- | Same as 'hspace', but it ignores start or end of lines. -hspace_ :: Monad m => LaTeX m -> LaTeX m -hspace_ = comm1 "hspace*" - --- | Vertical version of 'hspace'. Useful to separate two paragraphs. -vspace :: Monad m => LaTeX m -> LaTeX m -vspace = comm1 "vspace" - --- | Same as 'vspace', but it ignores start or end of pages. -vspace_ :: Monad m => LaTeX m -> LaTeX m -vspace_ = comm1 "vspace*" - --- | Create a space filling the remaining space of the line. --- If there are multiple occurences, stretch factor determines the proportion of each space. -stretch :: Monad m => Int -> LaTeX m -stretch = comm1 "stretch" . lxany - --- | Like 'vspace', but for lines of the same paragraph. --- 'bigskip' and 'smallskip' use 'skip' with a predefined argument. -skip :: Monad m => LaTeX m -> LaTeX m -skip = mappend lnbk . brackets - -bigskip :: Monad m => LaTeX m -bigskip = comm0 "bigskip" - -smallskip :: Monad m => LaTeX m -smallskip = comm0 "smallskip" - --- Boxes - --- | @mbox@ creates a box containing its argument. -mbox :: Monad m => LaTeX m -> LaTeX m -mbox = comm1 "mbox" - --- | Create an empty box. -mbox_ :: Monad m => LaTeX m -mbox_ = mbox "" - -fbox :: Monad m => LaTeX m -> LaTeX m -fbox = comm1 "fbox" - -parbox :: Monad m => [Char] -> Width m -> LaTeX m -> LaTeX m -parbox c = comm9 "parbox" (if null c then [] else [fromString c]) - -minipage :: Monad m => [Char] -> Width m -> LaTeX m -> LaTeX m -minipage c = env3 "minipage" (if null c then [] else [fromString c]) - -makebox :: Monad m => [Width m] -> [Char] -> LaTeX m -> LaTeX m -makebox w c = comm10 "makebox" w (if null c then [] else [fromString c]) - -framebox :: Monad m => [Width m] -> [Char] -> LaTeX m -> LaTeX m -framebox w c = comm10 "framebox" w (if null c then [] else [fromString c]) - -raisebox :: Monad m => Lift m -> [Extend m] -> [Extend m] -> LaTeX m -> LaTeX m -raisebox = comm11 "raisebox" - --- | It produces a simple black box. -rule :: Monad m => [Lift m] -> Width m -> Height m -> LaTeX m -rule = comm9 "rule" - --- Others - -protect :: Monad m => LaTeX m -protect = comm0_ "protect" - -phantom :: Monad m => LaTeX m -> LaTeX m -phantom = comm1 "phantom" - --- Tabular m - -type Tabular m = LaTeX m - -cjustified :: Monad m => Width m -> LaTeX m -cjustified = ("p">>) . braces - -csep :: Monad m => LaTeX m -> LaTeX m -csep = ("@">>) . braces - --- | The 'tabular' environment can be used to creates tables. --- --- * First argument specifies vertical position: --- @\"c\"@ (center), --- @\"t\"@ (top) and --- @\"b\"@ (bottom). --- Example: @[\"t\"]@ --- --- * Second argument specifies table's format: --- @\"l\"@ (left-aligned text column), --- @\"r\"@ (right-aligned text column), --- @\"c\"@ (center text column), --- 'cjustified' (justified text column) and --- @\"|\"@ (vertical line). --- Example: @\"|l|r|\"@ --- --- * Third argument refers to table's content: --- 'hline' inserts an horizontal line, --- 'cline' inserts a partial horizontal line, --- ('&') separates columns and --- ('//') separates rows. -tabular :: Monad m => [LaTeX m] -> LaTeX m -> LaTeX m -> Tabular m -tabular = env3 "tabular" - -(&) :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -(&) = mid " & " - -(//) :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -(//) = mid $ lnbk >> newline - --- | Insert an horizontal line in a 'tabular'. -hline :: Monad m => LaTeX m -hline = comm0 "hline" - --- | Insert a partial horizontal line in a 'tabular'. -cline :: Monad m => Int -- ^ Start column - -> Int -- ^ End column - -> LaTeX m -cline n m = comm1 "cline" $ lxany n - lxany m - -multicolumn :: Monad m => Int -> LaTeX m -> LaTeX m -> LaTeX m -multicolumn n = comm12 "multicolumn" $ lxany n - -type LxMatrix m = [[LaTeX m]] - --- | A matrix version of 'tabular'. --- First and second arguments have the same meaning. --- The generated 'tabular' has the same rows and columns as the matrix. -matrixTab :: Monad m => [LaTeX m] -> LaTeX m -> LxMatrix m -> Tabular m -matrixTab p spec m = let f = tabular p spec . foldr1 (//) . map (foldr1 (&)) - in if sum (map length m) == 0 then "" else f m - - - - - - - - - -
− Text/LaTeX/Define.hs
@@ -1,115 +0,0 @@- -{-# LANGUAGE OverloadedStrings #-} - --- | This module allows you to add commands and environments of LaTeX which are not defined in HaTeX. --- Usually, you don't need to use these functions. --- --- If a desired command doesn't appear in HaTeX and you need it, use these functions and report the missing function to the maintainer. -module Text.LaTeX.Define ( - -- * Defining Commands - comm0_ - , comm0 - , comm1 - , comm2 - , comm3 - , comm4 - , comm5 - , comm6 - , comm7 - , comm8 - , comm9 - , comm10 - , comm11 - , comm12 - -- * Defining Environments - , env - , env2 - , env3 - ) where - -import Control.Monad.Writer -import Data.List (intersperse) - -import Data.String.Combinators (braces,comma,brackets,between) - -import Text.LaTeX.Monad -import Text.LaTeX.Result - -listOpts :: Monad m => [LaTeX m] -> LaTeX m -listOpts [] = "" -listOpts xs = brackets . sequence_ . intersperse comma $ xs - --- - -comm0_ :: Monad m => LaTeX m -> LaTeX m -comm0_ = mappend "\\" - -comm0 :: Monad m => LaTeX m -> LaTeX m -comm0 n = do comm0_ n - braces "" - - -comm1 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -comm1 n x = do comm0_ n - braces x - -comm2 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> LaTeX m -comm2 n x opts = do comm1 n x - listOpts opts - -comm3 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -comm3 n opts = do comm0_ n - listOpts opts - -comm4 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -comm4 n opts x = do comm3 n opts - braces x - -comm5 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -> LaTeX m -comm5 n x y = do comm1 n x - braces y - -comm6 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -comm6 n x opts y = do comm2 n x opts - braces y - -comm7 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -> LaTeX m -comm7 n x opts y z = do comm6 n x opts y - braces z - -comm8 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -comm8 n x = braces $ do comm0 n - x - -comm9 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -> LaTeX m -comm9 n opts x y = do comm4 n opts x - braces y - -comm10 :: Monad m => LaTeX m -> [LaTeX m] -> [LaTeX m] -> LaTeX m -> LaTeX m -comm10 n opts1 opts2 x = do comm3 n opts1 - listOpts opts2 - braces x - -comm11 :: Monad m => LaTeX m -> LaTeX m -> [LaTeX m] -> [LaTeX m] -> LaTeX m -> LaTeX m -comm11 n x opts1 opts2 y = do comm2 n x opts1 - listOpts opts2 - braces y - -comm12 :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -> LaTeX m -> LaTeX m -comm12 n x y z = do comm5 n x y - braces z - -env :: Monad m => LaTeX m -> LaTeX m -> LaTeX m -env t x = do comm1 "begin" t - x - comm1 "end" t - -env2 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -env2 t opts x = do comm2 "begin" t opts - x - comm1 "end" t - -env3 :: Monad m => LaTeX m -> [LaTeX m] -> LaTeX m -> LaTeX m -> LaTeX m -env3 t opts x y = do comm6 "begin" t opts x - y - comm1 "end" t
− Text/LaTeX/Macro.hs
@@ -1,104 +0,0 @@- --- | This module defines some macros to speed up writing documents. --- --- Note: Have you an idea for a macro? Send your suggestions! -module Text.LaTeX.Macro ( - -- * Simple macros - m_simple - , m_wpkgs - -- * Article macros - , m_article - , m_articlep - -- * Math macros - , m_math - ) where - -import Text.LaTeX.Monad -import Text.LaTeX.Commands -import Text.LaTeX.Packages -import Text.LaTeX.Arguments - --- Simple macros - -m_simple :: Monad m => - [ClassOption m] -- ^ Class options - -> Class m -- ^ Class - -> Name m -- ^ Author's name - -> Title m -- ^ Document's title - -> LaTeX m -- ^ Document's content - -> LaTeX m -- ^ Output -m_simple copts c a t cnt = - do documentclass copts c - author a - title t - document cnt - -m_wpkgs - :: Monad m => - [ClassOption m] -- ^ Class options - -> Class m -- ^ Class - -> Name m -- ^ Author's name - -> Title m -- ^ Document's title - -> [([PackageOption m] - , Package m)] -- ^ A list of imported packages - -> LaTeX m -- ^ Document's content - -> LaTeX m -- ^ Output -m_wpkgs copts c a t pkgs cnt = - do documentclass copts c - mapM_ (uncurry usepackage) pkgs - author a - title t - document cnt - --- Various macros - --- | Function 'm_article' generate a LaTeX file with the following properties: --- --- * Article class. --- --- * Font Size: 11pt --- --- * A title in the first page. --- --- * A4 paper. -m_article - :: Monad m => - Name m -- ^ Author's name - -> Title m -- ^ Article's title - -> LaTeX m -- ^ Article's content - -> LaTeX m -- ^ Output -m_article a t cnt = - do documentclass [pt 11, titlepage, a4paper] article - author a - title t - document $ do maketitle - cnt - --- | Like 'm_article', but it lets you import packages. -m_articlep - :: Monad m => - Name m -- ^ Author's name - -> Title m -- ^ Article's title - -> [([PackageOption m], Package m)] -- ^ A list of imported packages - -> LaTeX m -- ^ Document's content - -> LaTeX m -- ^ Output -m_articlep a t pkgs cnt = - do documentclass [pt 11, titlepage, a4paper] article - mapM_ (uncurry usepackage) pkgs - author a ; title t - document $ do maketitle - cnt - --- Math macros - --- | Macro for math articles. Like 'm_article', but importing 'amsmath' package. -m_math - :: Monad m => - Name m -- ^ Author's name - -> Title m -- ^ Article's title - -> LaTeX m -- ^ Document's content - -> LaTeX m -- ^ Output -m_math a t cnt = m_articlep a t [([],amsmath)] cnt - - -
Text/LaTeX/Monad.hs view
@@ -1,106 +1,13 @@- -{-# LANGUAGE OverloadedStrings,TypeSynonymInstances #-} - -module Text.LaTeX.Monad ( - -- * @LaTeX@ Monad - LaTeXT - , LaTeX - -- * Basic functions over @LaTeX@ Monad - , lx - , lxany - , lxw - , lxanyw - , nlx - , mlx - , reslx - -- * Generalizing - , genlx , ungenlx - ) where - -import Control.Monad.Writer -import Data.Monoid -import Data.String -import System.IO.Unsafe -import Text.LaTeX.Result - -import Data.String.Combinators(fromShow) - ----------------------------- - --- | 'LaTeXT' is the monadic transformer that represents LaTeX code. --- Bind operator plays as concatenator. --- --- Instances of 'LaTeXT': --- --- * 'IsString' --- --- * 'Num' --- --- * 'Fractional' --- --- * 'Floating' --- --- * 'Monoid' -type LaTeXT m a = WriterT Result m a - -type LaTeX m = LaTeXT m () - ----------------------------- --- Running the Monad - --- | Run a 'LaTeXT' computation. -nlx :: Monad m => LaTeXT m a -> m Result -nlx = execWriterT - ----------------------------- - --- | Write a result. -lx :: Monad m => Result -> LaTeX m -lx = tell - --- | Write anything of 'Show' class. -lxany :: (Monad m , Show a) => a -> LaTeX m -lxany = ungenlx . lxanyw - --- | Like 'lx', but returns an undefined value. -lxw :: Monad m => Result -> LaTeXT m a -lxw = genlx . lx - --- | Like 'lxany', but returns an undefined value. -lxanyw :: (Monad m , Show b) => b -> LaTeXT m a -lxanyw = fromShow - --- | Performs a monadic computation, returning his value in the 'LaTeXT' monad. --- Is equivalent to 'lift'. -mlx :: Monad m => m a -> LaTeXT m a -mlx = lift - --- | Transform a 'Result' modifier in a 'LaTeXT' modifier. -reslx :: Monad m => (Result -> Result) -> (LaTeXT m a -> LaTeXT m a) -reslx = censor - -instance Monad m => IsString (LaTeXT m a) where - fromString = lxw . toResult - -instance Monad m => Show (LaTeXT m a) where - show _ = "" - -instance Monad m => Eq (LaTeXT m a) where - _ == _ = error "(==): LaTeXT values can't be compared." - -instance Monad m => Monoid (LaTeXT m a) where - mempty = "" - mappend = (>>) - --- Generalizing - -genlx :: Monad m => LaTeX m -> LaTeXT m a -genlx = (>> return undefined) - -ungenlx :: Monad m => LaTeXT m a -> LaTeX m -ungenlx = (>> return ()) - - - - ++-- | This module is a re-export of the main modules.+-- Importing this will you give access to almost all+-- functionality of the library. It is recommended+-- to import the @Base@ module and, then, import only+-- packages you will need. +module Text.LaTeX.Monad + ( module Text.LaTeX.Base.Monad + , module Text.LaTeX.Packages.Monad + ) where +import Text.LaTeX.Base.Monad +import Text.LaTeX.Packages.Monad
Text/LaTeX/Packages.hs view
@@ -1,526 +1,21 @@ -{-# LANGUAGE OverloadedStrings,TypeSynonymInstances,NoMonomorphismRestriction #-} - module Text.LaTeX.Packages - ( -- * Packages - Package - , PackageOption - -- * List of Packages - -- ** @doc@ - , doc - -- ** @exscale@ - , exscale - -- ** @ifthen@ - , ifthen - -- ** @msym@ - , msym - -- ** @makeidx@ - , makeidx - -- ** @fontenc@ - , fontenc - , oT1 , t1 - , t2A, t2B - , t2C, x2 - , lgr - -- ** @syntonly@ - , syntonly - , syntaxonly - -- ** @inputenc@ - , inputenc - , applemac - , macukr - , latin1 - , koi8_ru - , ansinew - , cp1251 - , cp850 - , cp866nav - -- ** @ucs@ - , ucs - , utf8x - -- ** @textcomp@ - , textcomp - , textdegree - , textcelsius - , texteuro - -- ** @eurosym@ - , eurosym - , euro - -- ** @babel@ - , babel - , selectlanguage - -- ** @hyperref@ - , hyperref - , pdftex - , href - -- ** @color@ - , colorpkg - , monochrome - , dvipsnames - , nodvipsnames - , usenames - , rgb - , pagecolor - , color - , normalcolor - -- ** @fancyhdr@ - , fancyhdr - , fancy - -- * AMS-LaTeX - , MathTerm - -- ** @amsmath@ - , amsmath - , math - , equation - , equation_ - , smash - , lim , (->>) - , sums , sums_ , summ - , sqroot - , cdot , cdots , vdots , ddots - , overline - , overbrace, underbrace - -- *** Operators - , (==:) , (/=:) - , (<=:) , (>=:) - , (===) - , (~~) , (~=) - , (<@) , (>@) , (<=@) , (>=@) - , (-|) , (|-) , (-/) - , (/@) - , (|.|) - , (+-) , (-+) - , (<*>) - , (*:) , (^:) , (!:) - -- *** Math Mode Accents - , hat , widehat - , tilde , widetilde - , grave , bar - , acute , mathring - , check , dot - , vec , breve - , ddot - -- *** Greek Alphabet - , alpha - , beta - , gamma , gamma_ - , delta , delta_ - , epsilon , varepsilon - , zeta - , eta - , theta , vartheta , theta_ - , iota - , kappa - , lambda , lambda_ - , mu - , nu - , xi , xi_ - , varpi , pi_ - , rho , varrho - , sigma , varsigma , sigma_ - , tau - , upsilon, upsilon_ - , phi , varphi, phi_ - , chi - , psi, psi_ - , omega, omega_ - -- *** Mathematical Functions - -- *** Symbols - , dagger , ddagger - , forall - -- *** Others - , binom - , proof - ) where - -import Data.List (intersperse) -import Data.Monoid - -import Data.String.Combinators (braces,fromShow,between) - -import Text.LaTeX.Monad -import Text.LaTeX.Define -import Text.LaTeX.Arguments -import Text.LaTeX.Result - -type Package m = LaTeX m - -type PackageOption m = LaTeX m - -doc :: Monad m => Package m -doc = "doc" - -exscale :: Monad m => Package m -exscale = "exscale" - -ifthen :: Monad m => Package m -ifthen = "ifthen" - -msym :: Monad m => Package m -msym = "LaTeX msym" - -makeidx :: Monad m => Package m -makeidx = "makeidx" - -fontenc :: Monad m => Package m -fontenc = "fontenc" - -oT1 :: Monad m => Encoding m -oT1 = "0T1" - -t1 :: Monad m => Encoding m -t1 = "T1" - -t2A :: Monad m => Encoding m -t2A = "T2A" - -t2B :: Monad m => Encoding m -t2B = "T2B" - -t2C :: Monad m => Encoding m -t2C = "T2C" - -x2 :: Monad m => Encoding m -x2 = "X2" - -lgr :: Monad m => Encoding m -lgr = "LGR" - -syntonly :: Monad m => Package m -syntonly = "syntonly" - -syntaxonly :: Monad m => LaTeX m -syntaxonly = comm0 "syntaxonly" - -inputenc :: Monad m => Package m -inputenc = "inputenc" - -applemac :: Monad m => Encoding m -applemac = "applemac" - -macukr :: Monad m => Encoding m -macukr = "macukr" - -latin1 :: Monad m => Encoding m -latin1 = "latin1" - -koi8_ru :: Monad m => Encoding m -koi8_ru = "koi8-ru" - -ansinew :: Monad m => Encoding m -ansinew = "ansinew" - -cp1251 :: Monad m => Encoding m -cp1251 = "cp1251" - -cp850 :: Monad m => Encoding m -cp850 = "cp850" - -cp866nav :: Monad m => Encoding m -cp866nav = "cp866nav" - -ucs :: Monad m => Package m -ucs = "ucs" - -utf8x :: Monad m => Encoding m -utf8x = "utf8x" - -textcomp :: Monad m => Package m -textcomp = "textcomp" - -textdegree :: Monad m => LaTeX m -textdegree = comm0 "textdegree" - -textcelsius :: Monad m => LaTeX m -textcelsius = comm0 "textcelsius" - -texteuro :: Monad m => LaTeX m -texteuro = comm0 "texteuro" - -eurosym :: Monad m => Package m -eurosym = "eurosym" - -euro :: Monad m => LaTeX m -euro = comm0 "euro" - -babel :: Monad m => Package m -babel = "babel" - -selectlanguage :: Monad m => Language m -> LaTeX m -selectlanguage = comm1 "selectlanguage" - -hyperref :: Monad m => Package m -hyperref = "hyperref" - -pdftex :: Monad m => PackageOption m -pdftex = "pdftex" - -href :: Monad m => URL m -> Text m -> LaTeX m -href = comm5 "href" - -colorpkg :: Monad m => Package m -colorpkg = "color" - -monochrome :: Monad m => PackageOption m -monochrome = "monochrome" - -dvipsnames :: Monad m => PackageOption m -dvipsnames = "dvipsnames" - -nodvipsnames :: Monad m => PackageOption m -nodvipsnames = "nodvipsnames" - -usenames :: Monad m => PackageOption m -usenames = "usenames" - --- | 'Color' from RGB components. -rgb :: Monad m => Float -> Float -> Float -> Color m -rgb r g b = do "[rgb]" - braces . lx . mconcat . intersperse (toResult ",") $ map fromShow [r,g,b] - --- | Set page color. 'pagecolor' in header defines the default page color of the document. -pagecolor :: Monad m => Color m -> LaTeX m -pagecolor = (comm0_ "pagecolor" >>) - --- | Set font color from current position. 'color' in header defines the default font color of the document. -color :: Monad m => Color m -> LaTeX m -color = (comm0_ "color" >>) - --- | Restore font color from current position. -normalcolor :: Monad m => LaTeX m -normalcolor = comm0 "normalcolor" - -fancyhdr :: Monad m => Package m -fancyhdr = "fancyhdr" - -fancy :: Monad m => Style m -fancy = "fancy" - ----------------------------------- ----------- AMS-LaTeX m ------------- - --- LaTeXT numeric instances. - -inOp :: Monad m => LaTeXT m a -> (LaTeXT m a -> LaTeXT m a -> LaTeXT m a) -inOp op x y = do x ; op ; y - -inOpCom :: Monad m => LaTeX m -> (MathTerm m -> MathTerm m -> MathTerm m) -inOpCom = inOp . comm0 - -genOp :: Monad m => (LaTeX m -> LaTeX m -> LaTeX m) -> (LaTeXT m a -> LaTeXT m a -> LaTeXT m a) -genOp op x y = genlx $ op (ungenlx x) (ungenlx y) - -(==:) = inOp "=" -(/=:) = inOpCom "neq" -(<=:) = inOpCom "leq" -(>=:) = inOpCom "geq" -(===) = inOpCom "equiv" -(~~) = inOpCom "sim" -(~=) = inOpCom "simeq" - -(<@) = inOpCom "subset" -(>@) = inOpCom "supset" -(<=@) = inOpCom "subseteq" -(>=@) = inOpCom "supseteq" -(-|) = inOpCom "in" -(|-) = inOpCom "ni" -(-/) = inOpCom "notin" -(/@) = inOpCom "setminus" - -(|.|) = inOpCom "parallel" - -(+-) = inOpCom "pm" -(-+) = inOpCom "mp" - -(<*>) = inOpCom "star" - -instance (Monad m) => Num (LaTeXT m a) where - (+) = inOp "+" - (-) = inOp "-" - (*) = (>>) - negate = (comm0 "not" >>) - fromInteger = lxanyw - -(*:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m -(*:) = inOp cdot - -instance (Monad m) => Fractional (LaTeXT m a) where - (/) = genOp $ comm5 "frac" - fromRational = lxanyw . (fromRational :: Rational -> Float) - -instance (Monad m) => Floating (LaTeXT m a) where - pi = genlx $ comm0 "pi" - exp = (comm0 "exp" >>) - log = (comm0 "log" >>) - sqrt = genlx . sqroot [] . ungenlx - (**) = genOp (^:) - sin = (comm0 "sin" >>) - cos = (comm0 "cos" >>) - tan = (comm0 "tan" >>) - asin = (comm0 "arcsin" >>) - acos = (comm0 "arccos" >>) - atan = (comm0 "arctan" >>) - sinh = (comm0 "sinh" >>) - cosh = (comm0 "cosh" >>) - tanh = (comm0 "tanh" >>) - --- AMS-Math - -type MathTerm m = LaTeX m - --- | AMS-Math package. It allows you to write mathematical expressions. -amsmath :: Monad m => Package m -amsmath = "amsmath" - --- | Write a mathematical expression inline. -math :: Monad m => MathTerm m -> LaTeX m -math = between "$" "$" - --- | Mathematical expressions environment. -equation :: Monad m => MathTerm m -> LaTeX m -equation = env "equation" - --- | Like 'equation', but expressions are not numbered. -equation_ :: Monad m => MathTerm m -> LaTeX m -equation_ = env "equation*" - -smash :: Monad m => LaTeX m -> LaTeX m -smash = comm1 "smash" - --- | Insert normal text in a mathematical expression. -text :: Monad m => LaTeX m -> LaTeX m -text = comm1 "text" - --- | Superscript. -(^:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m -x ^: y = do x ; "^" ; braces y - --- | Subscript. -(!:) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m -x !: y = do x ; "_" ; braces y - -lim :: Monad m => MathTerm m -lim = comm0 "lim" - -(->>) :: Monad m => MathTerm m -> MathTerm m -> MathTerm m -x ->> y = do x ; comm0 "to" ; y - -sums :: Monad m => MathTerm m -sums = comm0 "sum" - -sums_ :: Monad m => MathTerm m -sums_ = comm0_ "sum" - -summ :: Monad m => MathTerm m -> MathTerm m -> MathTerm m -summ x y = sums_ !: x ^: y - -sqroot :: Monad m => [MathTerm m] -> MathTerm m -> MathTerm m -sqroot = comm4 "sqrt" - -cdot :: Monad m => MathTerm m -cdot = comm0 "cdot" - -cdots :: Monad m => MathTerm m -cdots = comm0 "cdots" - -vdots :: Monad m => MathTerm m -vdots = comm0 "vdots" - -ddots :: Monad m => MathTerm m -ddots = comm0 "ddots" - -overline :: Monad m => MathTerm m -> MathTerm m -overline = comm1 "overline" - -overbrace :: Monad m => MathTerm m -> MathTerm m -overbrace = comm1 "overbrace" - -underbrace :: Monad m => MathTerm m -> MathTerm m -underbrace = comm1 "underbrace" - --- Math Mode Accents - -hat = comm1 "hat" -grave = comm1 "grave" -bar = comm1 "bar" -acute = comm1 "acute" -mathring = comm1 "mathring" -check = comm1 "check" -dot = comm1 "dot" -vec = comm1 "vec" -breve = comm1 "breve" -tilde = comm1 "tilde" -ddot = comm1 "ddot" -widehat = comm1 "widehat" -widetilde = comm1 "widetilde" - --- Greek Alphabet - -alpha = comm0 "alpha" -beta = comm0 "beta" -gamma = comm0 "gamma" -gamma_ = comm0 "Gamma" -delta = comm0 "delta" -delta_ = comm0 "Delta" -epsilon = comm0 "epsilon" -varepsilon = comm0 "varepsilon" -zeta = comm0 "zeta" -eta = comm0 "eta" -theta = comm0 "theta" -vartheta = comm0 "vartheta" -theta_ = comm0 "Theta" -iota = comm0 "iota" -kappa = comm0 "kappa" -lambda = comm0 "lambda" -lambda_ = comm0 "Lambda" -mu = comm0 "mu" -nu = comm0 "nu" -xi = comm0 "xi" -xi_ = comm0 "Xi" -pi = comm0 "pi" -varpi = comm0 "varpi" -pi_ = comm0 "Pi" -rho = comm0 "rho" -varrho = comm0 "varrho" -sigma = comm0 "sigma" -varsigma = comm0 "varsigma" -sigma_ = comm0 "Sigma" -tau = comm0 "tau" -upsilon = comm0 "upsilon" -upsilon_ = comm0 "Upsilon" -phi = comm0 "phi" -varphi = comm0 "varphi" -phi_ = comm0 "Phi" -chi = comm0 "chi" -psi = comm0 "psi" -psi_ = comm0 "Psi" -omega = comm0 "omega" -omega_ = comm0 "Omega" - --- Some mathematical functions - --- Symbols - -dagger :: Monad m => LaTeX m -dagger = comm0 "dag" - -ddagger :: Monad m => LaTeX m -ddagger = comm0 "ddag" - --- | \"For all\" symbol. -forall :: Monad m => LaTeX m -forall = comm0 "forall" - --- Others - -binom :: Monad m => MathTerm m -> MathTerm m -> MathTerm m -binom = comm5 "binom" - --- | Environment for a proof. -proof :: Monad m => LaTeX m -> LaTeX m -proof = env "proof" - - - - + ( -- * Encoding packages + module Text.LaTeX.Packages.Inputenc + -- * Cross-reference packages + , module Text.LaTeX.Packages.Hyperref + -- * Presentation packages + , module Text.LaTeX.Packages.Beamer+ -- * Mathematics packages+ , module Text.LaTeX.Packages.AMSMath+ , module Text.LaTeX.Packages.AMSFonts+ -- * Graphics packages+ , module Text.LaTeX.Packages.Color + ) where +import Text.LaTeX.Packages.Inputenc +import Text.LaTeX.Packages.Hyperref +import Text.LaTeX.Packages.Beamer+import Text.LaTeX.Packages.AMSMath+import Text.LaTeX.Packages.AMSFonts+import Text.LaTeX.Packages.Color
+ Text/LaTeX/Packages/AMSFonts.hs view
@@ -0,0 +1,27 @@++module Text.LaTeX.Packages.AMSFonts+ ( -- * AMSFonts package+ amsfonts+ -- * Fonts+ , mathbb+ ) where++import Text.LaTeX.Base.Syntax++-- | AMSFonts package.+-- Example:+--+-- > usepackage [] amsfonts+amsfonts :: String+amsfonts = "amsfonts"++--++-- | This font is useful for representing sets like+-- R (real numbers) or Z (integers). For instance:+--+-- > "The set of real numbers are represented by " <> mathbb "R" <> "."+--+-- /Note the use of overloaded strings./+mathbb :: LaTeX -> LaTeX+mathbb l = TeXComm "mathbb" [FixArg l]
+ Text/LaTeX/Packages/AMSFonts/Monad.hs view
@@ -0,0 +1,46 @@+ +-- | +-- +-- /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.AMSFonts" /module via HaTeX-meta,/ +-- /and therefore, changes must to be done in these places./ + +module Text.LaTeX.Packages.AMSFonts.Monad + ( -- * AMSFonts package + amsfonts + -- * Fonts + , mathbb + ) where + +import Text.LaTeX.Base.Writer +import Text.LaTeX.Base.Render +import Text.LaTeX.Base.Types +import qualified Text.LaTeX.Packages.AMSFonts as App +import Text.LaTeX.Packages.AMSFonts() + +{-| +AMSFonts package. + Example: + +> usepackage [] amsfonts + +-} +amsfonts :: String +amsfonts = App.amsfonts + +{-| +This font is useful for representing sets like + R (real numbers) or Z (integers). For instance: + +> "The set of real numbers are represented by " <> mathbb "R" <> "." + +/Note the use of overloaded strings./ +-} +mathbb :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +mathbb a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.mathbb a1) + +
+ Text/LaTeX/Packages/AMSMath.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE OverloadedStrings #-}++module Text.LaTeX.Packages.AMSMath+ ( -- * 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.Syntax+import Text.LaTeX.Base.Commands (raw)++-- | AMSMath package.+-- Example:+--+-- > usepackage [] amsmath+amsmath :: String+amsmath = "amsmath"++-- | Inline mathematical expressions.+math :: LaTeX -> LaTeX+math = TeXMath++-------------------------------------+------- Symbols and utilities -------++-- | Superscript.+(^:) :: LaTeX -> LaTeX -> LaTeX+x ^: y = x <> raw "^" <> braces y++-- | Subscript.+(!:) :: LaTeX -> LaTeX -> LaTeX+x !: y = x <> raw "_" <> braces y++---- Function symbols++-- | Sine function symbol.+tsin :: LaTeX+tsin = TeXComm "sin" []++-- | Arcsine function symbol.+arcsin :: LaTeX+arcsin = TeXComm "arcsin" []++-- | Cosine function symbol.+tcos :: LaTeX+tcos = TeXComm "cos" []++-- | Arccosine function symbol.+arccos :: LaTeX+arccos = TeXComm "arccos" []++-- | Tangent function symbol.+ttan :: LaTeX+ttan = TeXComm "tan" []++arctan :: LaTeX+arctan = TeXComm "arctan" []++-- | Exponential function symbol.+texp :: LaTeX+texp = TeXComm "exp" []++-- | Logarithm function symbol.+tlog :: LaTeX+tlog = TeXComm "log" []++-- | Natural logarithm symbol.+ln :: LaTeX+ln = TeXComm "ln" []++---- Other symbols++-- | A right-arrow.+to :: LaTeX+to = TeXComm "to" []++-------------------------------------+------------ Math Fonts -------------++mathbf :: LaTeX -> LaTeX+mathbf l = TeXComm "mathbf" [FixArg l]++mathrm :: LaTeX -> LaTeX+mathrm l = TeXComm "mathrm" [FixArg l]++mathcal :: LaTeX -> LaTeX+mathcal l = TeXComm "mathcal" [FixArg l]++mathsf :: LaTeX -> LaTeX+mathsf l = TeXComm "mathsf" [FixArg l]++mathtt :: LaTeX -> LaTeX+mathtt l = TeXComm "mathtt" [FixArg l]++mathit :: LaTeX -> LaTeX+mathit l = TeXComm "mathit" [FixArg l]
+ Text/LaTeX/Packages/AMSMath/Monad.hs view
@@ -0,0 +1,158 @@+{-# 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) + +
+ Text/LaTeX/Packages/Beamer.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE OverloadedStrings #-} + +module Text.LaTeX.Packages.Beamer + ( -- * Beamer package + beamer + -- * Beamer commands + , frame + , frametitle + , framesubtitle + , alert + , pause + , block + -- ** Overlay Specifications + , OverlaySpec (..) + , beameritem + , uncover + , only + -- ** Themes + , Theme (..) + , usetheme + ) where + +import Text.LaTeX.Base.Syntax +import Text.LaTeX.Base.Render +import Data.String + +-- | The 'beamer' document class. Importing a package is not required. Example: +-- +-- > documentclass [] beamer +beamer :: LaTeX +beamer = "beamer" + +-- | A presentation is composed of a sequence of frames. Each frame is created with this function. +frame :: LaTeX -> LaTeX +frame = TeXEnv "frame" [] + +-- | Set the title of the current frame. Use it within a 'frame'. +frametitle :: LaTeX -> LaTeX +frametitle l = TeXComm "frametitle" [FixArg l] + +-- | Set the subtitle of the current frame. Use it within a 'frame'. +framesubtitle :: LaTeX -> LaTeX +framesubtitle l = TeXComm "framesubtitle" [FixArg l] + +-- | Highlight in red a piece text. With the 'OverlaySpec's, you can specify the slides where +-- the text will be highlighted. +alert :: [OverlaySpec] -> LaTeX -> LaTeX +alert os l = TeXComm "alert" [ MSymArg $ fmap (TeXRaw . render) os, FixArg l] + +-- | Introduces a pause in a slide. +pause :: LaTeX +pause = TeXComm "pause" [] + +-- | 'beameritem' works like 'item', but allows you to specify the slides where +-- the item will be displayed. +beameritem :: [OverlaySpec] -> LaTeX +beameritem os = TeXComm "item" [ MSymArg $ fmap (TeXRaw . render) os ] + +-- | With 'uncover', show a piece of text only in the slides you want. +uncover :: [OverlaySpec] -> LaTeX -> LaTeX +uncover os l = TeXComm "uncover" [ MSymArg $ fmap (TeXRaw . render) os , FixArg l ] + +-- | Similar to 'uncover'. +only :: [OverlaySpec] -> LaTeX -> LaTeX +only os l = TeXComm "only" [ MSymArg $ fmap (TeXRaw . render) os , FixArg l ] + +data OverlaySpec = + OneSlide Int + | FromSlide Int + | ToSlide Int + | FromToSlide Int Int + deriving Show + +instance Render OverlaySpec where + render (OneSlide n) = render n + render (FromSlide n) = render n <> "-" + render (ToSlide n) = "-" <> render n + render (FromToSlide n m) = render n <> "-" <> render m + +-- | A 'block' will be displayed surrounding a text. +block :: LaTeX -- ^ Title for the block + -> LaTeX -- ^ Content of the block + -> LaTeX -- ^ Result +block tit = TeXEnv "block" [ FixArg tit ] + +-- THEMES -- + +--TODO: Add a short description of each theme. + +-- | A 'Theme' of a presentation. See 'usetheme'. +data Theme = + AnnArbor + | Antibes + | Bergen + | Berkeley + | Berlin + | Boadilla + | Boxes + | CambridgeUS + | Copenhagen + | Darmstadt + | Default + | Dresden + | Frankfurt + | Goettingen + | Hannover + | Ilmenau + | JuanLesPins + | Luebeck + | Madrid + | Malmoe + | Marburg + | Montpellier + | PaloAlto + | Pittsburgh + | Rochester + | Singapore + | Szeged + | Warsaw + -- + | CustomTheme String + deriving Show + +instance Render Theme where + render (CustomTheme str) = fromString str + render x = fromString $ show x + +-- | Set the 'Theme' employed in your presentation (in the preamble). +usetheme :: Theme -> LaTeX +usetheme th = TeXComm "usetheme" [ FixArg $ TeXRaw $ render th ] +
+ Text/LaTeX/Packages/Beamer/Monad.hs view
@@ -0,0 +1,115 @@+{-# 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.Beamer" /module via HaTeX-meta,/ +-- /and therefore, changes must to be done in these places./ + +module Text.LaTeX.Packages.Beamer.Monad + ( -- * Beamer package + beamer + -- * Beamer commands + , frame + , frametitle + , framesubtitle + , alert + , pause + , block + -- ** Overlay Specifications + , OverlaySpec (..) + , beameritem + , uncover + , only + -- ** Themes + , Theme (..) + , usetheme + ) where + +import Text.LaTeX.Base.Writer +import Text.LaTeX.Base.Render +import Text.LaTeX.Base.Types +import qualified Text.LaTeX.Packages.Beamer as App +import Text.LaTeX.Packages.Beamer(OverlaySpec,Theme) + +{-| +The 'beamer' document class. Importing a package is not required. Example: + +> documentclass [] beamer + +-} +beamer :: (Monad m) => LaTeXT_ m +beamer = do textell ( App.beamer) + +-- | A presentation is composed of a sequence of frames. Each frame is created with this function. + +frame :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +frame a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.frame a1) + +-- | Set the title of the current frame. Use it within a 'frame'. + +frametitle :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +frametitle a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.frametitle a1) + +-- | Set the subtitle of the current frame. Use it within a 'frame'. + +framesubtitle :: (Monad m) => LaTeXT_ m -> LaTeXT_ m +framesubtitle a1 + = do a1 <- extractLaTeX_ a1 + textell ( App.framesubtitle a1) + +{-| +Highlight in red a piece text. With the 'OverlaySpec's, you can specify the slides where + the text will be highlighted. +-} +alert :: (Monad m) => [OverlaySpec] -> LaTeXT_ m -> LaTeXT_ m +alert a1 a2 + = do a2 <- extractLaTeX_ a2 + textell ( App.alert a1 a2) + +-- | Introduces a pause in a slide. + +pause :: (Monad m) => LaTeXT_ m +pause = do textell ( App.pause) + +{-| +'beameritem' works like @item@, but allows you to specify the slides where + the item will be displayed. +-} +beameritem :: (Monad m) => [OverlaySpec] -> LaTeXT_ m +beameritem a1 = do textell ( App.beameritem a1) + +-- | With 'uncover', show a piece of text only in the slides you want. + +uncover :: (Monad m) => [OverlaySpec] -> LaTeXT_ m -> LaTeXT_ m +uncover a1 a2 + = do a2 <- extractLaTeX_ a2 + textell ( App.uncover a1 a2) + +-- | Similar to 'uncover'. + +only :: (Monad m) => [OverlaySpec] -> LaTeXT_ m -> LaTeXT_ m +only a1 a2 + = do a2 <- extractLaTeX_ a2 + textell ( App.only a1 a2) + +-- | A 'block' will be displayed surrounding a text. + +block :: (Monad m) => LaTeXT_ m -> LaTeXT_ m -> LaTeXT_ m +block a1 a2 + = do a1 <- extractLaTeX_ a1 + a2 <- extractLaTeX_ a2 + textell ( App.block a1 a2) + +-- | Set the 'Theme' employed in your presentation (in the preamble). + +usetheme :: (Monad m) => Theme -> LaTeXT_ m +usetheme a1 = do textell ( App.usetheme a1) + +
+ Text/LaTeX/Packages/Color.hs view
@@ -0,0 +1,150 @@++{-# LANGUAGE OverloadedStrings #-}++module Text.LaTeX.Packages.Color+ ( -- * Color package+ pcolor+ -- * Package options+ , monochrome+ , dvipsnames+ , nodvipsnames+ , usenames+ -- * Types+ , Color (..)+ , ColorName (..)+ , ColorModel (..)+ , ColSpec (..)+ -- * Commands+ , pagecolor+ , color+ , textcolor+ , colorbox , fcolorbox+ , normalcolor+ ) where++import Text.LaTeX.Base.Syntax+import Text.LaTeX.Base.Render+--+import Data.Monoid++-- | The 'color' package. +-- +-- > usepackage [] pcolor+pcolor :: String+pcolor = "color"++-- | To convert all colour commands to black and white,+-- for previewers that cannot handle colour.+monochrome :: LaTeX+monochrome = "monochrome"++dvipsnames :: LaTeX+dvipsnames = "dvipsnames"++nodvipsnames :: LaTeX+nodvipsnames = "nodvipsnames"++usenames :: LaTeX+usenames = "usenames"++--++data ColSpec =+ DefColor Color+ | ModColor ColorModel+ | DvipsColor ColorName+ deriving Show++data Color =+ Red+ | Green+ | Blue+ | Yellow+ | Cyan+ | Magenta+ | Black+ | White+ deriving Show++data ColorModel =+ RGB Float Float Float+ | RGB255 Int Int Int+ | GrayM Float+ | HTML String+ | CMYK Float Float Float Float+ deriving Show++data ColorName =+ Apricot | Aquamarine | Bittersweet+ | BlueGreen | BlueViolet | BrickRed+ | Brown | BurntOrange | CadetBlue+ | CarnationPink | Cerulean | CornflowerBlue+ | Dandelion | DarkOrchid | Emerald+ | ForestGreen | Fuchsia | Goldenrod+ | Gray | GreenYellow | JungleGreen+ | Lavender | LimeGreen | Mahogany+ | Maroon | Melon | MidnightBlue+ | Mulberry | NavyBlue | OliveGreen+ | Orange | OrangeRed | Orchid+ | Peach | Periwinkle | PineGreen+ | Plum | ProcessBlue | Purple+ | RawSienna | RedOrange | RedViolet+ | Rhodamine | RoyalBlue | RubineRed+ | Salmon | SeaGreen | Sepia+ | SkyBlue | SpringGreen | Tan+ | TealBlue | Thistle | Turquoise+ | Violet | VioletRed | WildStrawberry+ | YellowGreen | YellowOrange+ deriving Show++instance Render Color where+ render = fromString . show++instance Render ColorModel where+ render (RGB r g b) = mconcat [ "[rgb]{" , renderCommas [r,g,b] , "}" ]+ render (RGB255 r g b) = mconcat [ "[RGB]{" , renderCommas [r,g,b] , "}" ]+ render (GrayM k) = mconcat [ "[gray]{" , render k , "}"]+ render (HTML str) = mconcat [ "[HTML]{" , fromString str , "}" ]+ render (CMYK c m y k) = mconcat [ "[cmyk]{" , renderCommas [c,m,y,k] , "}" ]++instance Render ColorName where+ render = fromString . show++instance Render ColSpec where+ render (DefColor c) = mconcat [ "{" , render c , "}" ]+ render (ModColor cm) = render cm+ render (DvipsColor c) = mconcat [ "{" , render c , "}" ]++-- Commands++-- | Set the background color fot the current and following pages.+pagecolor :: ColSpec -> LaTeX+pagecolor = (TeXCommS "pagecolor" <>) . rendertex++-- | Switch to a new text color.+color :: ColSpec -> LaTeX+color = (TeXCommS "color" <>) . rendertex++-- | Set the text of its argument in the given colour.+textcolor :: ColSpec -> LaTeX -> LaTeX+textcolor cs l = TeXCommS "textcolor" <> rendertex cs+ <> braces l++-- | Put its argument in a box with the given colour as background.+colorbox :: ColSpec -> LaTeX -> LaTeX+colorbox cs l = TeXCommS "colorbox" <> rendertex cs+ <> braces l++-- | Application of @fcolorbox cs1 cs2 l@ put @l@ in a framed box with+-- @cs1@ as frame color and @cs2@ as background color.+fcolorbox :: ColSpec -> ColSpec -> LaTeX -> LaTeX+fcolorbox cs1 cs2 l =+ TeXCommS "fcolorbox" <> rendertex cs1+ <> rendertex cs2+ <> braces l++-- | Switch to the colour that was active at the end of the preamble.+-- Thus, placing a 'color' command in the preamble can change the+-- standard colour of the whole document.+normalcolor :: LaTeX+normalcolor = TeXComm "normalcolor" []
+ Text/LaTeX/Packages/Color/Monad.hs view
@@ -0,0 +1,107 @@+{-# 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.Color" /module via HaTeX-meta,/ +-- /and therefore, changes must to be done in these places./ + +module Text.LaTeX.Packages.Color.Monad + ( -- * Color package + pcolor + -- * Package options + , monochrome + , dvipsnames + , nodvipsnames + , usenames + -- * Types + , Color (..) + , ColorName (..) + , ColorModel (..) + , ColSpec (..) + -- * Commands + , pagecolor + , color + , textcolor + , colorbox , fcolorbox + , normalcolor + ) where + +import Text.LaTeX.Base.Writer +import Text.LaTeX.Base.Render +import Text.LaTeX.Base.Types +import qualified Text.LaTeX.Packages.Color as App +import Text.LaTeX.Packages.Color(ColSpec,Color,ColorModel,ColorName) + +{-| +The 'color' package. + +> usepackage [] pcolor + +-} +pcolor :: String +pcolor = App.pcolor + +{-| +To convert all colour commands to black and white, + for previewers that cannot handle colour. +-} +monochrome :: (Monad m) => LaTeXT_ m +monochrome = do textell ( App.monochrome) + + +dvipsnames :: (Monad m) => LaTeXT_ m +dvipsnames = do textell ( App.dvipsnames) + + +nodvipsnames :: (Monad m) => LaTeXT_ m +nodvipsnames = do textell ( App.nodvipsnames) + + +usenames :: (Monad m) => LaTeXT_ m +usenames = do textell ( App.usenames) + +-- | Set the background color fot the current and following pages. + +pagecolor :: (Monad m) => ColSpec -> LaTeXT_ m +pagecolor a1 = do textell ( App.pagecolor a1) + +-- | Switch to a new text color. + +color :: (Monad m) => ColSpec -> LaTeXT_ m +color a1 = do textell ( App.color a1) + +-- | Set the text of its argument in the given colour. + +textcolor :: (Monad m) => ColSpec -> LaTeXT_ m -> LaTeXT_ m +textcolor a1 a2 + = do a2 <- extractLaTeX_ a2 + textell ( App.textcolor a1 a2) + +-- | Put its argument in a box with the given colour as background. + +colorbox :: (Monad m) => ColSpec -> LaTeXT_ m -> LaTeXT_ m +colorbox a1 a2 + = do a2 <- extractLaTeX_ a2 + textell ( App.colorbox a1 a2) + +{-| +Application of @fcolorbox cs1 cs2 l@ put @l@ in a framed box with + @cs1@ as frame color and @cs2@ as background color. +-} +fcolorbox :: (Monad m) => ColSpec -> ColSpec -> LaTeXT_ m -> LaTeXT_ m +fcolorbox a1 a2 a3 + = do a3 <- extractLaTeX_ a3 + textell ( App.fcolorbox a1 a2 a3) + +{-| +Switch to the colour that was active at the end of the preamble. + Thus, placing a 'color' command in the preamble can change the + standard colour of the whole document. +-} +normalcolor :: (Monad m) => LaTeXT_ m +normalcolor = do textell ( App.normalcolor) + +
+ Text/LaTeX/Packages/Hyperref.hs view
@@ -0,0 +1,74 @@++{-# LANGUAGE OverloadedStrings #-}+ +module Text.LaTeX.Packages.Hyperref + ( -- * Hyperref package + hyperref + -- * Hyperref commands + , HRefOption (..) + , URL+ , createURL + , href + , url + , nolinkurl + , hyperbaseurl + , hyperimage + , autoref + ) where + +import Text.LaTeX.Base.Syntax +import Text.LaTeX.Base.Render +import Text.LaTeX.Base.Types + +-- | The 'hyperref' package. +-- +-- > usepackage [] hyperref +hyperref :: String +hyperref = "hyperref" + +data HRefOption = + PDFRemoteStartView + | PDFNewWindow + | HRefPage Int + deriving Show + +instance Render HRefOption where + render PDFRemoteStartView = "pdfremotestartview" + render PDFNewWindow = "pdfnewwindow" + render (HRefPage n) = "page=" <> render n + +newtype URL = URL String deriving Show + +instance Render URL where + render (URL str) = fromString str++createURL :: String -> URL+createURL = URL + +-- | Reference to an 'URL'. +href :: [HRefOption] -> URL -> LaTeX -> LaTeX +href options u t = TeXComm "href" [ MOptArg $ fmap (TeXRaw . render) options + , FixArg $ TeXRaw $ render u + , FixArg t ] + +-- | Write an 'URL' hyperlinked. +url :: URL -> LaTeX +url u = TeXComm "url" [ FixArg $ TeXRaw $ render u ] + +-- | Write an 'URL' without creating a hyperlink. +nolinkurl :: URL -> LaTeX +nolinkurl u = TeXComm "nolinkurl" [ FixArg $ TeXRaw $ render u ] + +-- | Establish a base 'URL'. +hyperbaseurl :: URL -> LaTeX +hyperbaseurl u = TeXComm "hyperbaseurl" [ FixArg $ TeXRaw $ render u ] + +-- | @hyperimage imgURL t@: +-- The link to the image referenced by the @imgURL@ is inserted, using @t@ as the anchor. +hyperimage :: URL -> LaTeX -> LaTeX +hyperimage u t = TeXComm "hyperimage" [ FixArg $ TeXRaw $ render u + , FixArg t ] + +-- | This is a replacement for the usual 'ref' command that places a contextual label in front of the reference. +autoref :: Label -> LaTeX +autoref l = TeXComm "autoref" [ FixArg $ TeXRaw $ render l ]
+ Text/LaTeX/Packages/Hyperref/Monad.hs view
@@ -0,0 +1,81 @@+{-# 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.Hyperref" /module via HaTeX-meta,/ +-- /and therefore, changes must to be done in these places./ + +module Text.LaTeX.Packages.Hyperref.Monad + ( -- * Hyperref package + hyperref + -- * Hyperref commands + , HRefOption (..) + , URL + , createURL + , href + , url + , nolinkurl + , hyperbaseurl + , hyperimage + , autoref + ) where + +import Text.LaTeX.Base.Writer +import Text.LaTeX.Base.Render +import Text.LaTeX.Base.Types +import qualified Text.LaTeX.Packages.Hyperref as App +import Text.LaTeX.Packages.Hyperref(HRefOption,URL) + +{-| +The 'hyperref' package. + +> usepackage [] hyperref + +-} +hyperref :: String +hyperref = App.hyperref + + +createURL :: String -> URL +createURL = App.createURL + +-- | Reference to an 'URL'. + +href :: (Monad m) => [HRefOption] -> URL -> LaTeXT_ m -> LaTeXT_ m +href a1 a2 a3 + = do a3 <- extractLaTeX_ a3 + textell ( App.href a1 a2 a3) + +-- | Write an 'URL' hyperlinked. + +url :: (Monad m) => URL -> LaTeXT_ m +url a1 = do textell ( App.url a1) + +-- | Write an 'URL' without creating a hyperlink. + +nolinkurl :: (Monad m) => URL -> LaTeXT_ m +nolinkurl a1 = do textell ( App.nolinkurl a1) + +-- | Establish a base 'URL'. + +hyperbaseurl :: (Monad m) => URL -> LaTeXT_ m +hyperbaseurl a1 = do textell ( App.hyperbaseurl a1) + +{-| +@hyperimage imgURL t@: + The link to the image referenced by the @imgURL@ is inserted, using @t@ as the anchor. +-} +hyperimage :: (Monad m) => URL -> LaTeXT_ m -> LaTeXT_ m +hyperimage a1 a2 + = do a2 <- extractLaTeX_ a2 + textell ( App.hyperimage a1 a2) + +-- | This is a replacement for the usual @ref@ command that places a contextual label in front of the reference. + +autoref :: (Monad m) => Label -> LaTeXT_ m +autoref a1 = do textell ( App.autoref a1) + +
+ Text/LaTeX/Packages/Inputenc.hs view
@@ -0,0 +1,27 @@++{-# LANGUAGE OverloadedStrings #-}+ +module Text.LaTeX.Packages.Inputenc + ( -- * Inputenc package + inputenc + -- * Encodings + , utf8 + , latin1 + ) where + +import Text.LaTeX.Base.Syntax + +-- | Inputenc package. +-- Example: +-- +-- > usepackage [utf8] inputenc +inputenc :: String +inputenc = "inputenc" + +-- | UTF-8 encoding. +utf8 :: LaTeX +utf8 = "utf8" + +-- | Latin-1 encoding. +latin1 :: LaTeX +latin1 = "latin1"
+ Text/LaTeX/Packages/Inputenc/Monad.hs view
@@ -0,0 +1,45 @@+{-# 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.Inputenc" /module via HaTeX-meta,/ +-- /and therefore, changes must to be done in these places./ + +module Text.LaTeX.Packages.Inputenc.Monad + ( -- * Inputenc package + inputenc + -- * Encodings + , utf8 + , latin1 + ) where + +import Text.LaTeX.Base.Writer +import Text.LaTeX.Base.Render +import Text.LaTeX.Base.Types +import qualified Text.LaTeX.Packages.Inputenc as App +import Text.LaTeX.Packages.Inputenc() + +{-| +Inputenc package. + Example: + +> usepackage [utf8] inputenc + +-} +inputenc :: String +inputenc = App.inputenc + +-- | UTF-8 encoding. + +utf8 :: (Monad m) => LaTeXT_ m +utf8 = do textell ( App.utf8) + +-- | Latin-1 encoding. + +latin1 :: (Monad m) => LaTeXT_ m +latin1 = do textell ( App.latin1) + +
+ Text/LaTeX/Packages/Monad.hs view
@@ -0,0 +1,21 @@+ +module Text.LaTeX.Packages.Monad + ( -- * Encoding packages + module Text.LaTeX.Packages.Inputenc.Monad + -- * Cross-reference packages + , module Text.LaTeX.Packages.Hyperref.Monad + -- * Presentation packages + , module Text.LaTeX.Packages.Beamer.Monad+ -- * Mathematics packages+ , module Text.LaTeX.Packages.AMSMath.Monad+ , module Text.LaTeX.Packages.AMSFonts.Monad+ -- * Graphics packages+ , module Text.LaTeX.Packages.Color.Monad + ) where + +import Text.LaTeX.Packages.Inputenc.Monad +import Text.LaTeX.Packages.Hyperref.Monad +import Text.LaTeX.Packages.Beamer.Monad+import Text.LaTeX.Packages.AMSMath.Monad+import Text.LaTeX.Packages.AMSFonts.Monad+import Text.LaTeX.Packages.Color.Monad
− Text/LaTeX/Result.hs
@@ -1,49 +0,0 @@- -{-# LANGUAGE OverloadedStrings #-} - -module Text.LaTeX.Result ( - -- * Result Type - Result - , toResult - , fromResult - -- * Special Characters - , resCharsStr - ) where -import Data.Monoid - -import Data.DString (DString,toString) -import Data.String (fromString) - --- Result Type --------------- --- Instances needed: Monoid, IsString, ToString - --- | The state of the @LaTeX@ monad. A 'Result' is represented by a 'DString'. -type Result = DString - --- - --- | Transform a 'String' to a 'Result'. -toResult :: String -> Result -toResult = fromString - --- | Transform a 'Result' to a 'String'. -fromResult :: Result -> String -fromResult = toString - ------------------------------------- - --- | Set of LaTeX reserved characters, and their safe writings as 'Result's. -resCharsStr :: [(Char,Result)] -resCharsStr = [ ('#',"\\#") - , ('$',"\\$") - , ('%',"\\%") - , ('^',"\\^{}") - , ('&',"\\&") - , ('_',"\\_") - , ('{',"\\{") - , ('}',"\\}") - , ('~',"\\~{}") - , ('\\',"\\textbackslash{}") ] - -
license view
@@ -1,4 +1,4 @@-Copyright (c)2010, Daniel Díaz +Copyright (c)2011, Daniel Díaz All rights reserved.