Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将变量值注入Katex/Latex语法_Reactjs_Variables_Math_Input_Katex - Fatal编程技术网

Reactjs 将变量值注入Katex/Latex语法

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}。然后,

我正在从事一个项目,该项目使用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}
。然后,您可以用变量名或值替换这些宏。大概是这样的:

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提供您的见解。我不知道