【问题标题】:how exactly is the math tag used in Elm?Elm 中使用的数学标签到底是怎样的?
【发布时间】:2017-04-21 16:05:03
【问题描述】:

这只是一个通用的 div,其中包含一些无意义的数学。无法正确渲染

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

这就是结果

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

所以我不明白 math 在 Elm 中的工作原理。这看起来像 mathML

目前,我认为拨打mathjax 比学习(或创建)一种新的标记语言和编写纯数学机器学习更容易。它应该是这样的

<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>

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


Elm 确实公开了node,您可以在其中定义自己的任何类型的标签。

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

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

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

【问题讨论】:

    标签: mathjax elm mathml


    【解决方案1】:

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

    您必须为其他浏览器使用 polyfill,例如 KaTeXMathJax

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

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

    请记住,您还需要来自 KaTeX 的 CSS

    【讨论】:

      【解决方案2】:

      您应该能够使用Html.node 做任何 html 支持的事情。

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

      您可能想要定义数学结构,而不是 到处使用node

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-23
        • 2015-01-15
        • 2016-01-17
        • 1970-01-01
        • 2013-03-26
        • 2015-10-10
        • 1970-01-01
        相关资源
        最近更新 更多