2016-12-06 9 views
4

여기에 말도 안되는 수학이 포함 된 일반적인 div가 있습니다. 여기에 제대로Elm에서 수학 태그가 정확히 사용되는 방법은 무엇입니까?

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

렌더링하지 않는 것은 내가 이해하고 있지 않다 밖으로

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

온다 무엇을 어떻게 느릅 나무에서 math 작품. mathML

당분간 mathjax 호출을 작성하는 것보다 새로운 마크 업 언어를 학습 (또는 생성)하고 순수한 mathML을 작성하는 것이 더 쉽다고 생각합니다. 여기에는 mfrac 태그가 없습니다 그것은

<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-Lang 자체에서는 아직 채택되지 않았을 수 있습니다.


느릅 나무는 어떤 종류의 자신의 태그를 정의 할 수 있습니다 node 노출 않습니다.

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

이는 잠재적 인 해결책을 나타냅니다. 어디하지만 연결되지 않았다

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

답변

1

당신은 어떤 HTML 지원을 할 Html.node을 사용할 수 있어야합니다. 당신은 수학을 정의 할 수 있습니다

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

대신 사방 node를 사용하는 구성한다.

1

MathML은 Safari 및 Firefox에서 only supported이므로 MathML을 생성하기 위해 Html.node을 사용하는 것은 좋은 크로스 브라우저 솔루션이 아닙니다.

KaTeX 또는 MathJax과 같은 다른 브라우저에는 polyfill을 사용해야합니다.

KaTeX는 MathJax보다 빠르며 Elm과의 통합이 이미 있습니다.

모듈을 사용하면 LaTeX을 사용하여 Elm에서 수식을 출력 할 수 있습니다. 프로젝트에 설치하려면 elm-github-install을 사용하십시오.

CSS가 필요하다는 점을 염두에 두십시오. KaTeX