From TeX To Human-Readable HTML

View site - GH Pages

What is this project

Welcome to this little project, I decided to make this because I like OCaml and the previous version of it was in Python. This program
translates TeX Books (simple one like stories kind of book) to HTML. I use this to publish the HTML version of agh and to publish chapters written in TeX on ScribbleHub.

What this project is not

The purpose of this project is not and never will be a kind of "TeX To HTML" compiler, I do not intend to implement the full TeX
and LaTeX specification. This is a tool mainly done for me for my usage, that is publishing my book on ScribbleHub and the web. I'm sure you can find real compilers if you want to support
the full specification of TeX and LaTeX


The tool automatically detect the first tex file which's name's not "glossary.tex", scrapes the name and eventual glossary
input from the preamble and throw out an html file so the easiest way to use it is just


by default it only prints after the first (or the nth depending on the command line args) chapter was read you can change that
behaviour with the --write argument

htmlfromtexbooks --write

A full usage breakdown will be quickly made


Downloading last stable from release

The Automatic Script install is available here, just type this command and the htmlfromtexbooks is installed under ~/.local/bin

curl | sh

Alternatively you can download the script then run it if you want to read it before executing it


Or executing the individual commands themselves

mv htmlfromtexbooks ~/.local/bin/htmlfromtexbooks
chmod +x ~/.local/bin/htmlfromtexbooks

Building from source

The script to automatically build from sources

curl | sh

It builds it with dune and install it under the OPAM path with the name htmlfromtexbooks, which
performs these commands

git clone
cd HTMLFromTeXBooks
dune build @install 
dune install


The project currently translate LaTeX to human-readable HTML files (the line breaks in the HTML follows the line breaks in the TeX file while line breaks on HTML is let to the browser.) and supports the following features:

  • Parsing chapter by chapter

  • Automatically detect a tex file, generate a name for the output, detects the glossary and use the configuration file for name/starting chapter

  • Extracting the title of the tex file for name

  • Printing chapter

  • LaTeX center environment

  • LaTeX macros

    • textit is replaced by <i>

    • textbf is replaced by <b>

    • newline, \\, and par puts a <br>

    • bigskip closes the paragraph and open another one.

  • Some math

    • Inline math with $

    • Math env

      • Align*

      • Align

      • Equation

      • Equation*

Math image are generated with the backend an example bellow with $\int^b_a f(x) \mathrm(d)x$

Near Future TODO List

  • parsing glossary entries from a glossary file and printing the gls with a link to the glossary

  • reference

  • supports for section,subsection and subsubsection (<h3>,<h4> and <b> for books and <h2> <h3> <h4> for articles)

If you have an idea post an ISSUE, any contribution is welcomed :)
Let make no one ever forgets the name ~~Enter..~~ OCAML :)!


Be sure to have dune installed and OCaml version >=4.08

ocaml --version #must be >= 4.08
opam install dune


git clone
dune build @install
dune install



>= "2.9"
>= "4.08.0"
Reverse Dependencies