Java中的完整LaTeX解析器

时间:2012-12-08 12:43:00

标签: java latex tex

我写了small Java application来为我的数学修订创建可打印的抽认卡。

目前,我正在使用JLaTeXMath从LaTeX为每一面生成图像。

唯一的问题是,JLaTeXMath似乎仅限于LaTeX公式。我想使用相同的程序为其他主题创建抽认卡,例如生物学,其中问题和答案将基于文本(而不是基于方程式),而LaTeX公式则不适用于此。

是否有任何可以解析LaTeX的Java库? 或者有更好的方法吗?

2 个答案:

答案 0 :(得分:7)

LaTeX是一种完整的编程语言。解析它意味着执行程序。

虽然在许多常见案例中似乎很简单 - \section等等 - 但这远远不是微不足道的。事实上,它应该是完整的。有些部分甚至会有或多或少不同的语法。以TIKZ为例 - 一个优秀的LaTeX图形绘制库。它的语法有点像乳胶,但其他部分更多的是现代编程语言。很多就像样式表。

但是,您可能只能支持部分乳胶语法。看看Texlipse的作用。它在Java中。

答案 1 :(得分:2)

我会使用JLaTeXMath

“ JLaTeXMath是显示LaTeX代码的最佳Java库。”


import org.scilab.forge.jlatexmath.TeXConstants;
import org.scilab.forge.jlatexmath.TeXFormula;

public class Example5 {

    public static void main(String[] args) {

        String latex = "\\begin{array}{|c|l|||r|c|}";
        latex += "\\hline";
        latex += "\\text{Matrix}&\\multicolumn{2}{|c|}{\\text{Multicolumns}}&\\text{Font sizes commands}\\cr";
        latex += "\\hline";
        latex += "\\begin{pmatrix}\\alpha_{11}&\\cdots&\\alpha_{1n}\\cr\\hdotsfor{3}\\cr\\alpha_{n1}&\\cdots&\\alpha_{nn}\\end{pmatrix}&\\Large \\text{Large Right}&\\small \\text{small Left}&\\tiny \\text{tiny Tiny}\\cr";
        latex += "\\hline";
        latex += "\\multicolumn{4}{|c|}{\\Huge \\text{Huge Multicolumns}}\\cr";
        latex += "\\hline";
        latex += "\\end{array}";

        TeXFormula formula = new TeXFormula(latex);
        formula.createPNG(TeXConstants.STYLE_DISPLAY, 20, "target/Example5.png", Color.white, Color.black);
    }
}

TeXFormula的来源:https://github.com/opencollab/jlatexmath/blob/7995ce52b2699c9a3a8428a94c1f3762cdcb0284/jlatexmath/src/main/java/org/scilab/forge/jlatexmath/TeXFormula.java#L244

其他解决方案

(部分基于https://tex.stackexchange.com/q/41609/9075