latex
is a package holding Go tools for LaTeX.
latex
is supposed to provide features akin to MathJax
or matplotlib
's TeX
capabilities.
ie: it is supposed to be able to draw mathematical equations, in pure-Go.
latex
is NOT SUPPOSED to be a complete typesetting system like LaTeX
or TeX
.
For this, please take look at:
Eventually, go-latex/latex
might just use star-tex.org/...
to provide the MathJax
-like capabilities.
(once star-tex.org/...
is ready and exports a nice Go API.)
$> go get github.com/go-latex/latex/...
Documentation is served by godoc, here:
The main use case for go-latex/latex
is to draw a mathematical equation.
This is typically achieved via the latex/mtex.Render
function that knows how to render mathematical TeX
equations to a renderer interface.
package main
import (
"os"
"github.com/go-latex/latex/drawtex/drawimg"
"github.com/go-latex/latex/mtex"
)
func main() {
f, err := os.Create("output.png")
if err != nil {
panic(err)
}
defer f.Close()
dst := drawimg.NewRenderer(f)
err = mtex.Render(dst, `$f(x) = \frac{\sqrt{x +20}}{2\pi} +\hbar \sum y\partial y$`, 12, 72, nil)
if err != nil {
panic(err)
}
err = f.Close()
if err != nil {
panic(err)
}
}
BSD-3.