榆树中使用的数学标签到底是怎样的?

时间:2016-12-06 21:21:56

标签: mathjax elm mathml

这里只是一个通用的div,里面有一些无意义的数学。无法正确呈现

div [] [ math [] [text "$\\int_a^b \frac{2}{3}$"]

以及出现的内容

<math>$\int_a^b \frac{2}{3}$</math>

所以我不明白math在榆树中是如何运作的。这看起来像mathML

目前,我认为进行mathjax调用比学习(或创建)新的标记语言和编写纯mathML更容易。这是什么样子

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <msubsup>
    <mo>&#x222B;<!-- ∫ --></mo>
    <mi>a</mi>
    <mi>b</mi>
  </msubsup>
  <mfrac>
    <mn>2</mn>
    <mn>3</mn>
  </mfrac>
</math>

榆树没有mfrac标签,但我很乐意自己写!这组标签在网络上使用的频率越来越高,但Elm-Lang本身可能还没有采用它。

Elm会公开node,您可以在其中定义自己的任何标记。

node
    :  String
    -> List (Attribute msg)
    -> List (Html msg)
    -> Html msg

这表明了一种潜在的解决方案。虽然没有在任何地方领先:

node "math" [] [ node "mo" [] [ text "&#x222B;"] ]

2 个答案:

答案 0 :(得分:1)

您应该可以使用Html.node执行任何html支持。

view model =
  math []
    [ node "msup" []
      [ node "mi" [] [ text "x" ]
      , node "mn" [] [ text "2" ]
      ]
    ]

您可能希望定义数学结构而不是  到处使用node

答案 1 :(得分:1)

MathML在Safari和Firefox中是only supported,因此使用Html.node生成MathML并不是一个好的跨浏览器解决方案。

您必须将polyfill用于其他浏览器,例如KaTeXMathJax

众所周知,KaTeX比MathJax更快,而Elm已经集成了。

bsouthga/elm-katex模块允许您使用LaTeX在Elm中输出数学公式。使用elm-github-install为您的项目安装它。

请记住,您还需要KaTeX

中的CSS