TeX-my-math-0.201.1.0: Render general Haskell math to LaTeX. Or: math typesetting with high signal-to-noise–ratio.

Copyright(c) Justus Sagemüller 2017
LicenseGPL v3
Maintainer(@) jsagemue $ uni-koeln.de
Stabilityexperimental
Portabilityrequires GHC>7 extensions
Safe HaskellNone
LanguageHaskell2010

Math.LaTeX.Prelude

Contents

Description

 

Synopsis

Use in documents

toMathLaTeX :: forall σ l. (LaTeXC l, Num l, SymbolClass σ, SCConstraint σ l) => CAS (Infix l) (Encapsulation l) (SymbolD σ l) -> l Source #

(>$) :: (LaTeXC r, SymbolClass σ, SCConstraint σ LaTeX) => r -> CAS (Infix LaTeX) (Encapsulation LaTeX) (SymbolD σ LaTeX) -> r infixl 1 Source #

dmaths Source #

Arguments

:: (LaTeXC r, SymbolClass σ, SCConstraint σ LaTeX) 
=> [[CAS (Infix LaTeX) (Encapsulation LaTeX) (SymbolD σ LaTeX)]]

Equations to show.

-> String

“Terminator” – this can include punctuation (when an equation is at the end of a sentence in the preceding text).

-> r 

Include a formula / equation system as a LaTeX display. If it's a single equation, automatic line breaks are inserted (requires the breqn LaTeX package).

maths Source #

Arguments

:: (LaTeXC r, SymbolClass σ, SCConstraint σ LaTeX) 
=> [[CAS (Infix LaTeX) (Encapsulation LaTeX) (SymbolD σ LaTeX)]]

Equations to show.

-> String

“Terminator” – this can include punctuation (when an equation is at the end of a sentence in the preceding text).

-> r 

Include a formula / equation system as a LaTeX display.

dcalculation Source #

Arguments

:: (LaTeXC (m ()), SymbolClass σ, SCConstraint σ LaTeX, Functor m) 
=> CAS (Infix LaTeX) (Encapsulation LaTeX) (SymbolD σ LaTeX)

Computation chain to display.

-> String

“Terminator” – this can include punctuation (when an equation is at the end of a sentence in the preceding text).

-> m (CAS (Infix LaTeX) (Encapsulation LaTeX) (SymbolD σ LaTeX))

Yield the rightmost expression in the displayed computation (i.e. usually the final result in a chain of algebraic equalities).

Display an equation and also extract the final result. As with dmaths, automatic line breaks are inserted by breqn.

Primitive symbols

Modifiers

(%$>) :: (SymbolClass σ, SCConstraint σ c) => (c -> c') -> CAS' γ s² s¹ (SymbolD σ c) -> CAS' γ s² s¹ (SymbolD σ c') infixl 4 #

Transform the symbols of an expression, in their underlying representation.

(map succ%$> 𝑎+𝑝) * 𝑥  ≡  (𝑏+𝑞) * 𝑥

prime :: LaTeXC l => l -> l Source #

bar :: LaTeXC l => l -> l #

Add a bar accent above a symbol.

hat :: LaTeXC l => l -> l #

Add a hat accent above a symbol.

vec :: LaTeXC l => l -> l #

Add a vector arrow accent above a symbol.

underline :: LaTeXC l => l -> l #

tilde :: LaTeXC l => l -> l #

Add a tilde accent above a symbol.

Operators

(°) :: MathsInfix infixl 7 Source #

(⁀) :: MathsInfix infixr 9 Source #

(...) :: MathsInfix infixr 0 Source #

(،) :: MathsInfix infixr 0 Source #

(␣) :: MathsInfix infixr 0 Source #

(×) :: MathsInfix infixl 7 Source #

(⊗) :: MathsInfix infixl 7 Source #

(∘) :: MathsInfix infixl 7 Source #

factorial :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

(◝) :: MathsInfix infixr 9 Source #

(◞) :: MathsInfix infixr 9 Source #

(◞◝) :: LaTeXC s => CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s) -> (CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s), CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s)) -> CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s) infixl 8 Source #

(|◝) :: LaTeXC s => CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s) -> CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s) -> CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s) infixl 8 Source #

(|◞◝) :: LaTeXC s => CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s) -> (CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s), CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s)) -> CAS' γ (Infix s) (Encapsulation s) (SymbolD σ s) infixl 8 Source #

(⩵) :: MathsInfix infixl 4 Source #

(≡) :: MathsInfix infixl 4 Source #

(≠) :: MathsInfix infixl 4 Source #

(⪡) :: MathsInfix infixl 4 Source #

(⪢) :: MathsInfix infixl 4 Source #

(≤) :: MathsInfix infixl 4 Source #

(≥) :: MathsInfix infixl 4 Source #

(≪) :: MathsInfix infixl 4 Source #

(≫) :: MathsInfix infixl 4 Source #

(≈) :: MathsInfix infixl 4 Source #

(∼) :: MathsInfix infixl 4 Source #

(⊂) :: MathsInfix infixl 4 Source #

(⊆) :: MathsInfix infixl 4 Source #

(⊃) :: MathsInfix infixl 4 Source #

(⊇) :: MathsInfix infixl 4 Source #

(∋) :: MathsInfix infixl 4 Source #

(∌) :: MathsInfix infixl 4 Source #

(∈) :: MathsInfix infixl 4 Source #

(∉) :: MathsInfix infixl 4 Source #

(∩) :: MathsInfix infixr 3 Source #

(∪) :: MathsInfix infixr 2 Source #

(-\-) :: MathsInfix infixl 2 Source #

(⸪) :: MathsInfix infixr 5 Source #

(⊕) :: MathsInfix infixl 6 Source #

(↦) :: MathsInfix infixl 4 Source #

(↪) :: MathsInfix infixr 5 Source #

(==>) :: MathsInfix infixl 1 Source #

(<==) :: MathsInfix infixl 1 Source #

(<=>) :: MathsInfix infixl 1 Source #

(∧) :: MathsInfix infixr 3 Source #

(∨) :: MathsInfix infixr 3 Source #

(∫) :: LaTeXC l => (CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l), CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l)) -> Integrand γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) infixr 8 Source #

(◞∫) :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> Integrand γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) infixr 8 Source #

(◞∮) :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> Integrand γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) infixr 8 Source #

d :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) s⁰ -> CAS' γ (Infix l) (Encapsulation l) s⁰ -> Integrand γ (Infix l) (Encapsulation l) s⁰ Source #

(∑) :: LaTeXC l => (CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l), CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l)) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) infixr 8 Source #

(◞∑) :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) infixr 8 Source #

(∏) :: LaTeXC l => (CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l), CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l)) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) infixr 8 Source #

(◞∏) :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) infixr 8 Source #

del :: (SymbolClass σ, SCConstraint σ LaTeX) => CAS' γ s² s¹ (SymbolD σ LaTeX) Source #

nabla :: (SymbolClass σ, SCConstraint σ LaTeX) => CAS' γ s² s¹ (SymbolD σ LaTeX) Source #

(±) :: MathsInfix infixl 6 Source #

(∓) :: MathsInfix infixl 6 Source #

set :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

tup :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

intv :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

infty :: (SymbolClass σ, SCConstraint σ LaTeX) => CAS' γ s² s¹ (SymbolD σ LaTeX) Source #

norm :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

nobreaks :: LaTeXC l => CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

matrix :: LaTeXC l => [[CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l)]] -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

cases :: LaTeXC l => [(CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l), LaTeX)] -> CAS' γ (Infix l) (Encapsulation l) (SymbolD σ l) Source #

Algebraic manipulation

(&~~!) :: (Eq l, Eq (Encapsulation l), SymbolClass σ, SCConstraint σ l, Show (AlgebraExpr σ l), Show (AlgebraPattern σ l)) => AlgebraExpr σ l -> [AlgebraPattern σ l] -> AlgebraExpr σ l infixl 1 #

Apply a sequence of pattern-transformations and yield the result concatenated to the original via the corresponding chain-operator. Because only the rightmost expression in a chain is processed, this can be iterated, giving a chain of intermediate results.

If one of the patterns does not match, this manipulator will raise an error.

(&~~:) :: (Eq l, Eq (Encapsulation l), SymbolClass σ, SCConstraint σ l, Show (AlgebraExpr σ l), Show (AlgebraPattern σ l)) => AlgebraExpr σ l -> [AlgebraPattern σ l] -> AlgebraExpr σ l infixl 1 #

Apply a sequence of pattern-transformations, each in every spot possible, and yield the result concatenated to the original via the corresponding chain-operator. Because only the rightmost expression in a chain is processed, this can be iterated, giving a chain of intermediate results.

continueExpr #

Arguments

:: (Eq l, Monoid l) 
=> (AlgebraExpr' γ σ l -> AlgebraExpr' γ σ l -> AlgebraExpr' γ σ l)

Combinator to use for chaining the new expression to the old ones

-> (AlgebraExpr' γ σ l -> AlgebraExpr' γ σ l)

Transformation to apply to the rightmost expression in the previous chain

-> AlgebraExpr' γ σ l

Transformation which appends the result.

-> AlgebraExpr' γ σ l 

(&) :: a -> (a -> b) -> b #

(&~:) :: (Eq s⁰, Eq s¹, Eq s²) => CAS s² s¹ s⁰ -> Eqspattern s² s¹ s⁰ -> CAS s² s¹ s⁰ infixl 1 #

expr &~: pat :=: rep replaces every occurence of pat within expr with rep.

For example, 𝑎·𝑏𝑐·𝑑 &~: · :=: ㄘ·ㄅ yields 𝑏·𝑎 − 𝑑·𝑐.

(&~?) :: (Eq s⁰, Eq s¹, Eq s²) => CAS s² s¹ s⁰ -> Eqspattern s² s¹ s⁰ -> [CAS s² s¹ s⁰] infixl 1 #

expr &~? pat :=: rep gives every possible way pat can be replaced exactly once within expr.

For example, 𝑎·𝑏𝑐·𝑑 &~? · :=: ㄘ·ㄅ yields [𝑏·𝑎 − 𝑐·𝑑, 𝑎·𝑏 − 𝑑·𝑐].

(&~!) :: (Eq s⁰, Eq s¹, Eq s², Show (CAS s² s¹ s⁰), Show (CAS' GapId s² s¹ s⁰)) => CAS s² s¹ s⁰ -> Eqspattern s² s¹ s⁰ -> CAS s² s¹ s⁰ infixl 1 #

expr &~! pat :=: rep replaces pat exactly once in expr. If this is not possible, an error is raised. If multiple occurences match, the leftmost is preferred.

(|->) :: CAS' γ s² s¹ s⁰ -> CAS' γ s² s¹ s⁰ -> Equality' γ s² s¹ s⁰ infix 2 Source #