在android中显示数学方程式

时间:2017-03-04 04:24:49

标签: java android latex mathjax tex

我想在android中显示数学方程式,我发现这个https://github.com/kexanie/MathView工作得非常好但是在这个代码中我可以从哪里获得方程的字符串tex。我尝试使用单词16将方程转换为乳胶格式,但是当我将转换后的乳胶字符串替换为原始字符串(MainActivity中的字符串tex)时,乳液字符串将显示为原样而不是显示的方程式。

第一个MainActivity代码正在完美地显示等式

public class MainActivity extends AppCompatActivity {
    MathView formula_two;
    String tex = "This come from string. You can insert inline formula:" +
            " \\(ax^2 + bx + c = 0\\) " +
            "or displayed formula: $$\\sum_{i=0}^n i^2 = \\frac{(n^2+n)(2n+1)}{6}$$";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();

        formula_two = (MathView) findViewById(R.id.formula_two);

        formula_two.setText(tex);
    }
}

这是MainActivity,我用我的字符串

替换了tex字符串
public class MainActivity extends AppCompatActivity {
    MathView formula_two;
    String tex = "\\begin{document}\n" +
            "\n" +
            "%\\selectlanguage{english} %%% remove comment delimiter ('%') and select language if required\n" +
            "\n" +
            "\n" +
            "\\noindent ${\\left(x+a\\right)}^n=\\int^n_{k=0}{\\left(\\genfrac{}{}{0pt}{}{n}{k}\\right)x^ka^{n-k}}$  this is a test to check latex format  ${\\left(1+x\\right)}^n=1+\\frac{nx}{1!}+\\frac{n\\left(n-1\\right)x^2}{2!}+\\dots $\n" +
            "\n" +
            "\\noindent \n" +
            "\n" +
            "\n" +
            "\\end{document}";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();

        formula_two = (MathView) findViewById(R.id.formula_two);

        formula_two.setText(tex);
    }
}
  

我肯定在转换数学时做错了什么   方程式为tex格式。如何才能完美地转换它我尝试过   寻找一个好的教程,但无法找到任何。任何帮助都会   理解

1 个答案:

答案 0 :(得分:0)

MathJax不处理完整的LaTeX文档,只处理数学表达式。因此,您将无法呈现已定义的tex变量。特别是,MathJax认为\begin{...}\end{...}之间的任何内容都是数学表达式,因此\begin{document}...\end{document}将被视为数学。 \noindent宏将无法识别(仅实现数学模式宏),额外的美元符号将呈现为文字美元符号。

另外,请注意,MathJax的默认配置中未启用单个美元符号分隔符,因此如果您希望它们充当数学分隔符,则需要明确启用它们。有关详细信息,请参阅MathJax Documentation