package forester
A tool for tending mathematical forests
Install
dune-project
Dependency
Authors
Maintainers
Sources
2.2.1.tar.gz
md5=6f013c1c3c492725dfc153c79038b6d7
sha512=2d6eeb865a8939ff5ef9031e969a41c81480cf5ef814f83a68d98aebe84c67657587231d8ef0ae820becbe429064de70772ed5b7db60828dc5657f250df7fdfc
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)"
>