-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | The Haskell LaTeX library. -- -- This library implements the LaTeX syntax and provides some useful -- abstractions. -- -- Some of the things you can do with HaTeX are: -- -- -- -- Browse the examples directory in the source distribution to -- see some simple examples. It might help you to get started. The HaTeX -- User's Guide is available at -- https://github.com/Daniel-Diaz/hatex-guide/blob/master/README.md. -- -- If you prefer to write in LaTeX and all you want is to program -- some parts of the document, or if you already have the LaTeX document -- written and you just want to add some automatically generated LaTeX -- code somewhere, check haskintex: -- http://daniel-diaz.github.io/projects/haskintex. It allows you -- to embed Haskell in LaTeX. It also makes you easy to use HaTeX within -- a LaTeX document. @package HaTeX @version 3.22.3.2 -- | 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 -- | Measure units defined in LaTeX. Use CustomMeasure to use -- commands like textwidth. For instance: -- --
--   rule Nothing (CustomMeasure linewidth) (Pt 2)
--   
-- -- This will create a black box (see rule) as wide as the text -- and two points tall. data Measure -- | A point is 1/72.27 inch, that means about 0.0138 inch or 0.3515 mm. Pt :: Double -> Measure -- | Millimeter. Mm :: Double -> Measure -- | Centimeter. Cm :: Double -> Measure -- | Inch. In :: Double -> Measure -- | The height of an "x" in the current font. Ex :: Double -> Measure -- | The width of an "M" in the current font. Em :: Double -> Measure -- | You can introduce a LaTeX expression as a measure. CustomMeasure :: LaTeX -> Measure -- | Different types of syntax for mathematical expressions. data MathType Parentheses :: MathType Square :: MathType Dollar :: MathType DoubleDollar :: MathType -- | Type of LaTeX blocks. data LaTeX -- | Raw text. TeXRaw :: Text -> LaTeX -- | Constructor for commands. First argument is the name of the command. -- Second, its arguments. TeXComm :: String -> [TeXArg] -> LaTeX -- | Constructor for commands with no arguments. When rendering, no space -- or {} will be added at the end. TeXCommS :: String -> LaTeX -- | Constructor for environments. First argument is the name of the -- environment. Second, its arguments. Third, its content. TeXEnv :: String -> [TeXArg] -> LaTeX -> LaTeX -- | Mathematical expressions. TeXMath :: MathType -> LaTeX -> LaTeX -- | Line break command. TeXLineBreak :: Maybe Measure -> Bool -> LaTeX -- | A expression between braces. TeXBraces :: LaTeX -> LaTeX -- | Comments. TeXComment :: Text -> LaTeX -- | Sequencing of LaTeX expressions. Use <> -- preferably. TeXSeq :: LaTeX -> LaTeX -> LaTeX -- | An empty block. Neutral element of <>. TeXEmpty :: LaTeX -- | An argument for a LaTeX command or environment. data TeXArg -- | Fixed argument. FixArg :: LaTeX -> TeXArg -- | Optional argument. OptArg :: LaTeX -> TeXArg -- | Multiple optional argument. MOptArg :: [LaTeX] -> TeXArg -- | An argument enclosed between < and >. SymArg :: LaTeX -> TeXArg -- | Version of SymArg with multiple options. MSymArg :: [LaTeX] -> TeXArg -- | An argument enclosed between ( and ). ParArg :: LaTeX -> TeXArg -- | Version of ParArg with multiple options. MParArg :: [LaTeX] -> TeXArg -- | An associative operation. -- --
--   >>> [1,2,3] <> [4,5,6]
--   [1,2,3,4,5,6]
--   
(<>) :: Semigroup a => a -> a -> a infixr 6 <> -- | Calling between c l1 l2 puts c between -- l1 and l2 and appends them. -- --
--   between c l1 l2 = l1 <> c <> l2
--   
between :: Monoid m => m -> m -> m -> m -- | Escape LaTeX reserved characters in a String. protectString :: String -> String -- | Escape LaTeX reserved characters in a Text. protectText :: Text -> Text -- | Traverse a LaTeX syntax tree and returns the commands (see -- TeXComm and TeXCommS) that matches the condition and -- their arguments in each call. matchCommand :: (String -> Bool) -> LaTeX -> [(String, [TeXArg])] -- | Look into a LaTeX syntax tree to find any call to the command -- with the given name. It returns a list of arguments with which this -- command is called. -- --
--   lookForCommand = (fmap snd .) . matchCommand . (==)
--   
-- -- If the returned list is empty, the command was not found. However, if -- the list contains empty lists, those are callings to the command with -- no arguments. -- -- For example -- --
--   lookForCommand "author" l
--   
-- -- would look for the argument passed to the \author command in -- l. lookForCommand :: String -> LaTeX -> [[TeXArg]] -- | Traverse a LaTeX syntax tree and returns the environments (see -- TeXEnv) that matches the condition, their arguments and their -- content in each call. matchEnv :: (String -> Bool) -> LaTeX -> [(String, [TeXArg], LaTeX)] -- | Similar to lookForCommand, but applied to environments. It -- returns a list with arguments passed and content of the environment in -- each call. -- --
--   lookForEnv = (fmap (\(_,as,l) -> (as,l)) .) . matchEnv . (==)
--   
lookForEnv :: String -> LaTeX -> [([TeXArg], LaTeX)] -- | The function texmap looks for subexpressions that match a given -- condition and applies a function to them. -- --
--   texmap c f = runIdentity . texmapM c (pure . f)
--   
texmap :: (LaTeX -> Bool) -> (LaTeX -> LaTeX) -> LaTeX -> LaTeX -- | Version of texmap where the function returns values in a -- Monad. texmapM :: (Applicative m, Monad m) => (LaTeX -> Bool) -> (LaTeX -> m LaTeX) -> LaTeX -> m LaTeX -- | Extract the content of the document environment, if present. getBody :: LaTeX -> Maybe LaTeX -- | Extract the preamble of a LaTeX document (everything before the -- document environment). It could be empty. getPreamble :: LaTeX -> LaTeX instance GHC.Show.Show Text.LaTeX.Base.Syntax.MathType instance GHC.Generics.Generic Text.LaTeX.Base.Syntax.MathType instance GHC.Classes.Eq Text.LaTeX.Base.Syntax.MathType instance Data.Data.Data Text.LaTeX.Base.Syntax.MathType instance GHC.Show.Show Text.LaTeX.Base.Syntax.Measure instance GHC.Generics.Generic Text.LaTeX.Base.Syntax.Measure instance GHC.Classes.Eq Text.LaTeX.Base.Syntax.Measure instance Data.Data.Data Text.LaTeX.Base.Syntax.Measure instance GHC.Show.Show Text.LaTeX.Base.Syntax.LaTeX instance GHC.Generics.Generic Text.LaTeX.Base.Syntax.LaTeX instance GHC.Classes.Eq Text.LaTeX.Base.Syntax.LaTeX instance Data.Data.Data Text.LaTeX.Base.Syntax.LaTeX instance GHC.Show.Show Text.LaTeX.Base.Syntax.TeXArg instance GHC.Generics.Generic Text.LaTeX.Base.Syntax.TeXArg instance GHC.Classes.Eq Text.LaTeX.Base.Syntax.TeXArg instance Data.Data.Data Text.LaTeX.Base.Syntax.TeXArg instance GHC.Base.Monoid Text.LaTeX.Base.Syntax.LaTeX instance GHC.Base.Semigroup Text.LaTeX.Base.Syntax.LaTeX instance Data.String.IsString Text.LaTeX.Base.Syntax.LaTeX instance Test.QuickCheck.Arbitrary.Arbitrary Text.LaTeX.Base.Syntax.Measure instance Test.QuickCheck.Arbitrary.Arbitrary Text.LaTeX.Base.Syntax.LaTeX instance Test.QuickCheck.Arbitrary.Arbitrary Text.LaTeX.Base.Syntax.TeXArg instance Data.Hashable.Class.Hashable Text.LaTeX.Base.Syntax.Measure instance Data.Hashable.Class.Hashable Text.LaTeX.Base.Syntax.TeXArg instance Data.Hashable.Class.Hashable Text.LaTeX.Base.Syntax.LaTeX instance Data.Hashable.Class.Hashable Text.LaTeX.Base.Syntax.MathType -- | Definition of the LaTeXC class, used to combine the classic -- applicative and the latter monadic interfaces of HaTeX 3. The -- user can define new instances as well, adding flexibility to the way -- HaTeX is used. module Text.LaTeX.Base.Class -- | This is the class of LaTeX code generators. It has -- Monoid and IsString as superclasses. class (Monoid l, IsString l) => LaTeXC l -- | This method must take a function that combines a list of LaTeX -- values into a new one, and creates a function that combines -- l-typed values. The combining function can be seen as a -- function with 0 or more LaTeX arguments with a LaTeX -- value as output. liftListL :: LaTeXC l => ([LaTeX] -> LaTeX) -> [l] -> l -- | The class of monoids (types with an associative binary operation that -- has an identity). Instances should satisfy the following: -- -- -- -- The method names refer to the monoid of lists under concatenation, but -- there are many other instances. -- -- Some types can be viewed as a monoid in more than one way, e.g. both -- addition and multiplication on numbers. In such cases we often define -- newtypes and make those instances of Monoid, e.g. -- Sum and Product. -- -- NOTE: Semigroup is a superclass of Monoid since -- base-4.11.0.0. class Semigroup a => Monoid a -- | Identity of mappend -- --
--   >>> "Hello world" <> mempty
--   "Hello world"
--   
mempty :: Monoid a => a -- | An associative operation -- -- NOTE: This method is redundant and has the default -- implementation mappend = (<>) since -- base-4.11.0.0. Should it be implemented manually, since -- mappend is a synonym for (<>), it is expected that -- the two functions are defined the same way. In a future GHC release -- mappend will be removed from Monoid. mappend :: Monoid a => a -> a -> a -- | Fold a list using the monoid. -- -- For most types, the default definition for mconcat will be -- used, but the function is included in the class definition so that an -- optimized version can be provided for specific types. -- --
--   >>> mconcat ["Hello", " ", "Haskell", "!"]
--   "Hello Haskell!"
--   
mconcat :: Monoid a => [a] -> a -- | Map a LaTeX value to its equivalent in any LaTeXC -- instance. fromLaTeX :: LaTeXC l => LaTeX -> l -- | Lift a inner function of LaTeX values into any LaTeXC -- instance. liftL :: LaTeXC l => (LaTeX -> LaTeX) -> l -> l -- | Variant of liftL with a two arguments function. liftL2 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -- | Variant of liftL with a three arguments function. liftL3 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -> l -- | Variant of liftL with a four arguments function. liftL4 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -> l -> l -- | Variant of liftL with a five arguments function. liftL5 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -> l -> l -> l -- | Variant of liftL with a six arguments function. liftL6 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -> l -> l -> l -> l -- | Variant of liftL with a seven arguments function. liftL7 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -> l -> l -> l -> l -> l -- | Variant of liftL with an eight arguments function. liftL8 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -> l -> l -> l -> l -> l -> l -- | Variant of liftL with a nine arguments function. liftL9 :: LaTeXC l => (LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX) -> l -> l -> l -> l -> l -> l -> l -> l -> l -> l -- | A simple (without arguments) and handy command generator using the -- name of the command. -- --
--   comm0 str = fromLaTeX $ TeXComm str []
--   
comm0 :: LaTeXC l => String -> l -- | A one parameter command generator using the name of the command. The -- parameter will be rendered as a fixed argument. -- --
--   comm1 str = liftL $ \l -> TeXComm str [FixArg l]
--   
comm1 :: LaTeXC l => String -> l -> l -- | A two parameter command generator using the name of the command. The -- parameters will be rendered as fixed arguments. -- --
--   comm2 str = liftL2 $ \l1 l2 -> TeXComm str [FixArg l1, FixArg l2]
--   
comm2 :: LaTeXC l => String -> l -> l -> l -- | A three parameter command generator using the name of the command. The -- parameters will be rendered as fixed arguments. -- --
--   comm3 str = liftL3 $ \l1 l2 l3 -> TeXComm str [FixArg l1, FixArg l2, FixArg l3]
--   
comm3 :: LaTeXC l => String -> l -> l -> l -> l -- | A four parameter command generator using the name of the command. The -- parameters will be rendered as fixed arguments. -- --
--   comm4 str = liftL4 $ \l1 l2 l3 l4 -> TeXComm str [FixArg l1, FixArg l2, FixArg l3, FixArg l4]
--   
comm4 :: LaTeXC l => String -> l -> l -> l -> l -> l -- | A five parameter command generator using the name of the command. The -- parameters will be rendered as fixed arguments. -- --
--   comm5 str = liftL5 $ \l1 l2 l3 l4 l5 -> TeXComm str [FixArg l1, FixArg l2, FixArg l3, FixArg l4, FixArg l5]
--   
comm5 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -- | A six parameter command generator using the name of the command. The -- parameters will be rendered as fixed arguments. -- --
--   comm6 str = liftL6 $ \l1 l2 l3 l4 l5 l6 -> TeXComm str [FixArg l1, FixArg l2, FixArg l3, FixArg l4, FixArg l5, FixArg l6]
--   
comm6 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -- | A seven parameter command generator using the name of the command. The -- parameters will be rendered as fixed arguments. -- --
--   comm7 str = liftL7 $ \l1 l2 l3 l4 l5 l6 l7 -> TeXComm str [FixArg l1, FixArg l2, FixArg l3, FixArg l4, FixArg l5, FixArg l6, FixArg l7]
--   
comm7 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -> l -- | An eight parameter command generator using the name of the command. -- The parameters will be rendered as fixed arguments. -- --
--   comm8 str = liftL8 $ \l1 l2 l3 l4 l5 l6 l7 l8 -> TeXComm str [FixArg l1, FixArg l2, FixArg l3, FixArg l4, FixArg l5, FixArg l6, FixArg l7, FixArgs l8]
--   
comm8 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -> l -> l -- | A nine parameter command generator using the name of the command. The -- parameters will be rendered as fixed arguments. -- --
--   comm9 str = liftL9 $ \l1 l2 l3 l4 l5 l6 l7 l8 l9 -> TeXComm str [FixArg l1, FixArg l2, FixArg l3, FixArg l4, FixArg l5, FixArg l6, FixArg l7, FixArgs l8, l9]
--   
comm9 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -> l -> l -> l -- | Like comm0 but using TeXCommS, i.e. no "{}" will be -- inserted to protect the command's end. -- --
--   commS = fromLaTeX . TeXCommS
--   
commS :: LaTeXC l => String -> l -- | Call a LaTeX command where all the arguments in the list are fixed -- arguments. fixComm :: LaTeXC l => String -> [l] -> l -- | Call a LaTeX command with the first n arguments as optional -- ones, followed by fixed arguments. Most LaTeX commands are structured -- with first a sequence of optional arguments, followed by a sequence of -- fixed arguments. optFixComm :: LaTeXC l => String -> Int -> [l] -> l -- | Define an environment, without any parameters that are passed to the -- environment. env0 :: LaTeXC l => String -> l -> l -- | Define an environment, with one fixed parameter that is passed to the -- environment. env1 :: LaTeXC l => String -> l -> l -> l -- | Define an environment, with two fixed parameters that is passed to the -- environment. env2 :: LaTeXC l => String -> l -> l -> l -> l -- | Define an environment, with three fixed parameters that is passed to -- the environment. env3 :: LaTeXC l => String -> l -> l -> l -> l -> l -- | Define an environment, with four fixed parameters that is passed to -- the environment. env4 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -- | Define an environment, with five fixed parameters that is passed to -- the environment. env5 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -- | Define an environment, with six fixed parameters that is passed to the -- environment. env6 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -> l -- | Define an environment, with seven fixed parameters that is passed to -- the environment. env7 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -> l -> l -- | Define an environment, with eight fixed parameters that is passed to -- the environment. env8 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -> l -> l -> l -- | Define an environment, with nine fixed parameters that is passed to -- the environment. env9 :: LaTeXC l => String -> l -> l -> l -> l -> l -> l -> l -> l -> l -> l -> l -- | Create a LaTeX environment where all the arguments in the list are -- fixed arguments. fixEnv :: LaTeXC l => String -> [l] -> l -> l -- | A lifted version of the TeXBraces constructor. -- --
--   braces = liftL TeXBraces
--   
braces :: LaTeXC l => l -> l squareBraces :: LaTeXC l => l -> l -- | Insert a raw piece of Text. This functions doesn't escape -- LaTeX reserved characters, it insert the text just as it is -- received. -- -- Warning: This function is unsafe, in the sense that it -- does not check that the input text is a valid LaTeX block. Make -- sure any braces, commands or environments are properly closed. raw :: LaTeXC l => Text -> l instance Text.LaTeX.Base.Class.LaTeXC Text.LaTeX.Base.Syntax.LaTeX -- | The final purpose of this module is to render a Text value from a -- LaTeX value. The interface is abstracted via a typeclass so you -- can cast to Text other types as well. Also, some other handy -- Text-related functions are defined. module Text.LaTeX.Base.Render -- | A space efficient, packed, unboxed Unicode text type. data Text -- | Class of values that can be transformed to Text. You mainly -- will use this to obtain the Text output of a LaTeX -- value. If you are going to write the result in a file, consider to use -- renderFile. -- -- Consider also to use rendertex to get Renderable values -- into LaTeX blocks. -- -- If you want to make a type instance of Render and you already -- have a Show instance, you can use the default instance. -- --
--   render = fromString . show
--   
class Show a => Render a render :: Render a => a -> Text renderBuilder :: Render a => a -> Builder -- | Render every element of a list and append results. renderAppend :: Render a => [a] -> Text -- | Render every element of a list and append results, separated by the -- given Char. renderChars :: Render a => Char -> [a] -> Text -- | Render every element of a list and append results, separated by -- commas. renderCommas :: Render a => [a] -> Text -- | 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 () -- | 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 reserved -- characters. Use protectText to escape them. rendertex :: (Render a, LaTeXC l) => a -> l -- | 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 -- | Show a signed floating number using standard decimal notation using 5 -- decimals. showFloat :: RealFloat a => a -> String instance Text.LaTeX.Base.Render.Render Data.Text.Internal.Text instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Syntax.Measure instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Syntax.LaTeX instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Syntax.TeXArg instance Text.LaTeX.Base.Render.Render GHC.Types.Int instance Text.LaTeX.Base.Render.Render GHC.Num.Integer.Integer instance Text.LaTeX.Base.Render.Render GHC.Types.Float instance Text.LaTeX.Base.Render.Render GHC.Types.Double instance Text.LaTeX.Base.Render.Render GHC.Word.Word8 instance Text.LaTeX.Base.Render.Render GHC.Types.Bool instance Text.LaTeX.Base.Render.Render a => Text.LaTeX.Base.Render.Render [a] -- | LaTeX values pretty printer. -- -- Still experimental. Give it a try and send us your feedback! :) module Text.LaTeX.Base.Pretty -- | Pretty print a LaTeX value. It produces a more human-friendly -- output than render. -- -- This function should be used only for debugging purposes since it may -- change the semantics of the input in order to create a prettier -- output. In other words, running a LaTeX compiler in the output file of -- renderFile fp l may produce a different document than running -- it in the output of writeFile fp (prettyLaTeX l). You should -- use renderFile unless you really need to read the LaTeX file. prettyLaTeX :: LaTeX -> String -- | This function transforms a value of type LaTeX to a Doc. -- You can then choose how to print this Doc value using the -- function from the Text.PrettyPrint.Free module. docLaTeX :: LaTeX -> Doc () -- | The LaTeX parser. -- -- Use parseLaTeX to parse a Text containing LaTeX -- code. If the Text is in a file, you may want to use -- parseLaTeXFile. Use this module together with -- Text.LaTeX.Base.Syntax to perform analysis and transformations -- of LaTeX code. The parser (parseLaTeX) is related with -- the renderer (render) by the following property: -- -- If t :: Text is a syntactically valid LaTeX block, -- then: -- --
--   fmap render (parseLaTeX t) == Right t
--   
-- -- This property says two things: -- -- -- -- In other words, parseLaTeX is a partial function defined over -- the set of valid LaTeX files, and render is its left -- inverse. module Text.LaTeX.Base.Parser -- | Parse a Text sequence as a LaTeX block. If it fails, it -- returns an error string. parseLaTeX :: Text -> Either ParseError LaTeX -- | Read a file and parse it as LaTeX. parseLaTeXFile :: FilePath -> IO (Either ParseError LaTeX) -- | The abstract data type ParseError represents parse errors. It -- provides the source position (SourcePos) of the error and a -- list of error messages (Message). A ParseError can be -- returned by the function parse. ParseError is an -- instance of the Show and Eq classes. data ParseError -- | Extracts the source position from the parse error errorPos :: ParseError -> SourcePos -- | Extracts the list of error messages from the parse error errorMessages :: ParseError -> [Message] -- | This abstract data type represents parse error messages. There are -- four kinds of messages: -- --
--   data Message = SysUnExpect String
--                | UnExpect String
--                | Expect String
--                | Message String
--   
-- -- The fine distinction between different kinds of parse errors allows -- the system to generate quite good error messages for the user. It also -- allows error messages that are formatted in different languages. Each -- kind of message is generated by different combinators: -- -- data Message SysUnExpect :: !String -> Message UnExpect :: !String -> Message Expect :: !String -> Message Message :: !String -> Message -- | Extract the message string from an error message messageString :: Message -> String -- | The abstract data type SourcePos represents source positions. -- It contains the name of the source (i.e. file name), a line number and -- a column number. SourcePos is an instance of the Show, -- Eq and Ord class. data SourcePos -- | Extracts the line number from a source position. sourceLine :: SourcePos -> Line -- | Extracts the column number from a source position. sourceColumn :: SourcePos -> Column -- | Extracts the name of the source from a source position. sourceName :: SourcePos -> SourceName -- | Configuration for the LaTeX parser. newtype ParserConf ParserConf :: [String] -> ParserConf -- | This is the list of names of the environments such that their content -- will be parsed verbatim. [verbatimEnvironments] :: ParserConf -> [String] -- | Default parser configuration, used by parseLaTeX and -- parseLaTeXFile. -- -- Defaults: -- --
--   verbatimEnvironments = ["verbatim"]
--   
defaultParserConf :: ParserConf parseLaTeXWith :: ParserConf -> Text -> Either ParseError LaTeX parseLaTeXFileWith :: ParserConf -> FilePath -> IO (Either ParseError LaTeX) -- | Parser with Text input and ParserConf environment. type Parser = Parsec Text ParserConf -- | The LaTeX parser. latexParser :: Parser LaTeX -- | Parser of a single LaTeX constructor, no appending blocks. latexBlockParser :: Parser LaTeX -- | Texy class, as proposed in -- http://deltadiaz.blogspot.com.es/2013/04/hatex-36-proposal-texy-class.html. module Text.LaTeX.Base.Texy -- | Class of types that can be pretty-printed as LaTeX values. class Texy t texy :: (Texy t, LaTeXC l) => t -> l instance Text.LaTeX.Base.Texy.Texy Text.LaTeX.Base.Syntax.LaTeX instance Text.LaTeX.Base.Texy.Texy Data.Text.Internal.Text instance Text.LaTeX.Base.Texy.Texy GHC.Types.Int instance Text.LaTeX.Base.Texy.Texy GHC.Num.Integer.Integer instance Text.LaTeX.Base.Texy.Texy GHC.Types.Float instance Text.LaTeX.Base.Texy.Texy GHC.Types.Double instance Text.LaTeX.Base.Texy.Texy GHC.Types.Char instance Data.Fixed.HasResolution a => Text.LaTeX.Base.Texy.Texy (Data.Fixed.Fixed a) instance Text.LaTeX.Base.Texy.Texy GHC.Types.Bool instance Text.LaTeX.Base.Texy.Texy Text.LaTeX.Base.Syntax.Measure -- | Some types shared along the library. module Text.LaTeX.Base.Types -- | Class names are represented by a String. type ClassName = String -- | Package names are represented by a String. type PackageName = String -- | Page styles are represented by a String. type PageStyle = String -- | Type of labels. data Label -- | Create a label from its name. createLabel :: String -> Label -- | Get the name of a label. labelName :: Label -> String -- | Vertical position. Here and ForcePos are used with -- table environments. data Pos Bottom :: Pos Center :: Pos Top :: Pos Here :: Pos ForcePos :: Pos -- | Horizontal position. data HPos HLeft :: HPos HCenter :: HPos HRight :: HPos -- | Type of table specifications. data TableSpec -- | Left-justified column. LeftColumn :: TableSpec -- | Centered column. CenterColumn :: TableSpec -- | Right-justified column. RightColumn :: TableSpec -- | Paragraph column with text vertically aligned at the top. ParColumnTop :: LaTeX -> TableSpec -- | Paragraph column with text vertically aligned at the middle. Requires -- array package. ParColumnMid :: LaTeX -> TableSpec -- | Paragraph column with text vertically aligned at the bottom. Requires -- array package. ParColumnBot :: LaTeX -> TableSpec -- | User defined column. Requires array package. NameColumn :: String -> TableSpec -- | Can be used before a LeftColumn, CenterColumn, -- RightColumn, ParColumnTop, ParColumnMid or a -- ParColumnBot specification. Inserts the code directly in front -- of the entry of the column. Requires array package. BeforeColumn :: LaTeX -> TableSpec -- | Can be used after a LeftColumn, CenterColumn, -- RightColumn, ParColumnTop, ParColumnMid or a -- ParColumnBot specification. Inserts the code directly in front -- of the entry of the column. Requires array package. AfterColumn :: LaTeX -> TableSpec -- | Vertical line between two columns. VerticalLine :: TableSpec -- | Double vertical line between two columns. DVerticalLine :: TableSpec -- | Column separator. Requires array package. Separator :: LaTeX -> TableSpec -- | Measure units defined in LaTeX. Use CustomMeasure to use -- commands like textwidth. For instance: -- --
--   rule Nothing (CustomMeasure linewidth) (Pt 2)
--   
-- -- This will create a black box (see rule) as wide as the text -- and two points tall. data Measure -- | A point is 1/72.27 inch, that means about 0.0138 inch or 0.3515 mm. Pt :: Double -> Measure -- | Millimeter. Mm :: Double -> Measure -- | Centimeter. Cm :: Double -> Measure -- | Inch. In :: Double -> Measure -- | The height of an "x" in the current font. Ex :: Double -> Measure -- | The width of an "M" in the current font. Em :: Double -> Measure -- | You can introduce a LaTeX expression as a measure. CustomMeasure :: LaTeX -> Measure instance GHC.Show.Show Text.LaTeX.Base.Types.Label instance GHC.Classes.Eq Text.LaTeX.Base.Types.Label instance GHC.Show.Show Text.LaTeX.Base.Types.Pos instance GHC.Show.Show Text.LaTeX.Base.Types.HPos instance GHC.Show.Show Text.LaTeX.Base.Types.TableSpec instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Types.TableSpec instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Types.HPos instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Types.Pos instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Types.Label instance Data.String.IsString Text.LaTeX.Base.Types.Label -- | This module provides functionality for check a LaTeX value for -- possibly undesired things (like the call to an undefined label), -- returning Warnings. These are called Warnings because -- they never terminate the program execution. module Text.LaTeX.Base.Warnings -- | List of possible warnings. data Warning -- | There is an unused label. Argument is its name. UnusedLabel :: Text -> Warning -- | There is a reference to an undefined label. Arguments is the name. UndefinedLabel :: Text -> Warning -- | No class selected with documentclass. NoClassSelected :: Warning -- | No document inserted. NoDocumentInserted :: Warning -- | Custom warning for custom checkings. Use it as you want. CustomWarning :: Text -> Warning -- | A TeXCheck is a function that checks possible warnings from a -- LaTeX value. Use the Monoid instance to combine check -- functions. data TeXCheck -- | Apply a checking. check :: TeXCheck -> LaTeX -> [Warning] -- | Build a TeXCheck from a function. checkFromFunction :: (LaTeX -> [Warning]) -> TeXCheck -- | Checking for unused labels or references tu undefined labels. checkLabels :: TeXCheck -- | Check if a document class is specified for the document (using -- documentclass). checkClass :: TeXCheck -- | Check if the document environment is called in a -- LaTeX. checkDoc :: TeXCheck -- | Check with checkLabels, checkClass and checkDoc. checkAll :: TeXCheck instance GHC.Show.Show Text.LaTeX.Base.Warnings.Warning instance GHC.Classes.Eq Text.LaTeX.Base.Warnings.Warning instance GHC.Base.Semigroup Text.LaTeX.Base.Warnings.TeXCheck instance GHC.Base.Monoid Text.LaTeX.Base.Warnings.TeXCheck -- | The writer monad applied to LaTeX values. Useful to compose -- LaTeX values using the do notation: -- --
--   anExample :: Monad m => LaTeXT m ()
--   anExample = do
--     documentclass [] article
--     author "Daniel Monad"
--     title "LaTeX and do notation"
--     document $ do
--       maketitle
--       section "Some words"
--       "Using " ; texttt "do" ; " notation "
--       "you avoid many ocurrences of the "
--       texttt "(<>)" ; " operator and a lot of "
--       "parentheses. With the cost of a monad."
--   
-- -- Since LaTeXT is a monad transformer, you can do also: -- --
--   anotherExample :: LaTeXT IO ()
--   anotherExample = lift (readFileTex "foo") >>= verbatim
--   
-- -- This way, it is easy (without carrying arguments) to include IO -- outputs in the LaTeX document, like files, times or random objects. -- -- Another approach could be to have custom counters, label management or -- any other user-defined feature. -- -- Of course, you can always use the simpler interface provided by the -- plain LaTeX type. module Text.LaTeX.Base.Writer -- | WriterT monad transformer applied to LaTeX values. data LaTeXT m a -- | Running a LaTeXT computation returns the final LaTeX -- value. runLaTeXT :: LaTeXT m a -> m (a, LaTeX) -- | This is the usual way to run the LaTeXT monad and obtain a -- LaTeX value. -- --
--   execLaTeXT = liftM snd . runLaTeXT
--   
-- -- If anExample is defined as above (at the top of this module -- documentation), use the following to get the LaTeX value generated -- out. -- --
--   myLaTeX :: Monad m => m LaTeX
--   myLaTeX = execLaTeXT anExample
--   
execLaTeXT :: Monad m => LaTeXT m a -> m LaTeX -- | Type synonym for empty LaTeXT computations. type LaTeXT_ m = LaTeXT m () -- | The LaTeXT monad transformed applied to Identity. type LaTeXM = LaTeXT Identity -- | A particular case of runLaTeXT. -- --
--   runLaTeXM = runIdentity . runLaTeXT
--   
runLaTeXM :: LaTeXM a -> (a, LaTeX) -- | A particular case of execLaTeXT. -- --
--   execLaTeXM = runIdentity . execLaTeXT
--   
execLaTeXM :: LaTeXM a -> LaTeX -- | Version of execLaTeXT with possible warning messages. This -- function applies checkAll to the LaTeX output. execLaTeXTWarn :: Monad m => LaTeXT m a -> m (LaTeX, [Warning]) -- | This function run a LaTeXT computation, lifting the result -- again in the monad. extractLaTeX :: Monad m => LaTeXT m a -> LaTeXT m (a, LaTeX) -- | Executes a LaTeXT computation, embedding it again in the -- LaTeXT monad. -- --
--   extractLaTeX_ = liftM snd . extractLaTeX
--   
-- -- This function was heavily used in the past by HaTeX-meta to generate -- those .Monad modules. The current purpose is to implement the -- LaTeXC instance of LaTeXT, which is closely related. extractLaTeX_ :: Monad m => LaTeXT m a -> LaTeXT m LaTeX -- | With textell you can append LaTeX values to the state of -- the LaTeXT monad. textell :: Monad m => LaTeX -> LaTeXT m () -- | Just like rendertex, but with LaTeXT output. -- --
--   rendertexM = textell . rendertex
--   
rendertexM :: (Render a, Monad m) => a -> LaTeXT m () -- | Lift a function over LaTeX values to a function acting over the -- state of a LaTeXT computation. liftFun :: Monad m => (LaTeX -> LaTeX) -> LaTeXT m a -> LaTeXT m a -- | Lift an operator over LaTeX values to an operator acting over -- the state of two LaTeXT computations. -- -- Note: The returned value is the one returned by the second -- argument of the lifted operator. liftOp :: Monad m => (LaTeX -> LaTeX -> LaTeX) -> LaTeXT m a -> LaTeXT m b -> LaTeXT m b -- | A helper function for building monad transformers, e.g. -- --
--   instance MonadReader r m => MonadReader r (LaTeXT m) where
--     ask = lift ask
--     local = mapLaTeXT . local
--   
-- -- This declaration could be included here, but it would add a dependency -- on mtl. mapLaTeXT :: (m (a, LaTeX) -> m (a, LaTeX)) -> LaTeXT m a -> LaTeXT m a -- | Lift a computation from the argument monad to the constructed monad. lift :: (MonadTrans t, Monad m) => m a -> t m a -- | Lift a computation from the IO monad. This allows us to run IO -- computations in any monadic stack, so long as it supports these kinds -- of operations (i.e. IO is the base monad for the stack). -- --

Example

-- --
--   import Control.Monad.Trans.State -- from the "transformers" library
--   
--   printState :: Show s => StateT s IO ()
--   printState = do
--     state <- get
--     liftIO $ print state
--   
-- -- Had we omitted liftIO, we would have ended up with -- this error: -- --
--   • Couldn't match type ‘IO’ with ‘StateT s IO’
--    Expected type: StateT s IO ()
--      Actual type: IO ()
--   
-- -- The important part here is the mismatch between StateT s IO -- () and IO (). -- -- Luckily, we know of a function that takes an IO a and -- returns an (m a): liftIO, enabling us to run -- the program and see the expected results: -- --
--   > evalStateT printState "hello"
--   "hello"
--   
--   > evalStateT printState 3
--   3
--   
liftIO :: MonadIO m => IO a -> m a instance GHC.Base.Functor f => GHC.Base.Functor (Text.LaTeX.Base.Writer.LaTeXT f) instance GHC.Base.Applicative f => GHC.Base.Applicative (Text.LaTeX.Base.Writer.LaTeXT f) instance Control.Monad.Trans.Class.MonadTrans Text.LaTeX.Base.Writer.LaTeXT instance GHC.Base.Monad m => GHC.Base.Monad (Text.LaTeX.Base.Writer.LaTeXT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.LaTeX.Base.Writer.LaTeXT m) instance (GHC.Base.Monad m, a GHC.Types.~ ()) => Text.LaTeX.Base.Class.LaTeXC (Text.LaTeX.Base.Writer.LaTeXT m a) instance (GHC.Base.Monad m, a GHC.Types.~ ()) => Data.String.IsString (Text.LaTeX.Base.Writer.LaTeXT m a) instance (GHC.Base.Monad m, GHC.Base.Monoid a) => GHC.Base.Monoid (Text.LaTeX.Base.Writer.LaTeXT m a) instance (GHC.Base.Applicative m, GHC.Base.Semigroup a) => GHC.Base.Semigroup (Text.LaTeX.Base.Writer.LaTeXT m a) -- | This module contains the maths-specific part of -- Text.LaTeX.Base.Commands, i.e. of the commands that are -- available in LaTeX out of the box without any imports. -- -- Note however that most maths-related documents use the amsmath -- package, which not only adds some more environments but also -- improves on rendering details such as symbol spacing. So even if you -- only need the vanilla-LaTeX commands that this module provides, -- consider importing Text.LaTeX.Packages.AMSMath instead; it -- re-exports the entire Text.LaTeX.Base.Math module. module Text.LaTeX.Base.Math -- | Inline mathematical expressions. math :: LaTeXC l => l -> l -- | Displayed mathematical expressions, i.e. in a seperate line / block. mathDisplay :: LaTeXC l => l -> l -- | A numbered mathematical equation (or otherwise math expression). equation :: LaTeXC l => l -> l -- | The unnumbered variant of equation. equation_ :: LaTeXC l => l -> l -- | Prevent an equation from being numbered, where the environment would -- by default do that. nonumber :: LaTeXC l => l -- | Surround a LaTeX math expression by parentheses whose height -- automatically matches the expression's. Translates to -- \left(...\right). autoParens :: LaTeXC l => l -> l -- | Like autoParens, but with square brackets. Equivalent to -- autoBrackets"[""]". autoSquareBrackets :: LaTeXC l => l -> l -- | Like autoParens, but with curly brackets. autoBraces :: LaTeXC l => l -> l -- | Like autoParens, but with angle brackets <math> ... -- <math>. Equivalent to autoBrackets langle -- rangle. autoAngleBrackets :: LaTeXC l => l -> l -- | Use custom LaTeX expressions as auto-scaled delimiters to surround -- math. Suitable delimiters include <math> (absolute value), -- <math> (norm, dblPipe), <math> (round-off Gauss -- brackets, lfloor / rfloor) etc.. autoBrackets :: LaTeXC l => LaTeX -> LaTeX -> l -> l -- | Left angle bracket, <math>. langle :: LaTeXC l => l -- | Right angle bracket, <math>. rangle :: LaTeXC l => l -- | Left floor, <math>. lfloor :: LaTeXC l => l -- | Right floor, <math>. rfloor :: LaTeXC l => l -- | Left ceiling, <math>. lceil :: LaTeXC l => l -- | Right ceiling, <math>. rceil :: LaTeXC l => l -- | Double vertical line, used as delimiter for norms <math>. dblPipe :: LaTeXC l => l -- | Superscript. (^:) :: LaTeXC l => l -> l -> l -- | Subscript. (!:) :: LaTeXC l => l -> l -> l -- | Sub- and superscript, both stacked. (!^) :: LaTeXC l => l -> (l, l) -> l -- | Sine function symbol. tsin :: LaTeXC l => l -- | Arcsine function symbol. arcsin :: LaTeXC l => l -- | Cosine function symbol. tcos :: LaTeXC l => l -- | Arccosine function symbol. arccos :: LaTeXC l => l -- | Tangent function symbol. ttan :: LaTeXC l => l -- | Arctangent function symbol. arctan :: LaTeXC l => l -- | Cotangent function symbol. cot :: LaTeXC l => l -- | Arccotangent function symbol. arccot :: LaTeXC l => l -- | Hyperbolic sine function symbol. tsinh :: LaTeXC l => l -- | Hyperbolic cosine function symbol. tcosh :: LaTeXC l => l -- | Hyperbolic tangent function symbol. ttanh :: LaTeXC l => l -- | Hyperbolic cotangent function symbol. coth :: LaTeXC l => l -- | Secant function symbol. sec :: LaTeXC l => l -- | Cosecant function symbol. csc :: LaTeXC l => l -- | Exponential function symbol. texp :: LaTeXC l => l -- | Logarithm function symbol. tlog :: LaTeXC l => l -- | Natural logarithm symbol. ln :: LaTeXC l => l -- | Root notation. Use tsqrt (Just n) x for the nth root -- of x. When Nothing is supplied, the function will -- output a square root. tsqrt :: LaTeXC l => Maybe l -> l -> l -- | Defines a new function symbol. Note that function symbols defined in -- this way will not be automatically translated by babel. operatorname :: LaTeXC l => l -> l -- | Sigma sumation symbol <math>. Use sumFromTo instead if -- you want to specify the limits of the sum. tsum :: LaTeXC l => l -- | Sigma sumation symbol with limits, like <math>. sumFromTo :: LaTeXC l => l -> l -> l -- | Pi product symbol <math>. Use prodFromTo if you want to -- specify the limits of the product. prod :: LaTeXC l => l -- | Pi product symbol with limits, like <math>. prodFromTo :: LaTeXC l => l -> l -> l -- | Coproduct symbol <math>. Use coprodFromTo if you want to -- specify the limits of the coproduct. coprod :: LaTeXC l => l -- | Coproduct symbol with limits, like <math>. coprodFromTo :: LaTeXC l => l -> l -> l -- | Integral symbol. Use integralFromTo if you want to specify the -- limits of the integral. integral :: LaTeXC l => l -- | Integral symbol with limits of integration. <math> integralFromTo :: LaTeXC l => l -> l -> l -- | Partial-differentiation symbol <math> partial :: LaTeXC l => l -- | Total-differentiation (or integration-variable) symbol d (non-italic!) -- To be used as frac (totald) (totald<>"x") → -- <math>. totald :: LaTeXC l => l -- | Partial-differentiation of variable, e.g. frac (partialOf h) -- (partialOf t) → <math>. partialOf :: LaTeXC l => l -> l -- | Total-differentiation of variable, or integration over variable. To be -- used as -- --
--   integralFromTo 0 infty $ totaldOf "x" <> "f(x)"
--   
-- -- <math> or frac (totaldOf"f") (totaldOf"x") → -- <math>. totaldOf :: LaTeXC l => l -> l -- | Big union symbol <math>. Use bigcupFromTo if you want to -- specify the limits of the union. bigcup :: LaTeXC l => l -- | Big union symbol with limits, like <math>. bigcupFromTo :: LaTeXC l => l -> l -> l -- | Big intersection symbol <math>. Use bigcapFromTo if you -- want to specify the limits of the intersection. bigcap :: LaTeXC l => l -- | Big intersection symbol with limits, like <math>. bigcapFromTo :: LaTeXC l => l -> l -> l -- | Plus-or-minus operator <math>. Also available as symbol -- pm. (+-) :: LaTeXC l => l -> l -> l infixl 6 +- -- | Minus-or-plus operator <math>. Also available as symbol -- mp. (-+) :: LaTeXC l => l -> l -> l infixl 6 -+ -- | Centered-dot operator <math>. cdot :: LaTeXC l => l -> l -> l -- | "x-cross" multiplication operator <math>. times :: LaTeXC l => l -> l -> l -- | Division operator <math>. div_ :: LaTeXC l => l -> l -> l -- | Fraction operator, like frac 1 2 → <math>. frac :: LaTeXC l => l -> l -> l -- | Asterisk operator <math>. -- --
--   infixl 7 *:
--   
(*:) :: LaTeXC l => l -> l -> l infixl 7 *: -- | Star operator <math>. star :: LaTeXC l => l -> l -> l -- | Ring operator <math>. circ :: LaTeXC l => l -> l -> l -- | Bullet operator <math>. bullet :: LaTeXC l => l -> l -> l -- | Simple equals sign <math>. -- --
--   infixr 4 =:
--   
(=:) :: LaTeXC l => l -> l -> l infixr 4 =: -- | Not equal <math>. -- --
--   infixr 4 /=:
--   
(/=:) :: LaTeXC l => l -> l -> l infixr 4 /=: -- | Lesser <math>. (<:) :: LaTeXC l => l -> l -> l -- | Lesser or equal <math>. (<=:) :: LaTeXC l => l -> l -> l -- | Greater <math>. (>:) :: LaTeXC l => l -> l -> l -- | Greater or equal <math>. (>=:) :: LaTeXC l => l -> l -> l -- | Much less <math>. ll :: LaTeXC l => l -> l -> l -- | Much greater <math>. gg :: LaTeXC l => l -> l -> l -- | Identical / defined-as / equivalent <math>. equiv :: LaTeXC l => l -> l -> l -- | Proportional-to <math>. propto :: LaTeXC l => l -> l -> l -- | Parallel <math>. parallel :: LaTeXC l => l -> l -> l -- | Perpendicular <math>. This is the infix version of bot. perp :: LaTeXC l => l -> l -> l -- | Approximate equality <math> approx :: LaTeXC l => l -> l -> l -- | Generic equivalence relation <math>. sim :: LaTeXC l => l -> l -> l -- | Equivalence relation <math>. Sometimes used for approximate -- equality or isomorphism. simeq :: LaTeXC l => l -> l -> l -- | Congruence <math>. cong :: LaTeXC l => l -> l -> l -- | Element-of <math>. in_ :: LaTeXC l => l -> l -> l -- | Mirrored element-of <math>. ni :: LaTeXC l => l -> l -> l -- | Not element of <math>. notin :: LaTeXC l => l -> l -> l -- | Subset-of <math>. subset :: LaTeXC l => l -> l -> l -- | Superset-of <math>. supset :: LaTeXC l => l -> l -> l -- | Subset-of-or-equal <math>. subseteq :: LaTeXC l => l -> l -> l -- | Superset-of-or-equal <math>. supseteq :: LaTeXC l => l -> l -> l -- | Set intersection <math>. cap :: LaTeXC l => l -> l -> l -- | Set union <math>. cup :: LaTeXC l => l -> l -> l -- | Set minus <math>. setminus :: LaTeXC l => l -> l -> l -- | Angle pointing downwards <math>. vee :: LaTeXC l => l -> l -> l -- | Angle pointing upwards <math>. wedge :: LaTeXC l => l -> l -> l -- | Circled plus operator <math>. oplus :: LaTeXC l => l -> l -> l -- | Circled minus operator <math>. ominus :: LaTeXC l => l -> l -> l -- | Circled multiplication cross <math>. otimes :: LaTeXC l => l -> l -> l -- | Circled slash <math>. oslash :: LaTeXC l => l -> l -> l -- | Circled dot operator <math>. odot :: LaTeXC l => l -> l -> l -- | Disjoint sum operator <math>. uplus :: LaTeXC l => l -> l -> l -- | Add a hat accent above a symbol, like <math>. hat :: LaTeXC l => l -> l -- | Add a tilde accent above a symbol, like <math>. tilde :: LaTeXC l => l -> l -- | Add a bar accent above a symbol, like <math>. bar :: LaTeXC l => l -> l -- | Add a vector arrow accent above a symbol, like <math>. vec :: LaTeXC l => l -> l -- | Add a wide hat accent above a symbol, like <math>. widehat :: LaTeXC l => l -> l -- | Add a wide tilde accent above a symbol, like <math>. widetilde :: LaTeXC l => l -> l -- | Add a dot accent above a symbol, as used to denote a derivative, like -- <math>. dot :: LaTeXC l => l -> l -- | Add a wide line accent above a symbol, like <math>. overline :: LaTeXC l => l -> l -- | <math> symbol. alpha :: LaTeXC l => l -- | <math> symbol. beta :: LaTeXC l => l -- | <math> symbol. gamma :: LaTeXC l => l -- | <math> symbol. gammau :: LaTeXC l => l -- | <math> symbol. delta :: LaTeXC l => l -- | <math> symbol. deltau :: LaTeXC l => l -- | <math> symbol. epsilon :: LaTeXC l => l -- | <math> symbol. varepsilon :: LaTeXC l => l -- | <math> symbol. zeta :: LaTeXC l => l -- | <math> symbol. eta :: LaTeXC l => l -- | <math> symbol. theta :: LaTeXC l => l -- | <math> symbol. vartheta :: LaTeXC l => l -- | <math> symbol. thetau :: LaTeXC l => l -- | <math> symbol. iota :: LaTeXC l => l -- | <math> symbol. kappa :: LaTeXC l => l -- | <math> symbol. lambda :: LaTeXC l => l -- | <math> symbol. lambdau :: LaTeXC l => l -- | <math> symbol. mu :: LaTeXC l => l -- | <math> symbol. nu :: LaTeXC l => l -- | <math> symbol. xi :: LaTeXC l => l -- | <math> symbol. xiu :: LaTeXC l => l -- | <math> symbol. pi_ :: LaTeXC l => l -- | <math> symbol. varpi :: LaTeXC l => l -- | <math> symbol. piu :: LaTeXC l => l -- | <math> symbol. rho :: LaTeXC l => l -- | <math> symbol. varrho :: LaTeXC l => l -- | <math> symbol. sigma :: LaTeXC l => l -- | <math> symbol. varsigma :: LaTeXC l => l -- | <math> symbol. sigmau :: LaTeXC l => l -- | <math> symbol. tau :: LaTeXC l => l -- | <math> symbol. upsilon :: LaTeXC l => l -- | <math> symbol. upsilonu :: LaTeXC l => l -- | <math> symbol. phi :: LaTeXC l => l -- | <math> symbol. varphi :: LaTeXC l => l -- | <math> symbol. phiu :: LaTeXC l => l -- | <math> symbol. chi :: LaTeXC l => l -- | <math> symbol. psi :: LaTeXC l => l -- | <math> symbol. psiu :: LaTeXC l => l -- | <math> symbol. omega :: LaTeXC l => l -- | <math> symbol. omegau :: LaTeXC l => l -- | <math> symbol uparrow :: LaTeXC l => l -- | <math> symbol downarrow :: LaTeXC l => l -- | <math> symbol uparrow2 :: LaTeXC l => l -- | <math> symbol downarrow2 :: LaTeXC l => l -- | <math> symbol updownarrow :: LaTeXC l => l -- | <math> symbol updownarrow2 :: LaTeXC l => l -- | <math> symbol leftarrow :: LaTeXC l => l -- | <math> symbol rightarrow :: LaTeXC l => l -- | <math> symbol leftrightarrow :: LaTeXC l => l -- | <math> symbol leftrightarrow2 :: LaTeXC l => l -- | <math> symbol leftarrow2 :: LaTeXC l => l -- | <math> symbol rightarrow2 :: LaTeXC l => l -- | <math> symbol longleftarrow :: LaTeXC l => l -- | <math> symbol longrightarrow :: LaTeXC l => l -- | <math> symbol longleftarrow2 :: LaTeXC l => l -- | <math> symbol longrightarrow2 :: LaTeXC l => l -- | <math> symbol longleftrightarrow :: LaTeXC l => l -- | <math> symbol longleftrightarrow2 :: LaTeXC l => l -- | <math> symbol nwarrow :: LaTeXC l => l -- | <math> symbol nearrow :: LaTeXC l => l -- | <math> symbol swarrow :: LaTeXC l => l -- | <math> symbol searrow :: LaTeXC l => l -- | A right-arrow, <math>. to :: LaTeXC l => l -- | A right-arrow for function definitions, <math>. mapsto :: LaTeXC l => l -- | <math> symbol longmapsto :: LaTeXC l => l -- | <math> symbol hookleftarrow :: LaTeXC l => l -- | <math> symbol hookrightarrow :: LaTeXC l => l -- | <math> symbol leftharpoonup :: LaTeXC l => l -- | <math> symbol rightharpoonup :: LaTeXC l => l -- | <math> symbol leftharpoondown :: LaTeXC l => l -- | <math> symbol rightharpoondown :: LaTeXC l => l -- | Plus-or-minus symbol <math>. Also available as infix +-. pm :: LaTeXC l => l -- | Minus-or-plus symbol <math>. mp :: LaTeXC l => l -- | An implication arrow, <math>. implies :: LaTeXC l => l -- | For all symbol, <math>. forall :: LaTeXC l => l -- | Exists symbol, <math>. exists :: LaTeXC l => l -- | Dagger symbol, <math>. dagger :: LaTeXC l => l -- | Double dagger symbol, <math>. ddagger :: LaTeXC l => l -- | Infinity symbol, <math>. infty :: LaTeXC l => l -- | Dotless letter i, <math>. imath :: LaTeXC l => l -- | Dotless letter j, <math>. jmath :: LaTeXC l => l -- | Bottom symbol, <math>. For the infix version see perp. bot :: LaTeXC l => l -- | Default math symbol font. mathdefault :: LaTeXC l => l -> l -- | Bold face, like <math>. mathbf :: LaTeXC l => l -> l -- | Roman, i.e. not-italic math, <math> mathrm :: LaTeXC l => l -> l -- | Calligraphic math symbols. Only works (reliably) with uppercase -- letters, like <math>. mathcal :: LaTeXC l => l -> l -- | Sans-serif math, <math>. mathsf :: LaTeXC l => l -> l -- | Typewriter font, <math>. mathtt :: LaTeXC l => l -> l -- | Italic math. Uses the same glyphs as mathdefault, but with -- spacings intended for multi-character symbols rather than -- juxtaposition of single-character symbols. mathit :: LaTeXC l => l -> l instance GHC.Num.Num Text.LaTeX.Base.Syntax.LaTeX instance GHC.Real.Fractional Text.LaTeX.Base.Syntax.LaTeX instance GHC.Float.Floating Text.LaTeX.Base.Syntax.LaTeX instance (GHC.Base.Monad m, a GHC.Types.~ ()) => GHC.Num.Num (Text.LaTeX.Base.Writer.LaTeXT m a) instance (GHC.Base.Monad m, a GHC.Types.~ ()) => GHC.Real.Fractional (Text.LaTeX.Base.Writer.LaTeXT m a) instance (GHC.Base.Monad m, a GHC.Types.~ ()) => GHC.Float.Floating (Text.LaTeX.Base.Writer.LaTeXT m a) -- | This module is the Prelude of LaTeX functions. It includes -- commands, environments, and some other useful abstractions, that don't -- require you to import additional LaTeX packages. module Text.LaTeX.Base.Commands -- | Insert a raw piece of Text. This functions doesn't escape -- LaTeX reserved characters, it insert the text just as it is -- received. -- -- Warning: This function is unsafe, in the sense that it -- does not check that the input text is a valid LaTeX block. Make -- sure any braces, commands or environments are properly closed. raw :: LaTeXC l => Text -> l -- | Calling between c l1 l2 puts c between -- l1 and l2 and appends them. -- --
--   between c l1 l2 = l1 <> c <> l2
--   
between :: Monoid m => m -> m -> m -> m -- | Create a comment. comment :: LaTeXC l => Text -> l -- | This operator appends a comment after a expression. For example: -- --
--   textbf "I'm just an example." %: "Insert a few words here."
--   
-- -- The implementation is -- --
--   (%:) l = (l <>) . comment
--   
-- -- Since you are writing in Haskell, you may not need to output comments -- as you can add them in the Haskell source. I added this feature for -- completeness. It may be useful for debugging the output as well. (%:) :: LaTeXC l => l -> Text -> l -- | Set the title of your document. title :: LaTeXC l => l -> l -- | Set the author(s) of the document. author :: LaTeXC l => l -> l -- | Set a date for your document. date :: LaTeXC l => l -> l -- | Set either an institute or an organization for the document. It does -- not work for a document of the article class. institute :: LaTeXC l => Maybe l -> l -> l thanks :: LaTeXC l => l -> l -- | Set the document class. Needed in all documents. documentclass :: LaTeXC l => [ClassOption] -> ClassName -> l -- | Import a package. First argument is a list of options for the package -- named in the second argument. usepackage :: LaTeXC l => [l] -> PackageName -> l linespread :: LaTeXC l => Float -> l article :: ClassName proc :: ClassName report :: ClassName minimal :: ClassName book :: ClassName slides :: ClassName -- | A class option to be passed to the documentclass function. data ClassOption Draft :: ClassOption TitlePage :: ClassOption NoTitlePage :: ClassOption OneColumn :: ClassOption TwoColumn :: ClassOption OneSide :: ClassOption TwoSide :: ClassOption Landscape :: ClassOption OpenRight :: ClassOption OpenAny :: ClassOption Fleqn :: ClassOption Leqno :: ClassOption FontSize :: Measure -> ClassOption Paper :: PaperType -> ClassOption CustomOption :: String -> ClassOption customopt :: String -> ClassOption draft :: ClassOption titlepage :: ClassOption notitlepage :: ClassOption onecolumn :: ClassOption twocolumn :: ClassOption oneside :: ClassOption twoside :: ClassOption -- | Changes the layout of the document to print in landscape mode landscape :: ClassOption -- | Makes chapters begin either only on right hand pages openright :: ClassOption -- | Makes chapters begin on the next page available. openany :: ClassOption -- | Typesets displayed formulae left-aligned instead of centred. fleqn :: ClassOption -- | Places the numbering of formulae on the left hand side instead of the -- right. leqno :: ClassOption -- | LaTeX available paper types. data PaperType A0 :: PaperType A1 :: PaperType A2 :: PaperType A3 :: PaperType A4 :: PaperType A5 :: PaperType A6 :: PaperType B0 :: PaperType B1 :: PaperType B2 :: PaperType B3 :: PaperType B4 :: PaperType B5 :: PaperType B6 :: PaperType Letter :: PaperType Executive :: PaperType Legal :: PaperType a0paper :: ClassOption a1paper :: ClassOption a2paper :: ClassOption a3paper :: ClassOption a4paper :: ClassOption a5paper :: ClassOption a6paper :: ClassOption b0paper :: ClassOption b1paper :: ClassOption b2paper :: ClassOption b3paper :: ClassOption b4paper :: ClassOption b5paper :: ClassOption b6paper :: ClassOption letterpaper :: ClassOption executivepaper :: ClassOption legalpaper :: ClassOption pagestyle :: LaTeXC l => PageStyle -> l thispagestyle :: LaTeXC l => PageStyle -> l plain :: PageStyle headings :: PageStyle empty :: PageStyle myheadings :: PageStyle -- | Used in conjunction with myheadings for setting both the left -- and the right heading. markboth :: LaTeXC l => l -> l -> l -- | Used in conjunction with myheadings for setting the right -- heading. markright :: LaTeXC l => l -> l -- | The document environment contains the body of the document. document :: LaTeXC l => l -> l -- | Append a blank comment. eol :: LaTeXC l => l eol = comment "" -- -- Generate the title. It normally contains the title name of your -- document, the author(s) and date. maketitle :: LaTeXC l => l -- | Create the table of contents, automatically generated from your -- sections, subsections, and related functions. tableofcontents :: LaTeXC l => l -- | Abstract section. abstract :: LaTeXC l => l -> l appendix :: LaTeXC l => l part :: LaTeXC l => l -> l -- | Start a new chapter with the given title. chapter :: LaTeXC l => l -> l -- | Start a new section with a given title. section :: LaTeXC l => l -> l -- | Start a new unnumbered section with a given title. section' :: LaTeXC l => l -> l -- | Start a new subsection. subsection :: LaTeXC l => l -> l -- | Start a new unnumbered subsection. subsection' :: LaTeXC l => l -> l -- | Start a new subsubsection. subsubsection :: LaTeXC l => l -> l -- | Start a new unnumbered subsubsection. subsubsection' :: LaTeXC l => l -> l -- | Start a paragraph. paragraph :: LaTeXC l => l -> l -- | Start a subparagraph (minimal level of sectioning). subparagraph :: LaTeXC l => l -> l -- | Render the date at compilation time. today :: LaTeXC l => l -- | Render the current page. thePage :: LaTeXC l => l -- | TeX logo. tex :: LaTeXC l => l -- | The LaTeX logo. latex :: LaTeXC l => l -- | LaTeX logo. laTeX2 :: LaTeXC l => l laTeXe :: LaTeXC l => l -- | Horizontal dots. ldots :: LaTeXC l => l -- | Vertical dots. vdots :: LaTeXC l => l -- | Diagonal dots. ddots :: LaTeXC l => l -- | Print the HaTeX logo. hatex :: LaTeXC l => l -- | Print the HaTeX 3 logo. hatex3 :: LaTeXC l => l version :: Version -- | Print the HaTeX logo, beside the complete version number. hatex_version :: LaTeXC l => l -- | Start a new paragraph par :: LaTeXC l => l -- | Start a new line. It can be used only in paragraph mode. newline :: LaTeXC l => l -- | Start a new line. The exactly meaning depends on the context where it -- is used. In normal running text when it forces a line break it is -- essentially a shorthand for '\newline' (does not end horizontal mode -- or end the paragraph, it just inserts some glue and penalties at that -- point into the horizontal material so that when the paragraph does end -- a line break will occur at that point with the short line padded with -- white space). In alignment environments (like tabular), it -- starts a new row, so use newline instead to start a new line. lnbk :: LaTeXC l => l -- | Like lnbk, lnbk_ introduces a line break, but preventing -- a page break. lnbk_ :: LaTeXC l => l -- | Like lnbk, introduces a line break. But it has an argument that -- specifies how much extra vertical space is to be inserted before the -- next line. This can be a negative amount. lnbkspc :: LaTeXC l => Measure -> l -- | Like lnbkspc, lnbkspc_ introduces a line break with an -- extra vertical space, but preventing a page break. lnbkspc_ :: LaTeXC l => Measure -> l newpage :: LaTeXC l => l cleardoublepage :: LaTeXC l => l clearpage :: LaTeXC l => l -- | Request to break the current line at the point of the command -- stretching the line so that it extends to the right margin. The number -- must be a number from 0 to 4. The higher the number, the more -- insistent the request is (0 means it will be easily ignored and 4 -- means do it anyway). When this line break option is used, LaTeX will -- try to produce the best line breaks possible. linebreak :: LaTeXC l => l -> l -- | Like linebreak, but prevents a like break instead of requesting -- one. nolinebreak :: LaTeXC l => l -> l pagebreak :: LaTeXC l => Maybe l -> l nopagebreak :: LaTeXC l => Maybe l -> l hspace :: LaTeXC l => Measure -> l hspace_ :: LaTeXC l => Measure -> l -- | Add vertical white space, except at the end of a page. vspace :: LaTeXC l => Measure -> l -- | Add vertical white space, even at the end of a page. vspace_ :: LaTeXC l => Measure -> l -- | Add extra vertical white space. In a sequence of addvspace the -- length of the final white space is given by the maximum of the -- individual lengths. addvspace :: LaTeXC l => Measure -> l -- | Space equal to the current font size (= 18 mu). <math> quad :: LaTeXC l => l -- | Twice of quad (= 36 mu). <math> qquad :: LaTeXC l => l -- | Fill out all available horizontal space. hfill :: LaTeXC l => l -- | Fill out all available vertical space. vfill :: LaTeXC l => l -- | Fill out all available horizontal space with dots. dotfill :: LaTeXC l => l -- | Fill out all available horizontal space with a line. hrulefill :: LaTeXC l => l stretch :: LaTeXC l => Double -> l smallskip :: LaTeXC l => l medskip :: LaTeXC l => l bigskip :: LaTeXC l => l baselineskip :: LaTeXC l => l indent :: LaTeXC l => l noindent :: LaTeXC l => l textwidth :: LaTeXC l => l textheight :: LaTeXC l => l linewidth :: LaTeXC l => l -- | The point of verbatim is to include text that will not -- be parsed as LaTeX in any way at all, but should simply appear as -- given in the document, in a separate display in typewriter font. verbatim :: LaTeXC l => Text -> l -- | Include text, as given and in typewriter, but in-line. Note that, for -- LaTeX-specific technical reasons, verbatim text can generally only be -- used "at the top level", not in e.g. section titles or other -- command-arguments. -- -- Unlike verbatim, which LaTeX implements as an ordinary -- environment, its command verb uses a syntax trick to avoid -- braking its parsing when the literal text contains a closing brace: -- rather than using braces at all, the first character after -- \verb will be the right delimiter as well. Translating this -- method to HaTeX wouldn't really make sense since Haskell has string -- literals with their own escaping possibilities; instead, we make it -- secure by automatically choosing a delimiter that does not turn up in -- the given string. verb :: LaTeXC l => Text -> l -- | Set the given argument to bold font face. textbf :: LaTeXC l => l -> l textit :: LaTeXC l => l -> l -- | Set the given argument to monospaced font. texttt :: LaTeXC l => l -> l textrm :: LaTeXC l => l -> l textsf :: LaTeXC l => l -> l textmd :: LaTeXC l => l -> l textup :: LaTeXC l => l -> l textsl :: LaTeXC l => l -> l -- | Set the given argument to small caps format. textsc :: LaTeXC l => l -> l textnormal :: LaTeXC l => l -> l underline :: LaTeXC l => l -> l emph :: LaTeXC l => l -> l tiny :: LaTeXC l => l -> l scriptsize :: LaTeXC l => l -> l footnotesize :: LaTeXC l => l -> l small :: LaTeXC l => l -> l normalsize :: LaTeXC l => l -> l large :: LaTeXC l => l -> l large2 :: LaTeXC l => l -> l large3 :: LaTeXC l => l -> l huge :: LaTeXC l => l -> l huge2 :: LaTeXC l => l -> l -- | Environment of ordered lists. Use item to start each list item. enumerate :: LaTeXC l => l -> l -- | Environment of unordered lists. Use item to start each list -- item. itemize :: LaTeXC l => l -> l -- | An item of a list (see enumerate or itemize). The -- optional argument sets the design of the item. item :: LaTeXC l => Maybe l -> l -- | Left-justify the argument. flushleft :: LaTeXC l => l -> l -- | Right-justify the argument. flushright :: LaTeXC l => l -> l -- | Center-justify the argument. center :: LaTeXC l => l -> l quote :: LaTeXC l => l -> l verse :: LaTeXC l => l -> l cite :: LaTeXC l => l -> l description :: LaTeXC l => l -> l -- | Minipage environment. minipage :: LaTeXC l => Maybe Pos -> l -> l -> l -- | Figure environment. Use this for floating -- Text.LaTeX.Packages.Graphicx content out of the text block and -- giving it a caption. The figure can be referred to with -- ref from elsewhere in the document. figure :: LaTeXC l => Maybe Pos -> l -> l -- | Table environment. Use this for floating a tabular out of the -- text block and giving it a caption. The table can be referred -- to with ref. table :: LaTeXC l => [Pos] -> l -> l pagenumbering :: LaTeXC l => l -> l -- | Arabic numerals. arabic :: LaTeXC l => l -- | Lowercase roman numerals. roman :: LaTeXC l => l -- | Uppercase roman numerals. roman_ :: LaTeXC l => l -- | Lowercase letters. alph :: LaTeXC l => l -- | Uppercase letters. alph_ :: LaTeXC l => l mbox :: LaTeXC l => l -> l fbox :: LaTeXC l => l -> l parbox :: LaTeXC l => Maybe Pos -> Measure -> l -> l framebox :: LaTeXC l => Maybe Measure -> Maybe HPos -> l -> l makebox :: LaTeXC l => Maybe Measure -> Maybe HPos -> l -> l raisebox :: LaTeXC l => Measure -> Maybe Measure -> Maybe Measure -> l -> l -- | Produce a simple black box. rule :: LaTeXC l => Maybe Measure -> Measure -> Measure -> l caption :: LaTeXC l => l -> l label :: LaTeXC l => l -> l ref :: LaTeXC l => l -> l pageref :: LaTeXC l => l -> l -- | The tabular environment can be used to typeset tables with -- optional horizontal and vertical lines. tabular :: LaTeXC l => Maybe Pos -> [TableSpec] -> l -> l -- | tabularnewline ends a row in array or tabular environments. The -- '\' command has different meanings in different contexts. It can end a -- line in normal text, or it can end an array or tabular line. It may be -- preferrable to use newline and in the first case, and -- tabularnewline in the second. tabularnewline :: LaTeXC l => l tabularnewlineSpc :: LaTeXC l => Measure -> l -- | arraybackslash resets the definition of '\' to -- tabularnewline. arraybackslash :: LaTeXC l => l -- | Like tabular but in math mode by default array :: LaTeXC l => Maybe Pos -> [TableSpec] -> l -> l -- | Column separator. (&) :: LaTeXC l => l -> l -> l -- | Horizontal line. hline :: LaTeXC l => l -- | cline i j writes a partial horizontal line beginning in -- column i and ending in column j. cline :: LaTeXC l => Int -> Int -> l -- | Cell taking multiple columns. multicolumn :: LaTeXC l => Int -> [TableSpec] -> l -> l -- | If you are able to arrange some data in matrix form, you might want to -- use this function to quickly generate a tabular with your data. Each -- element of the matrix is rendered using the Texy instance of -- its type. If you want a custom instance for an already instantiated -- type, wrap that type using newtype, and then create your own -- instance. Since every element of a matrix must be of the same type, -- for mixed tables you might want to create an union type. For example, -- if your data matrix contains Ints and Doubles: -- --
--   data Number = R Double | I Int
--   
--   instance Texy Number where
--     texy (R x) = texy x
--     texy (I x) = texy x
--   
-- -- Now you can have a matrix of type Matrix Number and use it to -- render your mixed data in a LaTeX table. -- -- The function matrixTabular does not give you many options, so -- it is not as flexible as generating the table by yourself, but it uses -- a reasonable standard style. -- -- A very simple example: -- --
--   matrixTabular (fmap textbf ["x","y","z"]) $
--     fromList 3 3 [ (1 :: Int)..]
--   
-- -- This code generates the following table: -- -- -- For more examples see the file Examples/tables.hs, included -- in the source distribution. -- -- For more info about how to generate and manipulate matrices, see -- Data.Matrix. matrixTabular :: (LaTeXC l, Texy a) => [l] -> Matrix a -> l centering :: LaTeXC l => l raggedleft :: LaTeXC l => l raggedright :: LaTeXC l => l footnote :: LaTeXC l => l -> l -- | Prints a foot note mark but without the actual footnote. footnotemark :: LaTeXC l => l -- | Prints the footnote corresponding to the previous footnotemark. Useful -- when dealing with footnotes in tabular environment. footnotetext :: LaTeXC l => l -> l -- | Increases by 1 the value of given counter stepcounter :: LaTeXC l => String -> l -- | Increases by n the value of given counter t addtocounter :: LaTeXC l => String -> Int -> l protect :: LaTeXC l => l -> l hyphenation :: LaTeXC l => l -> l hyp :: LaTeXC l => l -- | Quotation marks. qts :: LaTeXC l => l -> l -- | Import an external file and insert its content as it is. input :: LaTeXC l => FilePath -> l -- | Similar to input, but forces a page break. -- -- Note: the file you are including cannot include other files. include :: LaTeXC l => FilePath -> l instance GHC.Show.Show Text.LaTeX.Base.Commands.PaperType instance GHC.Show.Show Text.LaTeX.Base.Commands.ClassOption instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Commands.ClassOption instance Data.String.IsString Text.LaTeX.Base.Commands.ClassOption instance Text.LaTeX.Base.Render.Render Text.LaTeX.Base.Commands.PaperType -- | This module exports those minimal things you need to work with HaTeX. -- Those things are: -- -- module Text.LaTeX.Base -- | Type of LaTeX blocks. data LaTeX -- | Escape LaTeX reserved characters in a String. protectString :: String -> String -- | Escape LaTeX reserved characters in a Text. protectText :: Text -> Text -- | The class of monoids (types with an associative binary operation that -- has an identity). Instances should satisfy the following: -- -- -- -- The method names refer to the monoid of lists under concatenation, but -- there are many other instances. -- -- Some types can be viewed as a monoid in more than one way, e.g. both -- addition and multiplication on numbers. In such cases we often define -- newtypes and make those instances of Monoid, e.g. -- Sum and Product. -- -- NOTE: Semigroup is a superclass of Monoid since -- base-4.11.0.0. class Semigroup a => Monoid a -- | Identity of mappend -- --
--   >>> "Hello world" <> mempty
--   "Hello world"
--   
mempty :: Monoid a => a -- | An associative operation -- -- NOTE: This method is redundant and has the default -- implementation mappend = (<>) since -- base-4.11.0.0. Should it be implemented manually, since -- mappend is a synonym for (<>), it is expected that -- the two functions are defined the same way. In a future GHC release -- mappend will be removed from Monoid. mappend :: Monoid a => a -> a -> a -- | Fold a list using the monoid. -- -- For most types, the default definition for mconcat will be -- used, but the function is included in the class definition so that an -- optimized version can be provided for specific types. -- --
--   >>> mconcat ["Hello", " ", "Haskell", "!"]
--   "Hello Haskell!"
--   
mconcat :: Monoid a => [a] -> a -- | An associative operation. -- --
--   >>> [1,2,3] <> [4,5,6]
--   [1,2,3,4,5,6]
--   
(<>) :: Semigroup a => a -> a -> a infixr 6 <> -- | This module is a re-export of the Base module. You may find it shorter -- to import. Below you can also find a short overview of HaTeX. -- -- Historically, this module also exported the Packages module. But, -- since it's more common to import the Base module and, then, only the -- packages you need (instead of all of them), this module has been -- upgraded supporting it. -- -- For this reason, the module Text.LaTeX.Packages no longer -- exists. module Text.LaTeX -- | Module for the package amsfonts. module Text.LaTeX.Packages.AMSFonts -- | AMSFonts package. Example: -- --
--   usepackage [] amsfonts
--   
amsfonts :: ClassName -- | This font is useful for representing sets like <math> (real -- numbers) or <math> (integers). For instance: -- --
--   "The set of real numbers are represented by " <> mathbb "R" <> "."
--   
-- -- Or in monadic form: -- --
--   "The set of real numbers are represented by " >> mathbb "R" >> "."
--   
-- -- Note the use of overloaded strings. mathbb :: LaTeXC l => l -> l -- | Fraktur font, like <math>. mathfrak :: LaTeXC l => l -> l -- | <math> naturals :: LaTeXC l => l -- | <math> integers :: LaTeXC l => l -- | <math> rationals :: LaTeXC l => l -- | <math> reals :: LaTeXC l => l -- | <math> quaternions :: LaTeXC l => l -- | <math> complexes :: LaTeXC l => l -- | <math> trealPart :: LaTeXC l => l -> l -- | <math> timagPart :: LaTeXC l => l -> l -- | amsmath is a de-facto standard package for maths in LaTeX. It -- is used in most scientific documents and also available by default in -- MathJax. -- -- Note that many of the maths commands this module exports are actually -- defined in LaTeX itself, and do not really require the -- amsmath package. See the Text.LaTeX.Base.Math module -- for this minimal command-set. module Text.LaTeX.Packages.AMSMath -- | AMSMath package. Example: -- --
--   usepackage [] amsmath
--   
amsmath :: PackageName -- | Inline mathematical expressions. math :: LaTeXC l => l -> l -- | Displayed mathematical expressions, i.e. in a seperate line / block. mathDisplay :: LaTeXC l => l -> l -- | A numbered mathematical equation (or otherwise math expression). equation :: LaTeXC l => l -> l -- | The unnumbered variant of equation. equation_ :: LaTeXC l => l -> l -- | An array of aligned equations. Use & to specify the points -- that should horizontally match. Each equation is numbered, unless -- prevented by nonumber. align :: LaTeXC l => [l] -> l -- | The unnumbered variant of align. align_ :: LaTeXC l => [l] -> l -- | The cases environment allows the writing of piecewise functions cases :: LaTeXC l => l -> l -- | A reference to a numbered equation. Use with a label defined in -- the scope of the equation refered to. eqref :: LaTeXC l => l -> l -- | Prevent an equation from being numbered, where the environment would -- by default do that. nonumber :: LaTeXC l => l -- | Surround a LaTeX math expression by parentheses whose height -- automatically matches the expression's. Translates to -- \left(...\right). autoParens :: LaTeXC l => l -> l -- | Like autoParens, but with square brackets. Equivalent to -- autoBrackets"[""]". autoSquareBrackets :: LaTeXC l => l -> l -- | Like autoParens, but with curly brackets. autoBraces :: LaTeXC l => l -> l -- | Like autoParens, but with angle brackets <math> ... -- <math>. Equivalent to autoBrackets langle -- rangle. autoAngleBrackets :: LaTeXC l => l -> l -- | Use custom LaTeX expressions as auto-scaled delimiters to surround -- math. Suitable delimiters include <math> (absolute value), -- <math> (norm, dblPipe), <math> (round-off Gauss -- brackets, lfloor / rfloor) etc.. autoBrackets :: LaTeXC l => LaTeX -> LaTeX -> l -> l -- | Left angle bracket, <math>. langle :: LaTeXC l => l -- | Right angle bracket, <math>. rangle :: LaTeXC l => l -- | Left floor, <math>. lfloor :: LaTeXC l => l -- | Right floor, <math>. rfloor :: LaTeXC l => l -- | Left ceiling, <math>. lceil :: LaTeXC l => l -- | Right ceiling, <math>. rceil :: LaTeXC l => l -- | Double vertical line, used as delimiter for norms <math>. dblPipe :: LaTeXC l => l -- | Superscript. (^:) :: LaTeXC l => l -> l -> l -- | Subscript. (!:) :: LaTeXC l => l -> l -> l -- | Sub- and superscript, both stacked. (!^) :: LaTeXC l => l -> (l, l) -> l -- | Sine function symbol. tsin :: LaTeXC l => l -- | Arcsine function symbol. arcsin :: LaTeXC l => l -- | Cosine function symbol. tcos :: LaTeXC l => l -- | Arccosine function symbol. arccos :: LaTeXC l => l -- | Tangent function symbol. ttan :: LaTeXC l => l -- | Arctangent function symbol. arctan :: LaTeXC l => l -- | Cotangent function symbol. cot :: LaTeXC l => l -- | Arccotangent function symbol. arccot :: LaTeXC l => l -- | Hyperbolic sine function symbol. tsinh :: LaTeXC l => l -- | Hyperbolic cosine function symbol. tcosh :: LaTeXC l => l -- | Hyperbolic tangent function symbol. ttanh :: LaTeXC l => l -- | Hyperbolic cotangent function symbol. coth :: LaTeXC l => l -- | Secant function symbol. sec :: LaTeXC l => l -- | Cosecant function symbol. csc :: LaTeXC l => l -- | Exponential function symbol. texp :: LaTeXC l => l -- | Logarithm function symbol. tlog :: LaTeXC l => l -- | Natural logarithm symbol. ln :: LaTeXC l => l -- | Root notation. Use tsqrt (Just n) x for the nth root -- of x. When Nothing is supplied, the function will -- output a square root. tsqrt :: LaTeXC l => Maybe l -> l -> l -- | Defines a new function symbol. Note that function symbols defined in -- this way will not be automatically translated by babel. operatorname :: LaTeXC l => l -> l -- | Sigma sumation symbol <math>. Use sumFromTo instead if -- you want to specify the limits of the sum. tsum :: LaTeXC l => l -- | Sigma sumation symbol with limits, like <math>. sumFromTo :: LaTeXC l => l -> l -> l -- | Pi product symbol <math>. Use prodFromTo if you want to -- specify the limits of the product. prod :: LaTeXC l => l -- | Pi product symbol with limits, like <math>. prodFromTo :: LaTeXC l => l -> l -> l -- | Coproduct symbol <math>. Use coprodFromTo if you want to -- specify the limits of the coproduct. coprod :: LaTeXC l => l -- | Coproduct symbol with limits, like <math>. coprodFromTo :: LaTeXC l => l -> l -> l -- | Integral symbol. Use integralFromTo if you want to specify the -- limits of the integral. integral :: LaTeXC l => l -- | Integral symbol with limits of integration. <math> integralFromTo :: LaTeXC l => l -> l -> l -- | Partial-differentiation symbol <math> partial :: LaTeXC l => l -- | Total-differentiation (or integration-variable) symbol d (non-italic!) -- To be used as frac (totald) (totald<>"x") → -- <math>. totald :: LaTeXC l => l -- | Partial-differentiation of variable, e.g. frac (partialOf h) -- (partialOf t) → <math>. partialOf :: LaTeXC l => l -> l -- | Total-differentiation of variable, or integration over variable. To be -- used as -- --
--   integralFromTo 0 infty $ totaldOf "x" <> "f(x)"
--   
-- -- <math> or frac (totaldOf"f") (totaldOf"x") → -- <math>. totaldOf :: LaTeXC l => l -> l -- | Big union symbol <math>. Use bigcupFromTo if you want to -- specify the limits of the union. bigcup :: LaTeXC l => l -- | Big union symbol with limits, like <math>. bigcupFromTo :: LaTeXC l => l -> l -> l -- | Big intersection symbol <math>. Use bigcapFromTo if you -- want to specify the limits of the intersection. bigcap :: LaTeXC l => l -- | Big intersection symbol with limits, like <math>. bigcapFromTo :: LaTeXC l => l -> l -> l -- | Plus-or-minus operator <math>. Also available as symbol -- pm. (+-) :: LaTeXC l => l -> l -> l infixl 6 +- -- | Minus-or-plus operator <math>. Also available as symbol -- mp. (-+) :: LaTeXC l => l -> l -> l infixl 6 -+ -- | Centered-dot operator <math>. cdot :: LaTeXC l => l -> l -> l -- | "x-cross" multiplication operator <math>. times :: LaTeXC l => l -> l -> l -- | Division operator <math>. div_ :: LaTeXC l => l -> l -> l -- | Fraction operator, like frac 1 2 → <math>. frac :: LaTeXC l => l -> l -> l -- | Like frac but smaller (uses subscript size for the numerator -- and denominator. tfrac :: LaTeXC l => l -> l -> l -- | Asterisk operator <math>. -- --
--   infixl 7 *:
--   
(*:) :: LaTeXC l => l -> l -> l infixl 7 *: -- | Star operator <math>. star :: LaTeXC l => l -> l -> l -- | Ring operator <math>. circ :: LaTeXC l => l -> l -> l -- | Bullet operator <math>. bullet :: LaTeXC l => l -> l -> l -- | Simple equals sign <math>. -- --
--   infixr 4 =:
--   
(=:) :: LaTeXC l => l -> l -> l infixr 4 =: -- | Not equal <math>. -- --
--   infixr 4 /=:
--   
(/=:) :: LaTeXC l => l -> l -> l infixr 4 /=: -- | Lesser <math>. (<:) :: LaTeXC l => l -> l -> l -- | Lesser or equal <math>. (<=:) :: LaTeXC l => l -> l -> l -- | Greater <math>. (>:) :: LaTeXC l => l -> l -> l -- | Greater or equal <math>. (>=:) :: LaTeXC l => l -> l -> l -- | Much less <math>. ll :: LaTeXC l => l -> l -> l -- | Much greater <math>. gg :: LaTeXC l => l -> l -> l -- | Identical / defined-as / equivalent <math>. equiv :: LaTeXC l => l -> l -> l -- | Proportional-to <math>. propto :: LaTeXC l => l -> l -> l -- | Parallel <math>. parallel :: LaTeXC l => l -> l -> l -- | Perpendicular <math>. This is the infix version of bot. perp :: LaTeXC l => l -> l -> l -- | Approximate equality <math> approx :: LaTeXC l => l -> l -> l -- | Generic equivalence relation <math>. sim :: LaTeXC l => l -> l -> l -- | Equivalence relation <math>. Sometimes used for approximate -- equality or isomorphism. simeq :: LaTeXC l => l -> l -> l -- | Congruence <math>. cong :: LaTeXC l => l -> l -> l -- | Element-of <math>. in_ :: LaTeXC l => l -> l -> l -- | Mirrored element-of <math>. ni :: LaTeXC l => l -> l -> l -- | Not element of <math>. notin :: LaTeXC l => l -> l -> l -- | Subset-of <math>. subset :: LaTeXC l => l -> l -> l -- | Superset-of <math>. supset :: LaTeXC l => l -> l -> l -- | Subset-of-or-equal <math>. subseteq :: LaTeXC l => l -> l -> l -- | Superset-of-or-equal <math>. supseteq :: LaTeXC l => l -> l -> l -- | Set intersection <math>. cap :: LaTeXC l => l -> l -> l -- | Set union <math>. cup :: LaTeXC l => l -> l -> l -- | Set minus <math>. setminus :: LaTeXC l => l -> l -> l -- | Angle pointing downwards <math>. vee :: LaTeXC l => l -> l -> l -- | Angle pointing upwards <math>. wedge :: LaTeXC l => l -> l -> l -- | Circled plus operator <math>. oplus :: LaTeXC l => l -> l -> l -- | Circled minus operator <math>. ominus :: LaTeXC l => l -> l -> l -- | Circled multiplication cross <math>. otimes :: LaTeXC l => l -> l -> l -- | Circled slash <math>. oslash :: LaTeXC l => l -> l -> l -- | Circled dot operator <math>. odot :: LaTeXC l => l -> l -> l -- | Add a hat accent above a symbol, like <math>. hat :: LaTeXC l => l -> l -- | Add a tilde accent above a symbol, like <math>. tilde :: LaTeXC l => l -> l -- | Add a bar accent above a symbol, like <math>. bar :: LaTeXC l => l -> l -- | Add a vector arrow accent above a symbol, like <math>. vec :: LaTeXC l => l -> l -- | Add a wide hat accent above a symbol, like <math>. widehat :: LaTeXC l => l -> l -- | Add a wide tilde accent above a symbol, like <math>. widetilde :: LaTeXC l => l -> l -- | Add a dot accent above a symbol, as used to denote a derivative, like -- <math>. dot :: LaTeXC l => l -> l -- | Add a dot accent above a symbol, as used to denote a second -- derivative, like <math> ddot :: LaTeXC l => l -> l -- | Add a triple dot accent above a symbol, as used to denote a third -- derivative, like <math> dddot :: LaTeXC l => l -> l -- | Add a wide line accent above a symbol, like <math>. overline :: LaTeXC l => l -> l -- | <math> symbol. alpha :: LaTeXC l => l -- | <math> symbol. beta :: LaTeXC l => l -- | <math> symbol. gamma :: LaTeXC l => l -- | <math> symbol. gammau :: LaTeXC l => l -- | <math> symbol. delta :: LaTeXC l => l -- | <math> symbol. deltau :: LaTeXC l => l -- | <math> symbol. epsilon :: LaTeXC l => l -- | <math> symbol. varepsilon :: LaTeXC l => l -- | <math> symbol. zeta :: LaTeXC l => l -- | <math> symbol. eta :: LaTeXC l => l -- | <math> symbol. theta :: LaTeXC l => l -- | <math> symbol. vartheta :: LaTeXC l => l -- | <math> symbol. thetau :: LaTeXC l => l -- | <math> symbol. iota :: LaTeXC l => l -- | <math> symbol. kappa :: LaTeXC l => l -- | <math> symbol. lambda :: LaTeXC l => l -- | <math> symbol. lambdau :: LaTeXC l => l -- | <math> symbol. mu :: LaTeXC l => l -- | <math> symbol. nu :: LaTeXC l => l -- | <math> symbol. xi :: LaTeXC l => l -- | <math> symbol. xiu :: LaTeXC l => l -- | <math> symbol. pi_ :: LaTeXC l => l -- | <math> symbol. varpi :: LaTeXC l => l -- | <math> symbol. piu :: LaTeXC l => l -- | <math> symbol. rho :: LaTeXC l => l -- | <math> symbol. varrho :: LaTeXC l => l -- | <math> symbol. sigma :: LaTeXC l => l -- | <math> symbol. varsigma :: LaTeXC l => l -- | <math> symbol. sigmau :: LaTeXC l => l -- | <math> symbol. tau :: LaTeXC l => l -- | <math> symbol. upsilon :: LaTeXC l => l -- | <math> symbol. upsilonu :: LaTeXC l => l -- | <math> symbol. phi :: LaTeXC l => l -- | <math> symbol. varphi :: LaTeXC l => l -- | <math> symbol. phiu :: LaTeXC l => l -- | <math> symbol. chi :: LaTeXC l => l -- | <math> symbol. psi :: LaTeXC l => l -- | <math> symbol. psiu :: LaTeXC l => l -- | <math> symbol. omega :: LaTeXC l => l -- | <math> symbol. omegau :: LaTeXC l => l -- | Plus-or-minus symbol <math>. Also available as infix +-. pm :: LaTeXC l => l -- | Minus-or-plus symbol <math>. mp :: LaTeXC l => l -- | A right-arrow, <math>. to :: LaTeXC l => l -- | A right-arrow for function definitions, <math>. mapsto :: LaTeXC l => l -- | An implication arrow, <math>. implies :: LaTeXC l => l -- | For all symbol, <math>. forall :: LaTeXC l => l -- | Exists symbol, <math>. exists :: LaTeXC l => l -- | Dagger symbol, <math>. dagger :: LaTeXC l => l -- | Double dagger symbol, <math>. ddagger :: LaTeXC l => l -- | Infinity symbol, <math>. infty :: LaTeXC l => l -- | Dotless letter i, <math>. imath :: LaTeXC l => l -- | Dotless letter j, <math>. jmath :: LaTeXC l => l -- | Bottom symbol, <math>. For the infix version see perp. bot :: LaTeXC l => l -- | Default math symbol font. mathdefault :: LaTeXC l => l -> l -- | Bold face, like <math>. mathbf :: LaTeXC l => l -> l -- | Roman, i.e. not-italic math, <math> mathrm :: LaTeXC l => l -> l -- | Escape from math mode, into a normal-text box. Unlike mathrm, -- this won't squash spaces, i.e. you can write actual sentences. You can -- embed math again within such a box. text :: LaTeXC l => l -> l -- | Calligraphic math symbols. Only works (reliably) with uppercase -- letters, like <math>. mathcal :: LaTeXC l => l -> l -- | Sans-serif math, <math>. mathsf :: LaTeXC l => l -> l -- | Typewriter font, <math>. mathtt :: LaTeXC l => l -> l -- | Italic math. Uses the same glyphs as mathdefault, but with -- spacings intended for multi-character symbols rather than -- juxtaposition of single-character symbols. mathit :: LaTeXC l => l -> l -- | LaTeX rendering of a matrix using pmatrix and a custom -- function to render cells. Optional argument sets the alignment of the -- cells. Default (providing Nothing) is centered. -- -- <math> pmatrix :: (Texy a, LaTeXC l) => Maybe HPos -> Matrix a -> l -- | LaTeX rendering of a matrix using bmatrix and a custom -- function to render cells. Optional argument sets the alignment of the -- cells. Default (providing Nothing) is centered. -- -- <math> bmatrix :: (Texy a, LaTeXC l) => Maybe HPos -> Matrix a -> l -- | LaTeX rendering of a matrix using Bmatrix and a custom -- function to render cells. Optional argument sets the alignment of the -- cells. Default (providing Nothing) is centered. -- -- <math> b2matrix :: (Texy a, LaTeXC l) => Maybe HPos -> Matrix a -> l -- | LaTeX rendering of a matrix using vmatrix and a custom -- function to render cells. Optional argument sets the alignment of the -- cells. Default (providing Nothing) is centered. -- -- <math> vmatrix :: (Texy a, LaTeXC l) => Maybe HPos -> Matrix a -> l -- | LaTeX rendering of a matrix using Vmatrix and a custom -- function to render cells. Optional argument sets the alignment of the -- cells. Default (providing Nothing) is centered. -- -- <math> v2matrix :: (Texy a, LaTeXC l) => Maybe HPos -> Matrix a -> l -- | Space equal to the current font size (= 18 mu). <math> quad :: LaTeXC l => l -- | Twice of quad (= 36 mu). <math> qquad :: LaTeXC l => l -- | , space equal to 3/18 of quad (= 3 mu). <math> thinspace :: LaTeXC l => l -- | : space equal to 4/18 of quad (= 4 mu). <math> medspace :: LaTeXC l => l -- | : space equal to 5/18 of quad (= 5 mu). <math> thickspace :: LaTeXC l => l -- | ! space equal to -3/18 of quad (= -3 mu). <math> negspace :: LaTeXC l => l -- | (space after backslash) equivalent of space in normal text. -- <math> space :: LaTeXC l => l instance Text.LaTeX.Base.Texy.Texy a => Text.LaTeX.Base.Texy.Texy (GHC.Real.Ratio a) instance (Text.LaTeX.Base.Texy.Texy a, Text.LaTeX.Base.Texy.Texy b) => Text.LaTeX.Base.Texy.Texy (a, b) instance (Text.LaTeX.Base.Texy.Texy a, Text.LaTeX.Base.Texy.Texy b, Text.LaTeX.Base.Texy.Texy c) => Text.LaTeX.Base.Texy.Texy (a, b, c) instance (Text.LaTeX.Base.Texy.Texy a, Text.LaTeX.Base.Texy.Texy b, Text.LaTeX.Base.Texy.Texy c, Text.LaTeX.Base.Texy.Texy d) => Text.LaTeX.Base.Texy.Texy (a, b, c, d) instance Text.LaTeX.Base.Texy.Texy a => Text.LaTeX.Base.Texy.Texy (Data.Matrix.Matrix a) instance Text.LaTeX.Base.Texy.Texy a => Text.LaTeX.Base.Texy.Texy [a] -- | Module for the package amssymb. module Text.LaTeX.Packages.AMSSymb -- | AMSSymb package. Example: -- --
--   usepackage [] amssymb
--   
amssymb :: ClassName -- | <math> symbol. vartriangleleft :: LaTeXC l => l -- | <math> symbol. vartriangleright :: LaTeXC l => l -- | <math> symbol - double left arrows. leftleftarrows :: LaTeXC l => l -- | <math> symbol - double right arrows rightrightarrows :: LaTeXC l => l -- | <math> symbol - right arrow atop a left arrow rightleftarrows :: LaTeXC l => l -- | <math> symbol - left arrow atop a right arrow. leftrightarrows :: LaTeXC l => l -- | <math> symbol - double upward arrows. upuparrows :: LaTeXC l => l -- | <math> symbol - double downward arrows. downdownarrows :: LaTeXC l => l -- | <math> symbol - leftwards "mapsto" leftarrowtail :: LaTeXC l => l -- | <math> symbol - rightwards "mapsto" rightarrowtail :: LaTeXC l => l -- | <math> symbol - leftwards curved arrow curvearrowleft :: LaTeXC l => l -- | <math> symbol - rightwards curved arrow curvearrowright :: LaTeXC l => l -- | <math> symbol - double head left arrow twoheadleftarrow :: LaTeXC l => l -- | <math> symbol - double head right arrow twoheadrightarrow :: LaTeXC l => l -- | <math> symbol rightleftharpoons :: LaTeXC l => l -- | <math> symbol lsh2 :: LaTeXC l => l -- | <math> symbol rsh2 :: LaTeXC l => l -- | <math> symbol leftarrow3 :: LaTeXC l => l -- | <math> symbol rightarrow3 :: LaTeXC l => l -- | <math> symbol rightsquigarrow :: LaTeXC l => l -- | <math> symbol leftrightsquigarrow :: LaTeXC l => l -- | <math> symbol looparrowleft :: LaTeXC l => l -- | <math> symbol looparrowright :: LaTeXC l => l -- | <math> symbol circlearrowleft :: LaTeXC l => l -- | <math> symbol circlearrowright :: LaTeXC l => l -- | <math> symbol upharpoonleft :: LaTeXC l => l -- | <math> symbol upharpoonright :: LaTeXC l => l -- | <math> symbol downharpoonleft :: LaTeXC l => l -- | <math> symbol downharpoonright :: LaTeXC l => l -- | <math> symbol nleftarrow :: LaTeXC l => l -- | <math> symbol nrightarrow :: LaTeXC l => l -- | <math> symbol nleftarrow2 :: LaTeXC l => l -- | <math> symbol nrightarrow2 :: LaTeXC l => l -- | <math> symbol nleftrightarrow :: LaTeXC l => l -- | <math> symbol nleftrightarrow2 :: LaTeXC l => l -- | <math> symbol - triple less than. lll :: LaTeXC l => l -- | <math> symbol - triple greater than. ggg :: LaTeXC l => l -- | <math> symbol - greater than with inner dot gtrdot :: LaTeXC l => l -- | <math> symbol - less than with inner dot lessdot :: LaTeXC l => l -- | <math> symbol - square. For the QED “tombstone”, see qed -- instead; it is normally the same symbol but gives the suitable text -- alignment. square :: LaTeXC l => l -- | <math> symbol - a filled square blacksquare :: LaTeXC l => l -- | <math> symbol - narrow diamond lozenge :: LaTeXC l => l -- | <math> symbol - filled narrow diamond blacklozenge :: LaTeXC l => l -- | <math> symbol. checkmark :: LaTeXC l => l -- | <math> symbol - does not exist nexists :: LaTeXC l => l -- | Package for theorem environments. module Text.LaTeX.Packages.AMSThm -- | AMSThm package. Example: -- --
--   usepackage [] amsthm
--   
amsthm :: PackageName -- | Create a new theorem environment type. Arguments are -- environment name (this will be the argument when using the -- theorem function) and the displayed title. -- -- For example: -- --
--   newtheorem "prop" "Proposition"
--   
-- --
--   theorem "prop" "This is it."
--   
newtheorem :: LaTeXC l => String -> l -> l -- | Use a environment created by newtheorem. theorem :: LaTeXC l => String -> l -> l -- | The proof environment. The first optional argument is used to -- put a custom title to the proof. proof :: LaTeXC l => Maybe l -> l -> l -- | Insert the QED symbol <math>, as a concluding -- right-aligned terminator. Note that within a proof environment, -- this is automatically done at the end. qed :: LaTeXC l => l -- | Insert the QED symbol. This is supposed to be used within a -- proof environment, to change the default behaviour of putting -- the <math> at the end. qedhere :: LaTeXC l => l -- | Different styles for theorems. data TheoremStyle Plain :: TheoremStyle Definition :: TheoremStyle Remark :: TheoremStyle CustomThmStyle :: String -> TheoremStyle -- | Set the theorem style. Call this function in the preamble. theoremstyle :: LaTeXC l => TheoremStyle -> l instance GHC.Show.Show Text.LaTeX.Packages.AMSThm.TheoremStyle instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.AMSThm.TheoremStyle -- | Add acronyms to your documents using this module. -- -- Define and render acronyms in a document, where the first occurrance -- is the long variant, and the next ones are the shorter variant. module Text.LaTeX.Packages.Acronym -- | The pacronym package. -- --
--   usepackage [] pacronym
--   
pacronym :: PackageName -- | Redefines the `acf` and `acfp` commands making the full name appear as -- a footnote footnote :: LaTeXC l => l -- | If hyperref is loaded, all acronyms will link to their glossary entry. -- With the nohyperlinks option, these links are suppressed. nohyperlinks :: LaTeXC l => l -- | We need a marker which is set if the option printonlyused was -- used. printonlyused :: LaTeXC l => l -- | A marker which tells us to print page numbers. withpage :: LaTeXC l => l -- | The option smaller leads to a redefinition of `acsfont`. We -- want to make the acronym appear smaller. Since this should be done in -- a context-sensitive way, we rely on the macro textsmaller provided by -- the relsize package. As `RequiredPackage` cannot be used -- inside `DeclareOption`, we need a boolean variable. smaller :: LaTeXC l => l -- | The option dua stands for "don't use acronyms". It leads to a -- redefinition of `ac` and `acp` making the full name appear all the -- time and suppressing all acronyms but the explicitly requested by -- `acf` and `acfp`. dua :: LaTeXC l => l -- | The option nolist stands for "don't write the list of -- acronyms". nolist :: LaTeXC l => l -- | An acronym type with a label, this is used to generate commands linked -- to this acronym. newtype Acronym Acronym :: String -> Acronym [acronymLabel] :: Acronym -> String -- | Enter an acronym inside the text. The first time the acronym is used, -- it will specify the full name, and between parenthesis, the short -- name. If you specified the footnote option, it will print the -- short name, and add a footnote with the long name. The next time, only -- the short time is printed. ac :: LaTeXC l => Acronym -> l -- | You can use this command to later in the text again print the full -- name of the acronym, this stands for "full acronym", it always prints -- the full name, and the acronym between parenthesis. acf :: LaTeXC l => Acronym -> l -- | This will enter the short version of the acronym inside the text. acs :: LaTeXC l => Acronym -> l -- | This will enter the expanded version of the acronym in the text, -- without mentioning the acronym between parenthesis. acl :: LaTeXC l => Acronym -> l -- | This works the same way as ac, except that it will make the -- short and the long forms into plurals. acp :: LaTeXC l => Acronym -> l -- | This works the same way as acf, except tah it will make the -- short and long forms into plurals. acfp :: LaTeXC l => Acronym -> l -- | Works the same way as acs, but makes the short form into a -- plural. acsp :: LaTeXC l => Acronym -> l -- | Works the same way as acl, but makes the long form into a -- plural. aclp :: LaTeXC l => Acronym -> l -- | Prints the full name acronym in italics and the abbreviated form in an -- upshaped form. acfi :: LaTeXC l => Acronym -> l -- | Prints the short form of the acronym, and marks it as used. acsu :: LaTeXC l => Acronym -> l -- | Prints the long form of the acronym and marks it as used. aclu :: LaTeXC l => Acronym -> l -- | Works the same way as the ac command, but prefixes it with an -- appropriate indefinite article. iac :: LaTeXC l => Acronym -> l -- | Works the same way as the ac command, but prefixes it with an -- appropriate upper case indefinite article. iac2 :: LaTeXC l => Acronym -> l -- | Enter an acronym inside the text. It will specify the full name, and -- between parenthesis, the short name. If you specified the -- footnote option, it will print the short name, and add a -- footnote with the long name. This does not mark the acronym as used. ac' :: LaTeXC l => Acronym -> l -- | You can use this command to later in the text again print the full -- name of the acronym, this stands for "full acronym", it always prints -- the full name, and the acronym between parenthesis. This does not mark -- the acronym as used. acf' :: LaTeXC l => Acronym -> l -- | This will enter the short version of the acronym inside the text. This -- does not mark the acronym as used. acs' :: LaTeXC l => Acronym -> l -- | This will enter the expanded version of the acronym in the text, -- without mentioning the acronym between parenthesis. This does not mark -- the acronym as used. acl' :: LaTeXC l => Acronym -> l -- | This works the same way as ac, except that it will make the -- short and the long forms into plurals. This does not mark the acronym -- as used. acp' :: LaTeXC l => Acronym -> l -- | This works the same way as acf, except tah it will make the -- short and long forms into plurals. This does not mark the acronym as -- used. acfp' :: LaTeXC l => Acronym -> l -- | Works the same way as acs, but makes the short form into a -- plural. This does not mark the acronym as used. acsp' :: LaTeXC l => Acronym -> l -- | Works the same way as acl, but makes the long form into a -- plural. This does not mark the acronym as used. aclp' :: LaTeXC l => Acronym -> l -- | Prints the full name acronym in italics and the abbreviated form in an -- upshaped form. This does not mark the acronym as used. acfi' :: LaTeXC l => Acronym -> l -- | Prints the short form of the acronym, and marks it as used. This does -- not mark the acronym as used. acsu' :: LaTeXC l => Acronym -> l -- | Prints the long form of the acronym and marks it as used. This does -- not mark the acronym as used. aclu' :: LaTeXC l => Acronym -> l -- | Works the same way as the ac command, but prefixes it with an -- appropriate indefinite article. This does not mark the acronym as -- used. iac' :: LaTeXC l => Acronym -> l -- | Works the same way as the ac command, but prefixes it with an -- appropriate upper case indefinite article. This does not mark the -- acronym as used. iac2' :: LaTeXC l => Acronym -> l -- | The memory of the marco ac is flushed, afterwards, ac -- will print the full name of any acronym, and the acronym within -- parenthesis. acresetall :: LaTeXC l => l -- | Marks an acronym as useed, as if it has been called with ac, -- but without printing anything. In the future, only the short form of -- the acronym will be printed. acresetall undoes this. acused :: LaTeXC l => Acronym -> l -- | This can be used inside the acro part to add extra data to the -- list of acrynyms, this will *not* be included when rendering the -- acronym in the document itself. acroextra :: LaTeXC l => l -> l -- | Define an acronym environment to write the acronym definitions to. acronym :: LaTeXC l => l -> l -- | Define an acronym with a label and both a short, and a long name. This -- returns the LaTeX code to define the acronym, and the Acronym -- object to use in the rest of the code. acro :: LaTeXC l => String -> l -> l -> (l, Acronym) -- | Define an acronym with a label, and only a long name. This returns the -- LaTeX code to define the acronym, and the Acronym object to use -- in the rest of the code. acro' :: LaTeXC l => String -> l -> (l, Acronym) -- | The monadic variant of the acro function where the -- Acronym is returned as a result of the definition. acroM :: Monad m => String -> LaTeXT m () -> LaTeXT m () -> LaTeXT m Acronym -- | The monadic variant of the acro` function, where the -- Acronym is returned as result of the definition. acroM' :: Monad m => String -> LaTeXT m () -> LaTeXT m Acronym -- | The babel package is used to write documents in languages -- other than US English. -- -- CTAN page for babel: http://ctan.org/pkg/babel. module Text.LaTeX.Packages.Babel -- | Babel package. When writing in a single language, the simplest way of -- using it is with uselanguage. -- -- In the preamble, use the following (if your language of choice is -- Spanish): -- --
--   uselanguage Spanish
--   
-- -- To see a list of available languages, check the Language type. babel :: PackageName -- | Languages. data Language -- | Bulgarian. Bulgarian :: Language -- | Brazilian Portuguese. Brazilian :: Language -- | Canadian French. Canadien :: Language -- | Czech. Czech :: Language -- | Dutch. Dutch :: Language -- | English. English :: Language -- | Finnish. Finnish :: Language -- | Parisian French. Francais :: Language -- | French. French :: Language -- | French. FrenchB :: Language -- | Old German. German :: Language -- | New German. NGerman :: Language -- | Icelandic. Icelandic :: Language -- | Italian. Italian :: Language -- | Hungarian. Magyar :: Language -- | Portuguese. Portuguese :: Language -- | Russian. Russian :: Language -- | Spanish. Spanish :: Language -- | Ukranian. Ukranian :: Language -- | Import the babel package using a given Language. -- --
--   uselanguage l = usepackage [texy l] babel
--   
-- -- If you are using more than one language, consider to use -- uselanguageconf. uselanguage :: LaTeXC l => Language -> l -- | Language configuration. You may use one with uselanguageconf. data LangConf LangConf :: Language -> [Language] -> LangConf [mainLang] :: LangConf -> Language [otherLangs] :: LangConf -> [Language] -- | Import the label package using a given language configuration, -- featuring a main language and some others. For example: -- --
--   uselanguageconf $ LangConf English [German]
--   
-- -- This will use English as main language, and German as secondary. uselanguageconf :: LaTeXC l => LangConf -> l -- | Switch to a given Language. selectlanguage :: LaTeXC l => Language -> l -- | Use a Language locally. otherlanguage :: LaTeXC l => Language -> l -> l -- | The function foreignlanguage takes two arguments; the second -- argument is a phrase to be typeset according to the rules of the -- language named in its first argument. foreignlanguage :: LaTeXC l => Language -> l -> l instance GHC.Show.Show Text.LaTeX.Packages.Babel.Language instance GHC.Show.Show Text.LaTeX.Packages.Babel.LangConf instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Babel.Language instance Text.LaTeX.Base.Texy.Texy Text.LaTeX.Packages.Babel.Language -- | Beamer is a LaTeX package for the creation of slides. -- -- Each frame is contained within the frame function. Here is an -- example: -- --
--   {-# LANGUAGE OverloadedStrings #-}
--   
--   import Text.LaTeX
--   import Text.LaTeX.Packages.Beamer
--   
--   mySlides :: Monad m => LaTeXT m ()
--   mySlides = do
--     frame $ do
--       frametitle "First frame"
--       "Content of the first frame."
--     frame $ do
--       frametitle "Second frame"
--       "Content of the second frame." 
--       pause
--       " And actually a little more."
--   
-- -- The pause command in the second frame makes the second part of -- the text to appear one screen later. module Text.LaTeX.Packages.Beamer -- | The beamer document class. Importing a package is not required. -- Example: -- --
--   documentclass [] beamer
--   
beamer :: ClassName -- | A presentation is composed of a sequence of frames. Each frame is -- created with this function. frame :: LaTeXC l => l -> l -- | Set the title of the current frame. Use it within a frame. frametitle :: LaTeXC l => l -> l -- | Set the subtitle of the current frame. Use it within a frame. framesubtitle :: LaTeXC l => l -> l -- | Highlight in red a piece of text. With the OverlaySpecs, you -- can specify the slides where the text will be highlighted. alert :: LaTeXC l => [OverlaySpec] -> l -> l -- | Introduces a pause in a slide. pause :: LaTeXC l => l -- | A block will be displayed surrounding a text. block :: LaTeXC l => l -> l -> l -- | Specifications for beamer functions. data OverlaySpec OneSlide :: Int -> OverlaySpec FromSlide :: Int -> OverlaySpec ToSlide :: Int -> OverlaySpec FromToSlide :: Int -> Int -> OverlaySpec -- | beameritem works like item, but allows you to specify -- the slides where the item will be displayed. beameritem :: LaTeXC l => [OverlaySpec] -> l -- | With uncover, show a piece of text only in the slides you want. -- On other slides, the text still occupies space and it is still -- typeset, but it is not shown or only shown as if transparent. uncover :: LaTeXC l => [OverlaySpec] -> l -> l -- | With only the text is inserted only into the specified slides. -- For other slides, the text is simply thrown away (it occupies no -- space). only :: LaTeXC l => [OverlaySpec] -> l -> l -- | The behavior of the onslide command depends on whether the -- optional argument text is given or not. If a text -- argument is present, onslide (without a ⟨modifier⟩) is mapped -- to uncover. onslide :: LaTeXC l => [OverlaySpec] -> l -> l -- | The visible command does almost the same as uncover. The -- only difference is that if the text is not shown, it is never shown in -- a transparent way, but rather it is not shown at all. Thus for this -- command the transparency settings have no effect. visible :: LaTeXC l => [OverlaySpec] -> l -> l -- | The invisible is the opposite of visible. invisible :: LaTeXC l => [OverlaySpec] -> l -> l -- | beamercolor works like color, but allows you to -- specify the slides where the text will be bold. beamercolor :: LaTeXC l => [OverlaySpec] -> l -- | Inside the overprint environment, use onslide commands -- to specify different things that should be shown for this environment -- on different slides. Everything within the environment will be placed -- in a rectangular area of the specified width. The height and depth of -- the area are chosen large enough to acoommodate the largest contents -- of this area. overprint :: LaTeXC l => l -> l -- | Options for covering text data CoverOption -- | Causes covered text to completely disappear Invisible :: CoverOption -- | Causes covered text to be typset in a transparent way Transparent :: Maybe Float -> CoverOption -- | Makes all covered text quite transparent, but in a dynamic way. The -- longer it will take till the text is uncovered, the stronger the -- transparency. Dynamic :: CoverOption -- | Has the same effect as dynamic, but the effect is stronger. | -- StillCovered [Opaqueness] -- ^ Specifies how to render covered items -- -- that have not yet been uncovered. | AgainCovered [Opaqueness] -- ^ -- Specifies how to render covered items -- that have once more been -- covered, that -- is, that had been shown before but are -- now covered -- again. HighlyDynamic :: CoverOption -- | Percentage of opaqueness for the specified overlays. In 'Opaqueness -- overlaySpecification percentageOfOpaqueness' the -- overlaySpecification specifies on which slides covered text -- should have which percentageOfOpaqueness. Unlike other -- overlay specifications, this overlaySpecification is a -- relative overlay specification. data Opaqueness Opaqueness :: [OverlaySpec] -> Float -> Opaqueness -- | The command setbeamercovered allows you to specify in a quite -- general way how a covered item should be rendered. setbeamercovered :: LaTeXC l => [CoverOption] -> l -- | Set the Theme employed in your presentation (in the preamble). usetheme :: LaTeXC l => Theme -> l -- | A Theme of a presentation. See usetheme. A preview of -- each one is given below. data Theme AnnArbor :: Theme Antibes :: Theme Bergen :: Theme Berkeley :: Theme Berlin :: Theme Boadilla :: Theme CambridgeUS :: Theme Copenhagen :: Theme Darmstadt :: Theme Dresden :: Theme Frankfurt :: Theme Goettingen :: Theme Hannover :: Theme Ilmenau :: Theme JuanLesPins :: Theme Luebeck :: Theme Madrid :: Theme Malmoe :: Theme Marburg :: Theme Montpellier :: Theme PaloAlto :: Theme Pittsburgh :: Theme Rochester :: Theme Singapore :: Theme Szeged :: Theme Warsaw :: Theme Boxes :: Theme Default :: Theme CustomTheme :: String -> Theme instance GHC.Show.Show Text.LaTeX.Packages.Beamer.OverlaySpec instance GHC.Show.Show Text.LaTeX.Packages.Beamer.CoverOption instance GHC.Show.Show Text.LaTeX.Packages.Beamer.Opaqueness instance GHC.Show.Show Text.LaTeX.Packages.Beamer.Theme instance GHC.Classes.Eq Text.LaTeX.Packages.Beamer.Theme instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Beamer.Theme instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Beamer.CoverOption instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Beamer.OverlaySpec -- | BibLaTeX is a reference-citation package using .bib -- files (BibTeX) but no extra style-files. module Text.LaTeX.Packages.BibLaTeX -- | BibLaTeX package. Use it to import it like this: -- --
--   usepackage [] biblatex
--   
biblatex :: PackageName -- | Use a bibliography file as resource for reference information. addbibresource :: LaTeXC l => FilePath -> l cite :: LaTeXC l => l -> l printbibliography :: LaTeXC l => l documentWithDOIReferences :: (MonadIO m, LaTeXC (m ()), Semigroup (m ()), r ~ DOIReference) => (r -> m (Maybe T)) -> ReferenceQueryT r m () -> m () type PlainDOI = String citeDOI :: (Functor m, Monoid (m ()), IsString (m ())) => PlainDOI -> String -> ReferenceQueryT DOIReference m () -- | Transform a citation into \textcite, i.e. so that it can be -- used as a noun in a sentence. textc :: Functor m => ReferenceQueryT DOIReference m () -> ReferenceQueryT DOIReference m () -- | Transform a citation into \Textcite, i.e. so that it can be -- used as the first word in a sentence. textC :: Functor m => ReferenceQueryT DOIReference m () -> ReferenceQueryT DOIReference m () data DOIReference data ReferenceQueryT r m a masterBibFile :: MonadIO m => FilePath -> DOIReference -> m (Maybe T) instance GHC.Generics.Generic Text.LaTeX.Packages.BibLaTeX.DOIReference instance GHC.Show.Show Text.LaTeX.Packages.BibLaTeX.CitationFlavour instance GHC.Classes.Ord Text.LaTeX.Packages.BibLaTeX.CitationFlavour instance GHC.Classes.Eq Text.LaTeX.Packages.BibLaTeX.CitationFlavour instance GHC.Base.Functor m => GHC.Base.Functor (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m) instance GHC.Generics.Generic (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m a) instance GHC.Base.Applicative m => GHC.Base.Applicative (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m) instance (GHC.Base.Functor m, GHC.Base.Monoid (m a), Data.String.IsString (m ()), a GHC.Types.~ ()) => Data.String.IsString (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m a) instance (GHC.Base.Applicative m, GHC.Base.Semigroup (m a), a GHC.Types.~ ()) => GHC.Base.Semigroup (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m a) instance (GHC.Base.Applicative m, GHC.Base.Semigroup (m a), GHC.Base.Monoid (m a), a GHC.Types.~ ()) => GHC.Base.Monoid (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m a) instance (GHC.Base.Applicative m, Text.LaTeX.Base.Class.LaTeXC (m a), GHC.Base.Semigroup (m a), a GHC.Types.~ ()) => Text.LaTeX.Base.Class.LaTeXC (Text.LaTeX.Packages.BibLaTeX.ReferenceQueryT r m a) instance GHC.Classes.Eq Text.LaTeX.Packages.BibLaTeX.DOIReference instance GHC.Classes.Ord Text.LaTeX.Packages.BibLaTeX.DOIReference -- | An extension to the standard LaTeX tabular environment that creates -- struts which (slightly) stretch the table row in which they sit. module Text.LaTeX.Packages.Bigstrut -- | bigstrut package. Use it to import it like this: -- --
--   usepackage [] bigstrut
--   
bigstrutp :: PackageName -- | bigstrutTop, bigstrutBottom and bigstrut produce -- a strut (a rule with width 0) which is bigstrutjot (2pt by -- default) higher, lower, or both than the standard array/tabular strut. -- Use them in table entries that are adjacent to hlines to -- leave an extra bit of space bigstrut :: LaTeXC l => l bigstrutTop :: LaTeXC l => l bigstrutBottom :: LaTeXC l => l -- | Make your documents colorful using this module. -- -- Different functionalities are provided, like changing the color of the -- text and the paper, or creating colorful boxes. module Text.LaTeX.Packages.Color -- | The pcolor package. -- --
--   usepackage [] pcolor
--   
pcolor :: PackageName -- | To convert all colour commands to black and white, for previewers that -- cannot handle colour. monochrome :: LaTeXC l => l dvipsnames :: LaTeXC l => l nodvipsnames :: LaTeXC l => l usenames :: LaTeXC l => l -- | Basic colors. data Color Red :: Color Green :: Color Blue :: Color Yellow :: Color Cyan :: Color Magenta :: Color Black :: Color White :: Color -- | Other predefined colors. data ColorName Apricot :: ColorName Aquamarine :: ColorName Bittersweet :: ColorName BlueGreen :: ColorName BlueViolet :: ColorName BrickRed :: ColorName Brown :: ColorName BurntOrange :: ColorName CadetBlue :: ColorName CarnationPink :: ColorName Cerulean :: ColorName CornflowerBlue :: ColorName Dandelion :: ColorName DarkOrchid :: ColorName Emerald :: ColorName ForestGreen :: ColorName Fuchsia :: ColorName Goldenrod :: ColorName Gray :: ColorName GreenYellow :: ColorName JungleGreen :: ColorName Lavender :: ColorName LimeGreen :: ColorName Mahogany :: ColorName Maroon :: ColorName Melon :: ColorName MidnightBlue :: ColorName Mulberry :: ColorName NavyBlue :: ColorName OliveGreen :: ColorName Orange :: ColorName OrangeRed :: ColorName Orchid :: ColorName Peach :: ColorName Periwinkle :: ColorName PineGreen :: ColorName Plum :: ColorName ProcessBlue :: ColorName Purple :: ColorName RawSienna :: ColorName RedOrange :: ColorName RedViolet :: ColorName Rhodamine :: ColorName RoyalBlue :: ColorName RubineRed :: ColorName Salmon :: ColorName SeaGreen :: ColorName Sepia :: ColorName SkyBlue :: ColorName SpringGreen :: ColorName Tan :: ColorName TealBlue :: ColorName Thistle :: ColorName Turquoise :: ColorName Violet :: ColorName VioletRed :: ColorName WildStrawberry :: ColorName YellowGreen :: ColorName YellowOrange :: ColorName -- | Specify your own color using one of the different color models. data ColorModel -- | Each parameter determines the proportion of red, green and blue, with -- a value within the [0,1] interval. RGB :: Float -> Float -> Float -> ColorModel RGB255 :: Word8 -> Word8 -> Word8 -> ColorModel -- | Grayscale, from 0 (black) to 1 (white). GrayM :: Float -> ColorModel HTML :: String -> ColorModel CMYK :: Float -> Float -> Float -> Float -> ColorModel -- | Color specification. data ColSpec DefColor :: Color -> ColSpec ModColor :: ColorModel -> ColSpec DvipsColor :: ColorName -> ColSpec -- | 8-bit unsigned integer type data Word8 -- | Set the background color for the current and following pages. pagecolor :: LaTeXC l => ColSpec -> l -- | Switch to a new text color. color :: LaTeXC l => ColSpec -> l -- | Set the text of its argument in the given colour. textcolor :: LaTeXC l => ColSpec -> l -> l -- | Put its argument in a box with the given colour as background. colorbox :: LaTeXC l => ColSpec -> l -> l -- | Application of fcolorbox cs1 cs2 l put l in a framed -- box with cs1 as frame color and cs2 as background -- color. fcolorbox :: LaTeXC l => ColSpec -> ColSpec -> l -> 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 :: LaTeXC l => l instance GHC.Show.Show Text.LaTeX.Packages.Color.Color instance GHC.Show.Show Text.LaTeX.Packages.Color.ColorModel instance GHC.Show.Show Text.LaTeX.Packages.Color.ColorName instance GHC.Show.Show Text.LaTeX.Packages.Color.ColSpec instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Color.ColSpec instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Color.ColorName instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Color.ColorModel instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Color.Color -- | This package provides extensive control of page headers and footers. -- -- CTAN page for fancyhdr: http://www.ctan.org/pkg/fancyhdr. module Text.LaTeX.Packages.Fancyhdr -- | The fancyhdr package. Please, consider to use applyHdrSettings -- instead of importing the package manually. If you really want to do it -- manually, use the functions from the raw interface exposed -- below. fancyhdr :: PackageName -- | Header and footer settings of a LaTeX document. Use -- applyHdrSettings to apply these settings in your document. A -- default value is provided by defaultHdrSettings, which you can -- modify using record syntax. -- --
--   mySettings :: HdrSettings
--   mySettings = defaultHdrSettings
--       { centerHeader = "Amazing header"
--       , headRuleWidth = Pt 2
--         }
--   
data HdrSettings HdrSettings :: LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> LaTeX -> Measure -> Measure -> HdrSettings [leftHeader] :: HdrSettings -> LaTeX [centerHeader] :: HdrSettings -> LaTeX [rightHeader] :: HdrSettings -> LaTeX [leftFooter] :: HdrSettings -> LaTeX [centerFooter] :: HdrSettings -> LaTeX [rightFooter] :: HdrSettings -> LaTeX [headRuleWidth] :: HdrSettings -> Measure [footRuleWidth] :: HdrSettings -> Measure -- | Default header and footer settings. -- -- It leaves everything empty but the centerFooter field, which is -- filled with thePage. -- -- Also, it sets to 0.4 points the headRuleWidth field. defaultHdrSettings :: HdrSettings -- | Apply custom header and footer settings to a LaTeX document. It takes -- care of package importing and page style settings, so using this -- function is enough to get the settings applied. Do not import -- the fancyhdr package again. To be used in the preamble. applyHdrSettings :: LaTeXC l => HdrSettings -> l -- | Page style of the fancyhdr package. fancy :: PageStyle -- | Set the left header. lhead :: LaTeXC l => l -> l -- | Set the center header. chead :: LaTeXC l => l -> l -- | Set the right header. rhead :: LaTeXC l => l -> l -- | Set the left footer. lfoot :: LaTeXC l => l -> l -- | Set the center footer. cfoot :: LaTeXC l => l -> l -- | Set the right footer. rfoot :: LaTeXC l => l -> l -- | Set the headrulewidth attribute. renewheadrulewidth :: LaTeXC l => Measure -> l -- | Set the footrulewidth attribute. renewfootrulewidth :: LaTeXC l => Measure -> l instance GHC.Show.Show Text.LaTeX.Packages.Fancyhdr.HdrSettings instance GHC.Classes.Eq Text.LaTeX.Packages.Fancyhdr.HdrSettings -- | Select new font encodings using the fontenc package. module Text.LaTeX.Packages.Fontenc -- | The fontenc package. It is recommended to use the -- useencoding function to import it. fontenc :: PackageName -- | Font encodings. data FontEnc T1 :: FontEnc OT1 :: FontEnc -- | In the preamble, select encodings to use in your document. The last -- one will be the default encoding. Example: -- --
--   useencoding [T1]
--   
-- -- It imports the fontenc package. In fact: -- --
--   useencoding xs = usepackage (fmap texy xs) fontenc
--   
useencoding :: LaTeXC l => [FontEnc] -> l instance GHC.Show.Show Text.LaTeX.Packages.Fontenc.FontEnc instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Fontenc.FontEnc instance Text.LaTeX.Base.Texy.Texy Text.LaTeX.Packages.Fontenc.FontEnc -- | The geometry package provides an easy interface to page dimensions. -- -- CTAN page for geometry: http://www.ctan.org/pkg/geometry. module Text.LaTeX.Packages.Geometry -- | Geometry package. Use it to import it like this: -- --
--   usepackage [] geometry
--   
-- -- In most cases, it is recommended to use importGeometry instead. geometry :: PackageName -- | Import the geometry package with additional options. importGeometry :: LaTeXC l => [GeometryOption] -> l -- | Options of the geometry package. data GeometryOption GHeight :: Measure -> GeometryOption GWidth :: Measure -> GeometryOption GPaper :: PaperType -> GeometryOption GCentered :: GeometryOption GPaperHeight :: Measure -> GeometryOption GPaperWidth :: Measure -> GeometryOption GLandscape :: Bool -> GeometryOption -- | Apply the given geometry options to the document. applyGeometry :: LaTeXC l => [GeometryOption] -> l instance GHC.Show.Show Text.LaTeX.Packages.Geometry.GeometryOption instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Geometry.GeometryOption -- | This module allows you to use the LaTeX graphicx library in -- order to insert graphics in a document and perform some -- transformations. -- -- CTAN page for graphicx: http://ctan.org/pkg/graphicx. module Text.LaTeX.Packages.Graphicx -- | The graphicx package. -- --
--   usepackage [] graphicx
--   
graphicx :: PackageName -- | Package option of the graphicx package. dvips :: LaTeXC l => l -- | Package option of the graphicx package. dvipdfm :: LaTeXC l => l -- | Package option of the graphicx package. pdftex :: LaTeXC l => l -- | Include Graphics Option. These options can be passed as arguments to -- the includegraphics function. data IGOption -- | Specify the preferred width of the imported image. IGWidth :: Measure -> IGOption -- | Specify the preferred height of the imported image. IGHeight :: Measure -> IGOption -- | When True, it will scale the image according to both -- IGWidth and IGHeight , but will not distort the image, -- so that neither IGWidth nor IGHeight are exceeded. KeepAspectRatio :: Bool -> IGOption -- | Scales the image by the desired scale factor. IGScale :: Float -> IGOption -- | Rotate the image by given degrees. IGAngle :: Int -> IGOption -- | This option will crop the imported image. Arguments are from-left , -- from-bottom, from-right and from-top respectively. IGTrim :: Measure -> Measure -> Measure -> Measure -> IGOption -- | For the IGTrim option to work, you must set IGClip to -- True. IGClip :: Bool -> IGOption -- | If the image file is a pdf file with multiple pages, this parameter -- allows you to use a different page than the first. IGPage :: Int -> IGOption -- | Include an image in the document. includegraphics :: LaTeXC l => [IGOption] -> FilePath -> l -- | Rotate the content by the given angle in degrees. rotatebox :: LaTeXC l => Float -> l -> l -- | Scale the content by the given factor. If only the horizontal scale is -- supplied, the vertical scaling will be the same. scalebox :: LaTeXC l => Float -> Maybe Float -> l -> l -- | Reflect horizontally the content. reflectbox :: LaTeXC l => l -> l -- | Resize the content to match the given dimensions. resizebox :: LaTeXC l => Measure -> Measure -> l -> l instance GHC.Show.Show Text.LaTeX.Packages.Graphicx.IGOption instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Graphicx.IGOption module Text.LaTeX.Packages.Hyperref -- | The hyperref package. -- --
--   usepackage [] hyperref
--   
hyperref :: PackageName data HRefOption PDFRemoteStartView :: HRefOption PDFNewWindow :: HRefOption HRefPage :: Int -> HRefOption data URL createURL :: String -> URL -- | Reference to an URL. href :: LaTeXC l => [HRefOption] -> URL -> l -> l -- | Write an URL hyperlinked. url :: LaTeXC l => URL -> l -- | Write an URL without creating a hyperlink. nolinkurl :: LaTeXC l => URL -> l -- | Establish a base URL. hyperbaseurl :: LaTeXC l => URL -> l -- | hyperimage imgURL t: The link to the image referenced by the -- imgURL is inserted, using t as the anchor. hyperimage :: LaTeXC l => URL -> l -> l -- | This is a replacement for the usual ref command that places a -- contextual label in front of the reference. autoref :: LaTeXC l => Label -> l -- | Similar to autoref, but inserts text corresponding to the -- section name. Note that this command comes from the nameref -- package, but it's automatically included when importing -- hyperref. nameref :: LaTeXC l => Label -> l -- | This package option selects the pdfTeX backend for the Hyperref -- package. pdftex :: LaTeXC l => l -- | This package option sets the document information Title field. pdftitle :: LaTeXC l => l -> l -- | This package option sets the document information Author field. pdfauthor :: LaTeXC l => l -> l -- | This package option sets the document information Subject field. pdfsubject :: LaTeXC l => l -> l -- | This package option sets the document information Creator field. pdfcreator :: LaTeXC l => l -> l -- | This package option sets the document information Producer field. pdfproducer :: LaTeXC l => l -> l -- | This package option sets the document information Keywords field. pdfkeywords :: LaTeXC l => l -> l -- | This package option sets the document information Trapped entry. An -- Nothing value means, the entry is not set. pdftrapped :: LaTeXC l => Maybe Bool -> l -- | This package option determines on which page the PDF file is opened. pdfstartpage :: LaTeXC l => l -> l -- | This package option sets the layout of PDF pages. pdfpagelayout :: LaTeXC l => PdfPageLayout -> l -- | Specification for how pages of a PDF should be displayed. data PdfPageLayout -- | Displays a single page; advancing flips the page. SinglePage :: PdfPageLayout -- | Displays a single page; advancing flips the page. OneColumn :: PdfPageLayout -- | Displays the document in two columns, odd-numbered pages to the left. TwoColumnLeft :: PdfPageLayout -- | Displays the document in two columns, odd-numbered pages to the right. TwoColumnRight :: PdfPageLayout -- | Displays two pages, odd-numbered pages to the left (since PDF 1.5). TwoPageLeft :: PdfPageLayout -- | Displays two pages, odd-numbered pages to the right (since PDF 1.5). TwoPageRight :: PdfPageLayout instance GHC.Show.Show Text.LaTeX.Packages.Hyperref.HRefOption instance GHC.Show.Show Text.LaTeX.Packages.Hyperref.URL instance GHC.Show.Show Text.LaTeX.Packages.Hyperref.PdfPageLayout instance GHC.Read.Read Text.LaTeX.Packages.Hyperref.PdfPageLayout instance GHC.Classes.Ord Text.LaTeX.Packages.Hyperref.PdfPageLayout instance GHC.Classes.Eq Text.LaTeX.Packages.Hyperref.PdfPageLayout instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Hyperref.URL instance Data.String.IsString Text.LaTeX.Packages.Hyperref.URL instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Hyperref.HRefOption -- | This package is of vital importance if you use non-ASCII characters in -- your document. For example, if you type the word Ángela, the -- Á character will not appear correctly in the output. To solve -- this problem, use: -- --
--   usepackage [utf8] inputenc
--   
-- -- And make sure that your Haskell source is encoded in UTF-8. module Text.LaTeX.Packages.Inputenc -- | Inputenc package. Example: -- --
--   usepackage [utf8] inputenc
--   
inputenc :: PackageName -- | UTF-8 encoding. utf8 :: LaTeXC l => l -- | Latin-1 encoding. latin1 :: LaTeXC l => l module Text.LaTeX.Packages.LongTable -- | longtable package. Use it to import it like this: -- --
--   usepackage [] longtable
--   
longtablep :: PackageName -- | The longtable environment can be used to typeset multi-page -- tables. longtable :: LaTeXC l => Maybe Pos -> [TableSpec] -> l -> l -- | End the first head. -- -- Everything above this command will appear at the beginning of the -- table, in the first page. endfirsthead :: LaTeXC l => l -- | End the head. -- -- Whatever you put before this command and below endfirsthead will be -- displayed at the top of the table in every page except the first one. endhead :: LaTeXC l => l -- | End the foot. -- -- Similar to endhead, what you put after endhead and before this command -- will appear at the bottom of the table in every page except the last -- one. endfoot :: LaTeXC l => l -- | End the last foot. -- -- Similar to endfisthead. The elements after endfoot and before this -- command will be displayed at the bottom of the table but only in the -- last page where the table appears. endlastfoot :: LaTeXC l => l module Text.LaTeX.Packages.Lscape -- | lscape package. Use it to import it like this: -- --
--   usepackage [] lscape
--   
lscape :: PackageName -- | All text within the landscape environment is rotated through 90 -- degrees. The environment may span several pages. It works well with, -- and was originally created for, use with longtable to produce -- long wide tables. landscape :: LaTeXC l => l -> l -- | This package option makes lscape rotate the PDF paper – not -- just the text on the page – when given the pdftex option. -- (Naturally, this works only with pdfLaTeX.) The result is that the -- text is viewable online without the reader having to rotate his/her -- head 90 degrees. The document still prints normally. pdftex :: LaTeXC l => l -- | An extension to the standard LaTeX tabular environment which provides -- a construction for table cells that span more than one row of the -- table. module Text.LaTeX.Packages.Multirow -- | multirow package. Use it to import it like this: -- --
--   usepackage [] multirow
--   
multirowp :: PackageName -- | Type of bigstruts count. It is mainly used if you’ve used the bigstrut -- package. It is the total number of uses of bigstruts within rows being -- spanned in a multirow. data BigStrutsCount -- | Normal bigstruts BigStruts :: Int -> BigStrutsCount -- | Bigstruts in the top row BigStrutsTop :: Int -> BigStrutsCount -- | Bigstruts in the bottom row BigStrutsBottom :: Int -> BigStrutsCount -- | Bigstruts in the top and bottom rows BigStrutsTopBottom :: Int -> BigStrutsCount -- | multirow sets a piece of text in a tabular or similar -- environment, spanning multiple rows. multirow :: LaTeXC l => Maybe Pos -> Double -> Maybe BigStrutsCount -> Measure -> Maybe Measure -> l -> l instance GHC.Show.Show Text.LaTeX.Packages.Multirow.BigStrutsCount instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.Multirow.BigStrutsCount module Text.LaTeX.Packages.QRCode -- | qrcode package. Use it to import it like this: -- --
--   usepackage [] qrcode
--   
qrcode :: PackageName -- | The degree of error-correction redundancy to include in the generated -- code. data ErrorLevel -- | Error recovery up to 7%. Low :: ErrorLevel -- | Error recovery up to 15%. Medium :: ErrorLevel -- | Error recovery up to 25%. Quality :: ErrorLevel -- | Error recovery up to 30%. High :: ErrorLevel -- | Options to use when generating a QR code. data CodeOptions CodeOptions :: Bool -> Bool -> ErrorLevel -> CodeOptions -- | Whether to include 4 modules of whitespace around the code. False is -- the default. [includePadding] :: CodeOptions -> Bool -- | Whether, if the code encodes a link, it should be hyperlinked in the -- PDF document. The default is true. Links will only be generated when -- the document uses the hyperref package. [link] :: CodeOptions -> Bool -- | The desired degree of error-correction redundancy to include in the -- code. The default is Medium. [errorLevel] :: CodeOptions -> ErrorLevel -- | The default QR code generation options. defaultOptions :: CodeOptions -- | Generates a QR code with specified options and content. -- -- This uses the qrcode command from the package, but the identifier -- qrcode is already in use as the PackageName. qr :: LaTeXC l => CodeOptions -> Text -> l -- | This package option sets the qrcode package to generate draft-quality -- placeholders for QR codes. draft :: LaTeXC l => l -- | This package option (which is the default) sets the qrcode package to -- generate print-quality QR codes. final :: LaTeXC l => l instance GHC.Show.Show Text.LaTeX.Packages.QRCode.ErrorLevel instance GHC.Read.Read Text.LaTeX.Packages.QRCode.ErrorLevel instance GHC.Classes.Ord Text.LaTeX.Packages.QRCode.ErrorLevel instance GHC.Classes.Eq Text.LaTeX.Packages.QRCode.ErrorLevel instance GHC.Show.Show Text.LaTeX.Packages.QRCode.CodeOptions instance GHC.Classes.Eq Text.LaTeX.Packages.QRCode.CodeOptions -- | The relsize package is used to set the font size relative to -- the current size. -- -- CTAN page for relsize: http://ctan.org/pkg/relsize. module Text.LaTeX.Packages.Relsize -- | The prelsize package. Example: -- --
--   usepackage [] prelsize
--   
prelsize :: ClassName -- | Change font size by i steps. A step is a number of 'magsteps' -- to change size; from this are defined commands 'larger', 'smaller', -- 'textlarger', etc. relsize :: LaTeXC l => Int -> l -- | Increase font size by (optional) i steps (default 1). larger :: LaTeXC l => Maybe Int -> l -- | Reduce font size by i steps (default 1). smaller :: LaTeXC l => Maybe Int -> l -- | Change font size by scale factor f. relscale :: LaTeXC l => Float -> l -- | Text size enlarged by (optional) i steps. textlarger :: LaTeXC l => Maybe Int -> l -> l -- | Text size reduced by (optional) i steps. textsmaller :: LaTeXC l => Maybe Int -> l -> l -- | Text size scaled by factor f. textscale :: LaTeXC l => Float -> l -> l module Text.LaTeX.Packages.TabularX -- | tabularx package. Use it to import it like this: -- --
--   usepackage [] tabularxp
--   
tabularxp :: PackageName -- | The tabularx environment takes the same arguments as tabular*, -- but modifies the widths of certain columns, rather than the inter -- column space, to set a table with the requested total width. The -- columns that may stretch are marked with the new token X in the -- preamble argument. tabularx :: LaTeXC l => Measure -> Maybe Pos -> [TableSpec] -> l -> l module Text.LaTeX.Packages.LTableX -- | ltablex package. Use it to import it like this: -- --
--   usepackage [] ltablex
--   
ltablex :: PackageName keepXColumns :: LaTeXC l => l -- | Treet the specified width as the maximum allowed, not the exact width -- of the table. -- -- ltablex has added a feature that treats the X columns like ‘l’ columns -- if the table contents would allow that to happen without exceeding the -- specified width of the table. In other words, the specified width is -- treated as the maximum allowed and not the exact width of the table. -- This feature is the default but can be disabled (or enabled) with -- keepXColumns (or convertXColumns). convertXColumns :: LaTeXC l => l -- | The tabularx environment takes the same arguments as tabular*, -- but modifies the widths of certain columns, rather than the inter -- column space, to set a table with the requested total width. The -- columns that may stretch are marked with the new token X in the -- preamble argument. tabularx :: LaTeXC l => Measure -> Maybe Pos -> [TableSpec] -> l -> l -- | End the first head. -- -- Everything above this command will appear at the beginning of the -- table, in the first page. endfirsthead :: LaTeXC l => l -- | End the head. -- -- Whatever you put before this command and below endfirsthead will be -- displayed at the top of the table in every page except the first one. endhead :: LaTeXC l => l -- | End the foot. -- -- Similar to endhead, what you put after endhead and before this command -- will appear at the bottom of the table in every page except the last -- one. endfoot :: LaTeXC l => l -- | End the last foot. -- -- Similar to endfisthead. The elements after endfoot and before this -- command will be displayed at the bottom of the table but only in the -- last page where the table appears. endlastfoot :: LaTeXC l => l -- | This module defines the syntax of a TikZ script. -- -- To generate a TikZ script, first create a TPath using -- data constructors, or alternatively, use a PathBuilder from -- the Text.LaTeX.Packages.TikZ.PathBuilder module. -- -- Once a TPath is created, use path to render a picture -- from it. Use scope to apply some parameters to your picture, -- such line width or color. module Text.LaTeX.Packages.TikZ.Syntax -- | A point in TikZ. data TPoint -- | Point using Measures for coordinantes. pointAt :: Measure -> Measure -> TPoint -- | Point using numbers as coordinates. pointAtXY :: Double -> Double -> TPoint -- | Three-dimensional point. pointAtXYZ :: Double -> Double -> Double -> TPoint -- | Makes a point relative to the previous. relPoint :: TPoint -> TPoint relPoint_ :: TPoint -> TPoint -- | Type for TikZ paths. Every TPath has two fundamental points: -- the starting point and the last point. The starting -- point is set using the Start constructor. The last point then -- is modified by the other constructors. Below a explanation of each one -- of them. Note that both starting point and last point may coincide. -- You can use the functions startingPoint and lastPoint to -- calculate them. After creating a TPath, use path to do -- something useful with it. data TPath -- | Let y = Start p. -- -- Operation: Set the starting point of a path. -- -- Last point: The last point of y is p. Start :: TPoint -> TPath -- | Let y = Cycle x. -- -- Operation: Close a path with a line from the last point of -- x to the starting point of x. -- -- Last point: The last point of y is the starting point -- of x. Cycle :: TPath -> TPath -- | Let y = Line x p. -- -- Operation: Extend the current path from the last point of -- x in a straight line to p. -- -- Last point: The last point of y is p. Line :: TPath -> TPoint -> TPath -- | Let y = Rectangle x p. -- -- Operation: Define a rectangle using the last point of -- x as one corner and p as the another corner. -- -- Last point: The last point of y is p. Rectangle :: TPath -> TPoint -> TPath -- | Let y = Circle x r. -- -- Operation: Define a circle with center at the last point of x -- and radius r. -- -- Last point: The last point of y is the same as the -- last point of x. Circle :: TPath -> Double -> TPath -- | Let y = Ellipse x r1 r2. -- -- Operation: Define a ellipse with center at the last point of -- x, width the double of r1 and height the double of -- r2. -- -- Last point: The last point of y is the same as the -- last point of x. Ellipse :: TPath -> Double -> Double -> TPath Grid :: TPath -> [GridOption] -> TPoint -> TPath -- | Let y = Node x l. -- -- Operation: Set a text centered at the last point of x. -- -- Last point: The last point of y is the same as the -- last point of x. Node :: TPath -> LaTeX -> TPath newtype GridOption GridStep :: Step -> GridOption data Step DimStep :: Measure -> Step XYStep :: Double -> Step PointStep :: TPoint -> Step -- | Calculate the starting point of a TPath. startingPoint :: TPath -> TPoint -- | Calculate the last point of a TPath. lastPoint :: TPath -> TPoint -- | Alias of Line. (->-) :: TPath -> TPoint -> TPath -- | Parameters to use in a scope to change how things are rendered -- within that scope. data Parameter TWidth :: Measure -> Parameter TColor :: TikZColor -> Parameter TScale :: Double -> Parameter -- | Angle is in degrees. TRotate :: Double -> Parameter -- | Color models accepted by TikZ. data TikZColor BasicColor :: Color -> TikZColor RGBColor :: Word8 -> Word8 -> Word8 -> TikZColor -- | Basic colors. data Color Red :: Color Green :: Color Blue :: Color Yellow :: Color Cyan :: Color Magenta :: Color Black :: Color White :: Color -- | 8-bit unsigned integer type data Word8 -- | A TikZ script. data TikZ -- | Just an empty script. emptytikz :: TikZ -- | A path can be used in different ways. -- -- -- -- It is possible to stack different effects in the list. -- -- Example of usage: -- --
--   path [Draw] $ Start (pointAtXY 0 0) ->- pointAtXY 1 1
--   
-- -- Most common usages are exported as functions. See draw, -- fill, clip, shade, filldraw and -- shadedraw. path :: [ActionType] -> TPath -> TikZ -- | Applies a scope to a TikZ script. scope :: [Parameter] -> TikZ -> TikZ -- | Different types of actions that can be performed with a TPath. -- See path for more information. data ActionType Draw :: ActionType Fill :: ActionType Clip :: ActionType Shade :: ActionType -- | Sequence two TikZ scripts. (->>) :: TikZ -> TikZ -> TikZ -- | Equivalent to path [Draw]. draw :: TPath -> TikZ -- | Equivalent to path [Fill]. fill :: TPath -> TikZ -- | Equivalent to path [Clip]. clip :: TPath -> TikZ -- | Equivalent to path [Shade]. shade :: TPath -> TikZ -- | Equivalent to path [Fill,Draw]. filldraw :: TPath -> TikZ -- | Equivalent to path [Shade,Draw]. shadedraw :: TPath -> TikZ instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.TPoint instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.Step instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.GridOption instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.TPath instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.TikZColor instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.Parameter instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.ActionType instance GHC.Show.Show Text.LaTeX.Packages.TikZ.Syntax.TikZ instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.TikZ instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.ActionType instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.Parameter instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.TikZColor instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.TPath instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.GridOption instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.Step instance Text.LaTeX.Base.Render.Render Text.LaTeX.Packages.TikZ.Syntax.TPoint -- | This module provides a monadic interface to build TPath values. -- It does so using PathBuilders. The construction of a -- PathBuilder is equivalent to the construction of a TPath -- by hand, but with a sometimes more convenient syntax. -- -- For example, this path corresponds to a triangle: -- --
--   trianglePath :: TPath
--   trianglePath = bpath (pointAtXY (-1) 0) $ do
--      line $ pointAtXY 1 0
--      line $ pointAtXY 0 1
--      pcycle
--   
-- -- The equivalent syntax created by hand would be: -- --
--   trianglePath :: TPath
--   trianglePath = Cycle $ Start (pointAtXY (-1) 0) ->- pointAtXY 1 0 ->- pointAtXY 0 1
--   
-- -- The Cycle constructor at the beginning may seem unintuitive, -- since we are building the path from left to right. In the -- PathBuilder monad, the instructions are always written in -- order. module Text.LaTeX.Packages.TikZ.PathBuilder -- | Use a path builder to construct a value of type TPath. -- Use bpath for this purpose. data PathBuilder a -- | Build a path using a starting point and a PathBuilder. bpath :: TPoint -> PathBuilder a -> TPath -- | Line from the current point to the given one. line :: TPoint -> PathBuilder () pcycle :: PathBuilder () -- | Rectangle with the current point as one cornder and the given point as -- the opposite corner. rectangle :: TPoint -> PathBuilder () -- | Circle with the given radius centered at the current point. circle :: Double -> PathBuilder () -- | Ellipse with width and height described by the arguments and centered -- at the current point. ellipse :: Double -> Double -> PathBuilder () -- | Text centered at the current point. node :: LaTeX -> PathBuilder () grid :: [GridOption] -> TPoint -> PathBuilder () instance GHC.Base.Functor Text.LaTeX.Packages.TikZ.PathBuilder.PathBuilder instance GHC.Base.Applicative Text.LaTeX.Packages.TikZ.PathBuilder.PathBuilder instance GHC.Base.Monad Text.LaTeX.Packages.TikZ.PathBuilder.PathBuilder -- | TikZ ist kein Zeichenprogramm. -- -- TikZ is a frontend for PGF (Portable Graphics Format), a -- package for creating graphics using scripts embedded in a LaTeX -- document. -- -- Using this library you will be able to generate TikZ scripts -- using Haskell functions. -- -- The interface given here is pretty close to the original TikZ -- interface. Another layer of abstraction is given in -- Text.LaTeX.Packages.TikZ.Simple, module built from the entities -- exported here. Usually, one chooses one of the interfaces and work -- with it. However, if you want to use both of them, you will have to -- use qualified imports or you will get name clashes. -- -- Also, the module exported here, -- Text.LaTeX.Packages.TikZ.PathBuilder, provides an interface to -- create paths (see TPath) using monads. -- -- Once you have generated a TikZ script, use tikzpicture -- to include it in a LaTeX document. module Text.LaTeX.Packages.TikZ -- | Import the tikz package to use the functions exported by this -- module. For example, adding this line to your document preamble: -- --
--   usepackage [] tikz
--   
tikz :: PackageName -- | Transform a TikZ script to a LaTeX block. tikzpicture :: LaTeXC l => TikZ -> l -- | A simple interface to create TikZ graphics. Just build pictures -- using the Figure data constructors, and get the TikZ -- script using the function figuretikz. Use the function -- tikzpicture to insert the TikZ script in the LaTeX -- document. And do not forget to import the tikz package in the -- preamble. -- -- Please, note that this module is not intended to be imported in the -- same module than Text.LaTeX.Packages.TikZ. This module is itself a -- self-contained alternative of that module. If you still want to -- use both modules, please, use qualified imports to avoid name clashes. -- -- In the Examples directory of the source distribution, the file -- tikzsimple.hs contains a complete example of usage of this -- module with several pictures. Below you can see a picture along with -- the code it came from. -- -- --
--   myFigure :: Figure
--   myFigure = Scale 2 $ Figures
--     [ RectangleFilled (0,0) 1 1
--     , Colored (BasicColor Green) $ RectangleFilled (-1,1) 1 1
--     , Colored (BasicColor Red)   $ RectangleFilled ( 0,2) 1 1
--     , Colored (BasicColor Blue)  $ RectangleFilled ( 1,1) 1 1
--       ]
--   
module Text.LaTeX.Packages.TikZ.Simple -- | Import the tikz package to use the functions exported by this -- module. For example, adding this line to your document preamble: -- --
--   usepackage [] tikz
--   
tikz :: PackageName -- | A figure in the plane. data Figure -- | Line along a list of points. Line :: [Point] -> Figure -- | Line along a list of points, but the last point will be joined with -- the first one. Polygon :: [Point] -> Figure -- | Same as Polygon, but the inner side will be filled with color. PolygonFilled :: [Point] -> Figure -- | Rectangle with top-right corner at the given point and width and -- height given by the other parameters. Rectangle :: Point -> Double -> Double -> Figure -- | Same as Rectangle, but filled with color. RectangleFilled :: Point -> Double -> Double -> Figure -- | Circle centered at the given point with the given radius. Circle :: Point -> Double -> Figure -- | As in Circle, but it will be filled with some color. CircleFilled :: Point -> Double -> Figure -- | Ellipse centered at the given point with width and height given by the -- other parameters. Ellipse :: Point -> Double -> Double -> Figure -- | Same as Ellipse, but filled with some color. EllipseFilled :: Point -> Double -> Double -> Figure -- | Insert some LaTeX code, centered at the given Point. The -- text should not be very complex to fit nicely in the picture. Text :: Point -> LaTeX -> Figure -- | Color for the given Figure. Colored :: TikZColor -> Figure -> Figure -- | Line width for the given Figure. LineWidth :: Measure -> Figure -> Figure -- | Scaling of the given Figure by a factor. Scale :: Double -> Figure -> Figure -- | Rotate a Figure by a given angle (in radians). Rotate :: Double -> Figure -> Figure -- | A figure composed by a list of figures. Figures :: [Figure] -> Figure -- | A point in the plane. type Point = (Double, Double) -- | Color models accepted by TikZ. data TikZColor BasicColor :: Color -> TikZColor RGBColor :: Word8 -> Word8 -> Word8 -> TikZColor -- | Basic colors. data Color Red :: Color Green :: Color Blue :: Color Yellow :: Color Cyan :: Color Magenta :: Color Black :: Color White :: Color -- | 8-bit unsigned integer type data Word8 -- | The figure of a path. A path (in this context) means a -- function from an interval to the plane. The image of such a function -- is what this function returns as a Figure. An additional -- argument is needed to set the precision of the curve. -- -- The actual implementation builds a spline of degree one joining -- different points of the image. Given that the interval is (a,b) -- and the precision argument is ε, the points in the spline will be -- f(a), f(a+ε), f(a+2ε), and so on, -- until reaching f(b). The smaller is ε, the closer is the figure -- to the original image. -- -- Here is an example with a logarithmic spiral. -- -- --
--   spiral :: Figure
--   spiral = LineWidth (Pt 2) $
--       pathImage 0.01 (0,4) $
--         \t -> ( a * exp t * cos (b*t)
--               , a * exp t * sin (b*t)
--                 )
--     where
--       a = 0.1 ; b = 4
--   
pathImage :: Double -> (Double, Double) -> (Double -> Point) -> Figure -- | Translate a Figure to a TikZ script. figuretikz :: Figure -> TikZ -- | Sequence two TikZ scripts. (->>) :: TikZ -> TikZ -> TikZ -- | Transform a TikZ script to a LaTeX block. tikzpicture :: LaTeXC l => TikZ -> l -- | Tree definition with some class instances. module Text.LaTeX.Packages.Trees -- | Tree datatype. data Tree a -- | Leafs are non-empty. Leaf :: a -> Tree a -- | Node values are optional. Node :: Maybe a -> [Tree a] -> Tree a instance GHC.Base.Functor Text.LaTeX.Packages.Trees.Tree instance Data.Foldable.Foldable Text.LaTeX.Packages.Trees.Tree instance Data.Traversable.Traversable Text.LaTeX.Packages.Trees.Tree -- | Tree interface using the qtree package. An example of usage -- is provided in the examples directory of the source -- distribution. module Text.LaTeX.Packages.Trees.Qtree -- | The qtree package. qtree :: PackageName -- | Given a function to LaTeX values, you can create a -- LaTeX tree from a Haskell tree. The function specifies how to -- render the node values. tree :: LaTeXC l => (a -> l) -> Tree a -> l -- | This function works as tree, but use render as rendering -- function. rendertree :: (Render a, LaTeXC l) => Tree a -> l instance Text.LaTeX.Base.Texy.Texy a => Text.LaTeX.Base.Texy.Texy (Text.LaTeX.Packages.Trees.Tree a)