- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
您好,我想在我的 Android 应用程序中使用 Mathjax,为此我找到了一个示例表单 Here .
我想在 Activity 启动时显示一个公式,而不是像您按下显示按钮时的示例,但这不起作用。我的代码中是否遗漏了某些内容?
感谢您的帮助。
private String doubleEscapeTeX(String s) {
String t="";
for (int i=0; i < s.length(); i++) {
if (s.charAt(i) == '\'') t += '\\';
if (s.charAt(i) != '\n') t += s.charAt(i);
if (s.charAt(i) == '\\') t += "\\";
}
return t;
}
private int exampleIndex = 0;
private String getExample(int index) {
return getResources().getStringArray(R.array.tex_examples)[index];
}
public void onClick(View v) {
if (v == findViewById(R.id.button2)) {
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]);");
}
else if (v == findViewById(R.id.button3)) {
WebView w = (WebView) findViewById(R.id.webview);
EditText e = (EditText) findViewById(R.id.edit);
e.setText("");
w.loadUrl("javascript:document.getElementById('math').innerHTML='';");
w.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
}
else if (v == findViewById(R.id.button4)) {
WebView w = (WebView) findViewById(R.id.webview);
EditText e = (EditText) findViewById(R.id.edit);
e.setText(getExample(exampleIndex++));
if (exampleIndex > getResources().getStringArray(R.array.tex_examples).length-1)
exampleIndex=0;
w.loadUrl("javascript:document.getElementById('math').innerHTML='\\\\["
+doubleEscapeTeX(e.getText().toString())
+"\\\\]';");
w.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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","");
EditText e = (EditText) findViewById(R.id.edit);
e.setBackgroundColor(Color.LTGRAY);
e.setTextColor(Color.BLACK);
e.setText("");
Button b = (Button) findViewById(R.id.button2);
b.setOnClickListener(this);
b = (Button) findViewById(R.id.button3);
b.setOnClickListener(this);
b = (Button) findViewById(R.id.button4);
b.setOnClickListener(this);
TextView t = (TextView) findViewById(R.id.textview3);
t.setMovementMethod(LinkMovementMethod.getInstance());
t.setText(Html.fromHtml(t.getText().toString()));
// Here is my added code.
w.loadUrl("javascript:document.getElementById('math').innerHTML='\\\\["
+doubleEscapeTeX("\\frac{1}2")+"\\\\]';");
w.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
}
最佳答案
您必须将 Assets 文件夹复制到应用程序的 Assets 文件夹中。
关于java - 在安卓中使用 Mathjax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19897795/
在 Mathjax 中,如何将其写为由第二个 = 分隔的双行? 这是 Mathjax 代码: $= 2[2W(k-2) + (k-1)2^{k-1}] + k2^k= 2^2W(k-2)+(k-1)2
如何使用 TeX 在 MathJax 中实现弹性双括号?例如, TeX 包 stmaryrd 有这个,但 MathJax 不支持任意包的导入。 我希望双括号在所有尺寸下都好看。 奖励:这在 Ascii
我希望能够通过在某种粗体命令中将几个符号分组来使它们变粗。我可以使用(例如)将单个符号加粗 \boldsymbol \phi 但我希望能够加粗几个符号,例如: {\boldsymbol \phi \v
我想输入这个。 我试过这样 $$\lambda=\frac{0.693}{t_\frac{1}{2}}$$ 还, $$\lambda=\frac{0.693}{{t}_\frac{1}{2}}$$ 还
下图来自 Chiswell 和 Hodges 数学逻辑练习,第 21 页: 当我在 Mathematics Stack Exchange 上发布答案时,我想显示类似的内容,但我不知道如何在 Mathj
我无法让 MathJax 更改它用于呈现以 AsciiMath 编写的公式的字体。我已经在 StackOverflow 和网络上的其他地方阅读了类似问题的答案: Styling MathJax Cha
Mathjax 元素默认居中对齐。 如何使 Mathjax 元素左对齐? 最佳答案 MathJax.Hub.Config({ jax: ["input/TeX","output/HTML-CS
我有一个文本区域,我希望用户在其中输入数学表达式。我不想立即呈现任何结果,就像它在 SO 上一样。 像这样的东西: function onkeyup(event) { var prev =
我有一个包含简单文本的网站,其中混合了最初仅可见标题的部分。单击标题可展开该部分。此页面的所有部分都可以包含我希望使用 MathJax 很好地排版的数学,但这些部分可能很长并且包含大量数学。 我想推迟
查看代码片段 What will be the output of $${x^2}$$ 这会在一行上显示字符串“What will be the output of”,并在第二行上显示表达式 如何让
如果你只是使用这样的东西: \( \left[ \begin{matrix} 0 & 1 & 5 & 2 \\ 1 & -7
有没有办法使用 MathJax 对齐多个方程,使赤道彼此位于下方? For example: 2x - 4 = 6 2x = 10 x = 5 最佳答案 使用 aligned环
是否有可能让 text-overflow:ellipsis 与 MathJax 一起工作? 这是一个(非工作)示例(on JSFiddle) HTML: \[ \text{2014-01-05}
我正在编写一个将 html 保存到 onenote 的网络应用程序。为了保存数学公式,我打算用MathJax.js把数学公式转成svg,然后再把svg转成png,因为onenote api支持的htm
我猜这之前已经在一个线程中完成了,但我只花了两个小时阅读各种线程并且无法解决一个非常基本的问题。 长话短说: 我正在尝试在网络浏览器中为家庭作业生成器创建动态方程/图表。到目前为止,我一直在使用 Ma
我想在我的本地 Mathjax 配置文件中声明一些数学运算符,以便我可以在每个页面中使用它们。 我发现我可以按照 MathJax 文档 Defining TeX macros 中的描述定义命令. 但是
我有一个基本的 MathJax代码 MathJax.Hub.Config({ extensions: ["tex2jax.js", "TeX/AMSmath.js"], ja
我知道如何使用 MathJax 将网页中的 TeX 命令转换为数学公式。 MathJax 脚本将在页面中搜索 TeX 命令并将它们内联转换为 HTML 语句。 有没有办法以预处理的形式来做到这一点?换
nCr 和 nPr 需要一个置换和组合 mathJaX 符号 最佳答案 你可以用这个: nCk => {}_n \mathrm{ C }_k nPk => {}_n \mathrm{ P }_k 关于
我想知道是否有办法转换 MathJax输出到 MathML . 我读了几篇文章说MathJax支持 MathML .我还可以看到选项“Show MathML” ' 当我右键单击 MathJax 时公式
我是一名优秀的程序员,十分优秀!