我正在研究与数学相关的网页,我正在寻找一种将数学方程式轻松编写到网页上的解决方案.目前我可以使用几种解决方案:
这两种解决方案都不理想,看起来有点过时.用图像替换文本应该是一个好主意并且MathML不符合所有浏览器/操作系统.
我希望有一个现代的解决方案来使用图像或MathML,也许利用sIFR来显示数学方程式?经过一番研究后,我仍然没有找到任何真正的解决方案.
请注意,我要求一种新的方法发布方法.我不希望图像成为网页上显示的输出,而是希望将这些等式呈现为文本数据.MathML是我最接近的,但它仍然不理想.我想知道是否可以利用像sIFR这样的替换工具在Flash中创建方程式.任何人都有这方面的建议吗?
编辑:自从我上次更新这篇文章以来已经有一段时间了,但随着HTML5被浏览器采用,游戏中有一个新的玩家将LaTeX和MathML重新引入混合,MathJax!.MathJax绝对是您要走的路!
类似问题: 网络上的数学方程式
令人遗憾的是,在Android平台上,科学和数学从未得到足够的重视.也许这是一个简单的问题,但我在javascript中是一个完全的家伙,所以我很难理解如何解决这个问题.
我想做的很简单:我只需要使用渲染数学方程.它可以是MathJax或JqMath或任何小而快的东西.如果我必须在webview中执行此操作,如何在同一webview中的段落和格式化方程式中显示纯文本?
(任何人都提出其他显然有效的方法,我会认为这也是解决方案)
我做了什么:
我开始使用MathJax将公式放入webview(如果有任何成功的jqMath用例,我不知道吗?有人愿意分享他们的经验吗?)我可以重现所有功能,就像独立的MathJax应用程序一样.在该应用程序中,用户将字符串键入EditText字段,一旦用户按下按钮进行确认,MathJax将在Latex中呈现公式.
我不需要用户确认.我认为这应该更容易,因为没有用户交互,但不知何故方程式永远不会显示.我知道我必须遗漏一些东西,因为独立MathJax中的代码用于用户输入.我应该修改哪部分代码直接从字符串中呈现方程,比如说\ sqrt {b ^ 2-4ac}?这是webview的初始标题:
WebView w = (WebView) findViewById(R.id.webview);
w.getSettings().setJavaScriptEnabled(true);
w.getSettings().setBuiltInZoomControls(true);
w.loadDataWithBaseURL("http://bar", "<script type='text/x-mathjax-config'>"
+"MathJax.Hub.Config({ showMathMenu: false, "
+"jax: ['input/TeX','output/HTML-CSS'], "
+"extensions: ['tex2jax.js'], "
+"TeX: { extensions: ['AMSmath.js','AMSsymbols.js',"
+"'noErrors.js','noUndefined.js'] } "
+"});</script>"
+"<script type='text/javascript' "
+"src='file:///android_asset/MathJax/MathJax.js'"
+"></script><span id='math'></span>","text/html","utf-8","");
Run Code Online (Sandbox Code Playgroud)
以下是用户在输入edittext后按下按钮时加载原始webview的方式:
WebView w = (WebView) findViewById(R.id.webview);
EditText e = (EditText) findViewById(R.id.edit);
w.loadUrl("javascript:document.getElementById('math').innerHTML='\\\\["
+doubleEscapeTeX(e.getText().toString())
+"\\\\]';");
w.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
private static String doubleEscapeTeX(String s) {
String t="";
for (int i=0; i < s.length(); …Run Code Online (Sandbox Code Playgroud) 你知道一个WYSIWYG方程编辑器,比如DragMath,用javascript/mathml或Flash实现吗?
我也可以嵌入DragMath,但我想知道是否有一种方法可以拥有一个好的WYSIWYG公式编辑器而无需用户运行Java applet.
谢谢!
我研究了很长一段时间,我知道这类问题已经回答了.但我无法找到一个正确的答案,展示如何在Android应用程序中实际处理数学公式.如果Android项目中没有包含大量(5~20MB)的文件,似乎无法像MATHML那样解析和显示数学公式脚本.我看了很多Android提到的JEuclid和MathJax,但我发现它们属于这个类别.
所以在这一点上,我能想到的唯一方法是将每个公式都放在图像文件中并在Android上显示.但实际上,手动过程非常缓慢.我相信这不是一个正确的方法.
所以我不得不再问这个问题.如何在Android应用程序中实际显示数学公式?
我想使用MathJax来显示MathML方程式,但它在IE中的性能慢得令人无法接受(是的,我读到了使用EmulateIE7,这也是不可接受的,因为它会破坏网站的其他区域).
我不需要支持用户生成的方程式,并且我的大部分数据都是XML格式,因此对HTML进行XSL转换似乎是最兼容的解决方案.
理想情况下,HTML与MathJax的HTML类似/完全相同.显示图像代替整个等式是一个糟糕的解决方案,因为要求IE用户安装MathPlayer.
我正在开发一个可能有数学、物理和化学符号的琐事测验应用程序,因为这是一个实时游戏应用程序,每次问题都会从服务器下载并针对特定主题显示。它需要是一个原生的 android 应用程序并且性能非常好重要(两人游戏)。如果我在 webview 中使用 jqmath 或 mathml 如上所述,它需要一些时间来呈现,是否有任何其他 android 库,或者我应该使用 ndk c 或 c++ 库来提高性能(如果是这样,请为它们命名) 或者如何使用 webview 本身或任何其他更好的主意提高性能,请提出建议?
我是Android编程的新手,我想让我们jqMath在WebView中显示一些数学公式.
这是我的代码:
WebView webView = (WebView)findViewById(R.id.webView1);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
String js = "<html><head>"
+ "<link rel='stylesheet' href='jqmath-0.4.0.css'>"
+ "<script src='jquery-1.4.3.min.js'></script>"
+ "<script src='jqmath-etc-0.4.0.min.js'></script>"
+ "</head><body>"
+ "<script>var s = '$ax^2+bx+c=0$ with $a?0$';M.parseMath(s);document.write(s);</script></body>";
webView.loadData(js, "text/html", "UTF-8");
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题?
更新 好我的问题已经解决了,但我也将loadData函数更改为loadDataWithBaseURL我提到的仅供参考,如果其他人有同样的问题
jqmath ×7
android ×4
mathjax ×4
mathml ×4
math ×3
javascript ×2
editor ×1
flash ×1
performance ×1
webview ×1