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.