package forester
A tool for tending mathematical forests
Install
Dune Dependency
Authors
Maintainers
Sources
2.1.tar.gz
md5=31749867afa21e73376e229a8f664890
sha512=297e088801dcd263cb636a9526ad31f96e1090fea8eac7a8887c115d604bafe8aa3b44a18efb8027666f0f50b53c920269e79a1cf06abcb58918643a4e18bba1
doc/src/forester.frontend/BuildLaTeX.ml.html
Source file BuildLaTeX.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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
open Prelude.Shell open Render let tex_fp name = Format.sprintf "%s.tex" name let dvi_fp name = Format.sprintf "%s.dvi" name let pdf_fp name = Format.sprintf "%s.pdf" name let write_tex_file ~name ~packages ~source = let tex_ch = open_out @@ tex_fp name in Fun.protect ~finally:(fun _ -> close_out tex_ch) @@ fun _ -> LaTeXTemplate.write tex_ch ~source ~packages let render_dvi_file ~name ~source = let tex_fp = tex_fp name in let dvi_fp = dvi_fp name in let pdf_fp = pdf_fp name in ensure_remove_file dvi_fp; ensure_remove_file pdf_fp; Proc.run "latex" ["-halt-on-error"; "-interaction=nonstopmode"; tex_fp] let render_pdf_file ~name ~source = let tex_fp = tex_fp name in let pdf_fp = pdf_fp name in ensure_remove_file pdf_fp; Proc.run "pdflatex" ["-halt-on-error"; "-interaction=nonstopmode"; tex_fp] let render_svg_file ~name ~source = let dvi_fp = dvi_fp name in Proc.run "dvisvgm" ["--exact"; "--clipjoin"; "--font-format=woff"; "--bbox=papersize"; "--zoom=1.5"; dvi_fp; "--output=%f"]; ensure_remove_file dvi_fp let build_latex ~name ~packages ~source = let web_name = name ^ "-web" in let print_name = name ^ "-print" in begin if not @@ Sys.file_exists @@ web_name ^ ".svg" then begin write_tex_file ~name:web_name ~packages ~source; render_dvi_file ~name:web_name ~source; render_svg_file ~name:web_name ~source end end; begin if not @@ Sys.file_exists @@ print_name ^ ".pdf" then begin write_tex_file ~name:print_name ~packages:(packages @ ["newpxtext"; "newpxmath"]) ~source; render_pdf_file ~name:print_name ~source end end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>