我想使用d3.js在svg上呈现MathML方程式。任何人都可以帮助我得到svg的二次方程。我尝试着用异物来取得成功。使用d3.js呈现MathML在svg上
回答
我花了一段时间试图使它在JSFiddle中没有成功,但它在我的PC上效果很好。 JSFiddle here。您是否介意尝试以下方法,并让我知道它是否也适用于您?
步骤1.将MathJax
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
第2步:使用此代码追加foreignObject
var svg = d3.select("body").append("svg").attr("width",400).attr("height",400)
var text = svg.append("foreignObject").attr("width",100).attr("height",100)
text.text("$$ x = \\sum_{i \\in A} i^{2} $$")
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
不过,如果你还是喜欢MATHML,那么你可以使用以下命令:
text.html("<math display=\"block\"><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></mrow></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow></math>")
我知道我为你加载了更多的脚本,但是我的理解是MathML不是真的ch再次使用。
我希望它有帮助。
编辑 最后一个的jsfiddle这里:link
感谢
这很好,但我们有输入作为正确的MathML需要在SVG –
呈现没问题。我认为使用MathJax来渲染MathML会更好。另外,我不确定MathML是否真的被支持。 Chrome并没有显示它(就像@RobertLongson提到的那样) – Nikos
同样的问题。是否可以将MathML转换为MathJax语法。 –
你两个错误
- foreignObject必须有宽/高属性
- MATHML元素必须在MATHML命名空间
修复这些结果在此创建...
d3.ns.prefix.mathml = "http://www.w3.org/1998/Math/MathML";
var foreignObject = d3.select("body")
.append("svg")
var x = foreignObject.append("foreignObject")
.attr("requiredExtensions", "http://www.w3.org/1999/xhtml")
.attr("width", "100")
.attr("height", "100")
var text = x.append("mathml:mo")
var row = x.append("mathml:mrow")
row.append("mathml:mi").text("a")
row.append("mathml:mo").text('\u2062')
var msup = row.append("msup")
msup.append("mathml:mi").text("x")
msup.append("mathml:mi").text("2")
row.append("mathml:mo").text("+")
row.append("mathml:mi").text("b")
row.append("mathml:mo").text('\u2062')
row.append("mathml:mi").text('x')
row.append("mathml:mo").text('+')
row.append("mathml:mi").text('c')
我试过斧头广场+ bx + c。但再次没有成功 JSFiddle:http://jsfiddle.net/p3wuu2pw/3/ –
你的小提琴适合我在Firefox上使用。 –
谢谢你的努力。这很奇怪。它不适用于Chrome。我有什么遗漏吗? –
- 1. 使用HTML呈现d3 SVG图表
- 2. 如何在d3中重新呈现SVG?
- 3. 如何使用C呈现MathML
- 4. 在现有SVG上应用缩放比例(d3.js v4)
- 5. 在svg图表上添加div(D3.js)
- 6. 如何呈现结束刻度始终使用d3 svg轴
- 7. 如何使用d3.js将标题集中在SVG图表上?
- 8. 离子D3.js饼图不会呈现
- 9. D3.js面积图未呈现,右
- 10. 在Apache上为SVG和MathML工作PHP
- 11. Inline-SVG由JS生成时不呈现
- 12. Matter JS - 无法呈现SVG路径
- 13. 使用序轴呈现在D3
- 14. 在Android中使用javascript呈现svg
- 15. 从非svg支持的浏览器(尤其是IE 8)上的d3.js呈现svg?
- 16. 如何在angularjs中使用ng-repeat呈现mathml?
- 17. D3.js - 中呈现的文本使用换行符
- 18. d3对象不在IE10的svg边界内呈现
- 19. SVG到画布与d3.js
- 20. 箭头SVG梯度d3.js
- 21. 将mathml呈现为html5画布为png
- 22. mathml在chrome上使用ajax
- 23. CSV使用d3.js与使用d3.js
- 24. 使用FabricJS在Canvas上呈现不同的SVG图像
- 25. 用QPainter呈现SVG文件
- 26. 在网页中呈现SVG
- 27. SVG未在IE中呈现
- 28. 使用SVG呈现字体路径
- 29. D3.js坚持父对象在SVG
- 30. 在地图上用D3.js
你能告诉我们你试图执行一些代码? –
我从一个样本开始。代码是在 http://jsfiddle.net/p3wuu2pw/ –