package forester

  1. Overview
  2. Docs
A tool for tending mathematical forests

Install

Dune Dependency

Authors

Maintainers

Sources

4.3.1.tar.gz
md5=d1623b2919d2984bfcd841b5e772abd1
sha512=5924c8822d7e5a7bc49eb2b451cfd06cb372415559bc5ff232a59395b0aa28eb9819e351426ab25510f7d96ffb85ec652fa1878478b046c61e51ff471c285710

doc/src/forester.core/Render_TeX_like.ml.html

Source file Render_TeX_like.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
open Forester_prelude

module Printer =
struct
  module P0 =
  struct
    type out = Format.formatter
    let text txt fmt =
      Format.fprintf fmt "%s" txt
  end

  include Printer_kit.Kit (P0)

  let contents (printer : t) : string =
    Format.asprintf "%a" (fun fmt _ -> printer fmt) ()
end

let rec render_node : Sem.node Range.located -> Printer.t =
  fun located ->
  match located.value with
  | Sem.Text txt | Sem.Verbatim txt ->
    Printer.text txt
  | Sem.Math (mode, xs) ->
    render xs;
  | Sem.Xml_tag (_, _, body) ->
    render body
  | Sem.TeX_cs (Symbol x) ->
    Printer.text @@ Format.sprintf "\\%c" x
  | Sem.TeX_cs (Word x) ->
    Printer.text @@ Format.sprintf "\\%s " x
  | node ->
    Reporter.fatalf ?loc:located.loc Type_error "Render_TeX_like: cannot render this kind of object"

and render nodes =
  Printer.iter render_node nodes
OCaml

Innovation. Community. Security.