在 Android 中显示 LaTex

5 java android latex

我正在尝试在 Android 中的 ImageView 中显示 LaTex 项目。我正在使用jlatexmath图书馆。到目前为止,我已经从公式中得到了 TexIcon 对象。现在我想在 ImageView 中显示该内容(或任何地方,只需要在活动中显示它们)。一种方法是将其转换为位图或 png,然后显示在 中ImageView,但我无法转换TexIcon为任何其他格式,这是到目前为止我的 java 代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String math = "\\frac {V_m} {K_M+S}";
    TeXFormula fomule = new TeXFormula(math);
    TeXIcon ti = fomule.createTeXIcon(TeXConstants.STYLE_DISPLAY, 40);
}
Run Code Online (Sandbox Code Playgroud)

RmK*_*RmK 5

编辑:我尝试在Android中使用jlatexMath,但是由于它需要大量的依赖项(例如java中的awt和swing包)才能移植到Android,我不得不中途放弃它。

这是 JLatex 存储库中提供的示例代码,但 BufferedImage 和 Insets 在 Android 中不可用。

    TeXFormula formula = new TeXFormula(latex);
    // Note: Old interface for creating icons:
    //TeXIcon icon = formula.createTeXIcon(TeXConstants.STYLE_DISPLAY, 20);
    // Note: New interface using builder pattern (inner class):
    TeXIcon icon = formula.new TeXIconBuilder().setStyle(TeXConstants.STYLE_DISPLAY).setSize(20).build();
    icon.setInsets(new Insets(5, 5, 5, 5));

    BufferedImage image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2 = image.createGraphics();
    g2.setColor(Color.white);
    g2.fillRect(0,0,icon.getIconWidth(),icon.getIconHeight());
    JLabel jl = new JLabel();
    jl.setForeground(new Color(0, 0, 0));
    icon.paintIcon(jl, g2, 0, 0);
    File file = new File("Example2.png");
    try {
        ImageIO.write(image, "png", file.getAbsoluteFile());
    } catch (IOException ex) {}
Run Code Online (Sandbox Code Playgroud)

我会推荐另一个库 - https://github.com/kexanie/MathView,它是 webview 的包装器,您可以使用 MathJax 或 KaTex 库。