Flutter_tex包问题:如何在原始字符串公式中插入变量值
解决flutter_tex包中在LaTeX公式里插入自定义变量的问题
你可以用这几种方法在flutter_tex的公式字符串里插入变量值:
直接使用普通字符串插值
放弃原始字符串前缀r,直接用Dart的字符串插值语法$,注意LaTeX里的反斜杠需要转义成\\:double factorB = 16.0; String second = "<br> $$x={\\sqrt{$factorB}}$$";字符串拼接法
如果必须保留原始字符串的部分内容(比如公式里有大量需要保留的特殊字符),可以把原始字符串拆成几段,和变量值拼接起来:double factorB = 16.0; String second = r"<br> $$x={\sqrt{"" + factorB.toString() + r"}}$$";模板替换法
把公式写成带占位符的模板字符串,再用replaceAll替换占位符为变量值,这种方式适合多变量或者复杂公式的场景:double factorB = 16.0; String formulaTemplate = r"<br> $$x={\sqrt{__FACTOR__}}$$"; String second = formulaTemplate.replaceAll("__FACTOR__", factorB.toString());
原因很明确:Dart的原始字符串(带r前缀)会跳过所有转义处理,包括$的变量解析逻辑,所以直接在原始字符串里用$是无效的,必须通过拼接、替换或者改用普通字符串插值的方式来插入变量。
内容的提问来源于stack exchange,提问作者HolyPoly
相关产品推荐
相关产品推荐

