Reactjs 将变量值注入Katex/Latex语法
我正在从事一个项目,该项目使用Katex格式显示数学公式 现在我在这里面临一个小问题 对于渲染分数,katex语法为Reactjs 将变量值注入Katex/Latex语法,reactjs,variables,math,input,katex,Reactjs,Variables,Math,Input,Katex,我正在从事一个项目,该项目使用Katex格式显示数学公式 现在我在这里面临一个小问题 对于渲染分数,katex语法为 \dfrac{x}{y} 现在,如果我有一个变量x的值3,另一个变量y的值5 如何将这些值注入Katex语法 我想要像这样的东西 var x = 3; var y = 5; \dfrac{x}{y} 其中,katex语法中的x和y将被实际值替换 注意:我也在使用 渲染Katex。我想我会使用它。尝试通过生成公式的任何机器将公式表示为\frac{\x}{\y}。然后,
\dfrac{x}{y}
现在,如果我有一个变量x的值3,另一个变量y的值5
如何将这些值注入Katex语法
我想要像这样的东西
var x = 3;
var y = 5;
\dfrac{x}{y}
其中,katex语法中的x和y将被实际值替换
注意:我也在使用
渲染Katex。我想我会使用它。尝试通过生成公式的任何机器将公式表示为\frac{\x}{\y}
。然后,您可以用变量名或值替换这些宏。大概是这样的:
katex.render("\\frac{\\x}{\\y}", element, {
macros: {
"\\x": String(x),
"\\y": String(y),
}
});
如果您无法控制公式最初的构造方式,那么这只会将问题从将值替换到公式中转移到将命令替换到公式中。在这种情况下,您可能希望将输入字符串标记为和其他字母。命令保持原样,而其他字母则接受变量替换
需要注意的一件事是分组:输入\frac xy
呈现得很好,但是用x=34.5
和y=5.67
以简单的方式替换,结果\frac 34.55.67
(这是文本和宏替换都会提供的)呈现为\frac{3}{4}.55.67
。因此,请确保公式中的每个宏都包含在{…}
中,或者在执行替换时添加另一级别的{…}
,如“\\x”:“{+x+”}
。在公式中用{…}
封闭宏的好处是,您不必担心宏占用后续空间:\text{\x是2}
不好,但\text{\x}是2}
更好
但即使分组正确,这种方法也不是完美的,因为并非所有非命令都是变量。例如,使用\begin{array}{rlrl}…\end{array}
时,数组中的a
和rlrl
中的r
都不应视为变量。解决这个问题确实有问题,因为它需要大量的语义洞察力
解决这个难题的一种方法是让KaTeX进行渲染,然后在生成的DOM子树中进行替换。您应该能够将变量标识为…
(mord
代表普通数学)。这意味着您依赖于KaTeX用于其输出的确切表示形式,因此您应该确保运行固定版本的KaTeX,因为这些内部内容可能会在不另行通知的情况下发生更改。还要注意的是,在某些(可能是将来的)版本中,这可能会破坏某些依赖于给定框的宽度的结构,尽管即使是像\underfrace
这样的问题目前似乎也适用于这种替换方法。我想我会使用它。尝试通过生成公式的任何机器将公式表示为\frac{\x}{\y}
。然后,您可以用变量名或值替换这些宏。大概是这样的:
katex.render("\\frac{\\x}{\\y}", element, {
macros: {
"\\x": String(x),
"\\y": String(y),
}
});
如果您无法控制公式最初的构造方式,那么这只会将问题从将值替换到公式中转移到将命令替换到公式中。在这种情况下,您可能希望将输入字符串标记为和其他字母。命令保持原样,而其他字母则接受变量替换
需要注意的一件事是分组:输入\frac xy
呈现得很好,但是用x=34.5
和y=5.67
以简单的方式替换,结果\frac 34.55.67
(这是文本和宏替换都会提供的)呈现为\frac{3}{4}.55.67
。因此,请确保公式中的每个宏都包含在{…}
中,或者在执行替换时添加另一级别的{…}
,如“\\x”:“{+x+”}
。在公式中用{…}
封闭宏的好处是,您不必担心宏占用后续空间:\text{\x是2}
不好,但\text{\x}是2}
更好
但即使分组正确,这种方法也不是完美的,因为并非所有非命令都是变量。例如,使用\begin{array}{rlrl}…\end{array}
时,数组中的a
和rlrl
中的r
都不应视为变量。解决这个问题确实有问题,因为它需要大量的语义洞察力
解决这个难题的一种方法是让KaTeX进行渲染,然后在生成的DOM子树中进行替换。您应该能够将变量标识为
…
(mord
代表普通数学)。这意味着您依赖于KaTeX用于其输出的确切表示形式,因此您应该确保运行固定版本的KaTeX,因为这些内部内容可能会在不另行通知的情况下发生更改。还要注意的是,在某些(可能是将来的)版本中,这可能会破坏某些依赖于给定框的宽度的结构,尽管即使像\underfrace
这样的问题目前似乎也适用于这种替换方法。?在这种情况下,\dfrac{a}{c}
和我有变量a和c@Nicoschertler这个案子怎么样?您必须有一组变量,并替换所有变量。在这种情况下,\dfrac{a}{c}
和我有变量a和c@Nicoschertler这个案子怎么样?您必须拥有一组变量,并对所有变量进行替换。感谢@MvG提供您的见解。我不知道