---
name: "caml2html"
section: "1"
platform: "linux"
package: "caml2html"
version: "1.4.4-3+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/caml2html"
---

# caml2html(1)

pretty print OCaml in html and latex

## NAME

caml2html - pretty print OCaml in html and latex

## SYNOPSIS

**caml2html \[*Options...*\] *files*...**

## DESCRIPTION

**caml2html** pretty prints  **OCaml** source code as html or LaTex files. The pretty printing uses colors and adds tool‐tips with type annotations if the corresponding .annot file is present.

Without *file* arguments, **caml2html** reads from standard input. By default it writes to standard output.

## OPTIONS

- **-annotfilter {innermost\|outermost}**

  choose whether innermost or outermost type annotations should be used (default: innermost)

- **-noannot**

  do not insert type annotations as read from .annot files (HTML output only)

- **-ln**

  add line number at the beginning of each line

- **-hc**

  comments are treated as raw HTML or LaTeX code (no newlines inside of tags)

- **-t**

  add a title to the HTML page

- **-body**

  output only document's body, for inclusion into an  existing document (see also -make-css and -make-latex-defs)

- **-nf**

  do not add footnotes to the HTML page

- **-inhead**

  use default styling and place it in the \<head\> section of the document (default when applicable)

- **-charset \<charset\>**

  specify charset to use (default: iso-8859-1)

- **-css**

  use separate CSS style file *style.css*

- **-cssurl \<URL\>**

  use *URL* as CSS

- **-inline**

  use inline styling (HTML only, default fallback if -inhead is not applicable)

- **-ie7**

  drop support for type annotations on Internet Explorer 6 and older

- **-notab**

  do not replace tabs by spaces

- **-tab \<integer\>**

  replace tab by n spaces (default = 8)

- **-d \<directory\>**

  generate files in directory dir, rather than in current directory

- **-o \<filename\>**

  output file

- **-make-css \<filename\>**

  create CSS file with default color definitions and exit

- **-ext \<NAME:CMD\>**

  use the given external command CMD to handle comments that start with  *(\*NAME.* *NAME* must be a lowercase identifier. See  **EXAMPLES** below.

- **-latex**

  output LaTeX code instead of HTML.

- **-make-latex-defs \<filename\>**

  create a file containing the default LaTeX color definitions and matching highlighting commands, and exit. \\usepackage{alltt,color} is not included.

- **-v**

  print version number to stdout and exit

- **-help \| --help**

  Display options and exit.

## EXAMPLES

Process many files into a single file:

caml2html -o result.html \*.mli \*.ml

Process many files, and create one HTML page for each file:

caml2html \*.ml

You can use HTML in the comments of the source file, for instance, to insert hyperlinks:

(\* This is file1.ml.\
    \<a href="#file2.ml"\>This is a link to file2.ml\</a\>. \*)

Note, that one HTML tag cannot span over several lines, and that the ordinary characters \<, \> and & must be written as &lt;, &gt; and &amp;.

**Custom comment handlers** To implement an include directive for comments, use

caml2html -ext "include: xargs cat" example.ml

Then

 (\*include i.html \*)\
  let f x = 2 \* x + 1

produces

 ... contens of i.html ...\
  let f x = 2 \* x + 1

as result.

## SEE ALSO

- The **caml2html** web page,

  *http://mjambon.com/caml2html.html*

- Some more examples are on

  */usr/share/doc/caml2html/caml2html.html*

## AUTHOR

This manual page was written by Sylvain Le Gall \<gildor@debian.org\> and Hendrik Tews \<hendrik@askra.de\>, specifically for the Debian project (and may be used by others).
