Module Typography.Maths

module Maths: Maths

module type CustomT = sig .. end
Signature of a module extending the type math list into a type math list t with the necessary typeseting machinery.
module type Custom = sig .. end
Signature of a module containing only one element of type u C.t, for a module C : CustomT.
type math = 
| Ordinary of nucleus node
| Glue of Box.drawingBox
| Env of (Document.environment -> Document.environment)
| Scope of (Document.environment -> Document.Mathematical.style -> math list)
| Binary of binary
| Fraction of fraction
| Operator of operator
| Decoration of (Document.environment ->
Document.Mathematical.style -> Box.box list -> Box.box list)
* math list
| Custom of (module Maths.Custom with type u = math list)
type 'a node = {
   nucleus : 'a;
   subscript_left : math list;
   subscript_right : math list;
   superscript_left : math list;
   superscript_right : math list;
   super_left_same_script : bool;
   super_right_same_script : bool;
}
type nucleus = Document.environment -> Document.Mathematical.style -> Box.box list 
type nucleuses = nucleus list 
type binary_type = 
| Invisible (*
Regular binary symbol, the booleans remove spacing if true.
*)
| Normal of bool * nucleus node * bool
type binary = {
   bin_priority : int;
   bin_drawing : binary_type;
   bin_left : math list;
   bin_right : math list;
}
type fraction = {
   numerator : math list;
   denominator : math list;
   line : Document.environment -> Document.Mathematical.style -> RawContent.path_param;
}
type operator = {
   op_node : nucleuses node;
   op_limits : bool;
   op_left_contents : math list;
   op_right_contents : math list;
}
module Mk_Custom: 
functor (C : CustomT) -> sig .. end
Convenient functor to use the Custom constructor.
val debug_kerning : bool Pervasives.ref
val env_style : 'a array -> Document.Mathematical.style -> 'a
val node : 'a -> 'a node
val style : Document.Mathematical.style -> math
val fraction : math list -> math list -> math
val bin : int -> binary_type -> math list -> math list -> math
val bin_invisible : int -> math list -> math list -> math
val operator : bool ->
math list ->
nucleuses node -> math list -> math
val op_limits : math list ->
nucleuses node -> math list -> math
val op_nolimits : math list ->
nucleuses node -> math list -> math
val cramp : Document.Mathematical.style -> Document.Mathematical.style
val is_cramped : Document.Mathematical.style -> bool
val nonscript : Document.Mathematical.style -> bool
val scriptStyle : Document.Mathematical.style -> Document.Mathematical.style
val apply_head : ('a -> 'a) -> 'a list -> 'a list
val last : 'a list -> 'a
val set_style : Document.Mathematical.style ->
Document.environment list -> Document.environment list
val superStyle : Document.Mathematical.style ->
Document.environment list -> Document.environment list
val subStyle : Document.Mathematical.style ->
Document.environment list -> Document.environment list
val numeratorStyle : Document.Mathematical.style ->
Document.environment list -> Document.environment list
val denominatorStyle : Document.Mathematical.style ->
Document.environment list -> Document.environment list
val matrixStyle : Document.Mathematical.style ->
Document.environment list -> Document.environment list
val adjust_space : ?absolute:bool ->
Document.Mathematical.env ->
float -> float -> RawContent.raw list -> RawContent.raw list -> float
val line : 'a * 'b -> 'a * 'b -> 'a array * 'b array
val contents : Box.box -> string
type draw_env = {
   depth : int;
   prio : int;
}
val dincr : draw_env -> draw_env
val draw : Document.environment list -> math list -> Box.box list
val draw : Document.environment list -> math list -> Box.box list
val kdraw : Document.environment list -> math list -> Box.box list
val dist_boxes : Document.environment -> 'a -> Box.box list -> Box.box list -> float
val glyphs : string -> Document.environment -> Document.Mathematical.style -> Box.box list
val multi_glyphs : ('a -> 'b -> 'c) list -> 'a -> 'b -> 'c list
val change_fonts : Document.environment -> Fonts.font -> Document.environment
val symbol : ?name:string ->
Fonts.font ->
int list ->
Document.environment -> Document.Mathematical.style -> Box.box list
val open_close : (Document.environment -> Document.Mathematical.style -> Box.box list) list ->
(Document.environment -> Document.Mathematical.style -> Box.box list) list ->
Document.environment ->
Document.Mathematical.style -> Box.box list -> Box.box list
val sqrts : Fonts.glyph array Pervasives.ref
val make_sqrt : Document.environment ->
Document.Mathematical.style -> Box.box list -> Box.box list
val sqrt : math list -> math list
val math_env_set : (Document.environment -> Document.environment) ->
math list -> math list
Allows to modify the Document.environment in a math formula.
val mcolor : Color.color -> math list -> math list
val fit : math list -> math list
val findFont : FontPattern.t -> string
val asana_font : Fonts.font Lazy.t
val asana : string ->
int -> Document.environment -> Document.Mathematical.style -> Box.box list
val euler_font : Fonts.font Lazy.t
val euler : string ->
int -> Document.environment -> Document.Mathematical.style -> Box.box list
val ams_font : Fonts.font Lazy.t
val ams : string ->
int -> Document.environment -> Document.Mathematical.style -> Box.box list
val adjusted_asana_delimiters' : 'a -> ('b -> 'c -> Box.box list) list -> ('b -> 'c -> Box.box list) list
val adjusted_asana_delimiters : string ->
int list ->
(Document.environment -> Document.Mathematical.style -> Box.box list) list
val fix_asana_delimiters : string ->
int list ->
(Document.environment -> Document.Mathematical.style -> Box.box list) list
val adjusted_euler_delimiters : string ->
int list ->
(Document.environment -> Document.Mathematical.style -> Box.box list) list