2017-03-04 69 views
1

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

第一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格式。如何可以完美地转换它我试图 搜索一个很好的教程,但没有找到任何。任何帮助将 赞赏

回答

0

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

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