2017-11-30 10 views
0

Katex 형식을 사용하여 수학 공식을 표시하는 프로젝트를 진행하고 있습니다.Katex/Latex 구문에 변수 값을 입력하십시오.

이제 여기에 약간의 문제가 있습니다. 분획을 렌더링 가정

는 katex 구문 I 값의 가변 X있는 경우 지금 \drac{x}{y}

3 다른 변수 Y 값 5.

Katex 구문에 어떻게 값을 주입합니까?

나는 katex 구문에서 XY는 실제 값으로 대체됩니다

var x = 3; 
var y = 5; 

\dfrac{x}{y} 

같은 것을 갖고 싶어.

참고 : - 나는 또한 Katex를 렌더링하는 https://github.com/talyssonoc/react-katex

을 사용하고 있습니다.

+0

[String.replace()] (https://www.w3schools.com/jsref/jsref_replace.asp)? –

+0

이 경우'\ dfrac {a} {c}'이고 변수는 ** ** ** ** ** **입니까? @NicoSchertler – besrabasant

+0

이 사건은 어떻게됩니까? 변수 세트가 있어야하며 모든 변수를 대체합니다. –

답변

1

여기에 macro substitution을 사용한다고 생각합니다. 공식을 생성하는 기계가 무엇이든간에 \frac{\x}{\y}으로 표시된 공식을 얻으십시오. 그런 다음 해당 매크로 대신 변수 이름이나 값을 대체 할 수 있습니다. 이런 식으로 뭔가 : 당신이 공식이 처음 구성되는 방식을 제어 할 방법이없는 경우

katex.render("\\frac{\\x}{\\y}", element, { 
    macros: { 
    "\\x": String(x), 
    "\\y": String(y), 
    } 
}); 

이 단지 그것으로 명령을 대체하는 식으로 값을 대체에서 문제를 이동합니다. 이 경우 입력 문자열을 commands \… 및 다른 문자로 토큰화할 수 있습니다. 명령은 그대로 유지되지만 다른 문자는 변수 대체가 가능합니다.

한 가지 그룹화되어 조심해야합니다 : 입력 \frac xy는 잘 렌더링하지만 (텍스트와 매크로 대체 모두가 당신을 줄 것이다 것입니다) x=34.5하고 순진한 방법으로 대체 y=5.67 결과 \frac 34.55.67\frac{3}{4}.55.67로 렌더링합니다. 따라서 수식에있는 각 매크로가 {…}으로 묶이거나 "\\x": "{" + x + "}"과 같이 대체 할 때 {…}의 다른 수준을 추가해야합니다. 수식 안에 {…}으로 매크로를 묶는 것은 매크로가 후속 공백을 먹는 것에 대해 걱정할 필요가 없다는 이점이 있습니다. \text{\x is 2}이 좋지 않지만 \text{{\x} is 2}이 더 좋습니다.

그러나 올바르게 그룹화 된 경우에도 모든 비 명령이 실제로 변수가 아니므로이 방법은 완벽하지 않습니다. 예를 들어 \begin{array}{rlrl}…\end{array}으로 aarray이 아니고 rrlrl 인 경우를 변수로 간주해야합니다. 이 문제를 해결하려면 많은 의미 론적 통찰력이 필요하므로 실제로는 문제가됩니다.

이 딜레마를 해결하는 한 가지 방법은 KaTeX에서 렌더링을 수행 한 다음 결과 DOM 하위 트리에서 대체를 수행하는 것입니다.변수를 <span class="mord …">…</span>으로 식별 할 수 있어야합니다 (mord은 일반 수학을 나타냄). 이것은 KaTeX가 출력에 사용하는 정확한 표현에 의존한다는 것을 의미합니다. 따라서 KaTeX의 고정 버전을 실행해야합니다. 이러한 내부 내용은 예고없이 변경 될 수 있습니다. \underbrace처럼 문제가되는 항목조차도 현재이 대체 방법으로 작동하는 것처럼 보일지라도 일부 (가능할 경우) 버전에서는 주어진 상자의 너비에 따라 특정 구성이 깨질 수 있다는 사실을 알고 있어야합니다.

+0

감사합니다. 통찰력을 얻으려는 @MvG. 나는 그 _macros_에 대해 몰랐다. 그런데 .. 고마워........... 나는 이미 katex가 제공 한 JavaScript 문자열 보간 방법을 사용하고 있었다. 당신은 그 문서의 맨 아래에서 찾을 수있다 ... 작은 수식은 더 잘 작동하지만 더 큰 수식은 ... 그것은 지옥으로 변합니다 ... 또한 여러 소스의 변수 값을 대체해야합니다. – besrabasant