7

我编写了小型 Java 应用程序来为我的数学修订版创建可打印的抽认卡。

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

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

有没有可以解析 LaTeX 的 Java 库?或者有没有更好的方法来做到这一点?

4

2 回答 2

7

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

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

但是,您也许可以只支持部分 Latex 语法。看看Texlipse做了什么。它是在 Java 中的。

于 2012-12-08T12:54:18.177 回答
3

我会使用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

于 2020-04-02T20:31:17.443 回答