You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用flutter_tex包(Dart)如何实现LaTeX字符串变量的正常渲染

问题根源

Dart普通字符串中\为转义字符,你拼接\(时反斜杠会被自动转义,最终生成的字符串没有反斜杠,flutter_tex无法识别为LaTeX公式分隔符。

解决方案

方法1:双写反斜杠保留转义

普通字符串中用\\表示实际存在的反斜杠,配合字符串插值动态拼接变量:

String a = '10';
// 最终生成的字符串为 \(10x^2\),符合LaTeX分隔符要求
String formula = '\\(${a}x^2\\)'; 
output.add(
  TeXViewDocument(
    formula,
    style: TeXViewStyle.fromCSS(
      'padding: 15px; color: black; background: white',
    ),
  ),
);

方法2:使用原始字符串拼接

带r前缀的Dart原始字符串不会处理转义字符,把分隔符部分放在原始字符串块中,变量单独拼接:

String a = '10';
String formula = r'\(' + a + r'x^2\)';
output.add(
  TeXViewDocument(
    formula,
    style: TeXViewStyle.fromCSS(
      'padding: 15px; color: black; background: white',
    ),
  ),
);

注意事项

  • 无需调用jsonEncode处理字符串,会额外转义反斜杠和引号破坏格式
  • 调试时可以打印formula内容,正常可渲染的格式需要包含\(、\)分隔符,若打印结果只有(、)说明反斜杠被转义,需要调整写法
  • 要嵌入HTML标签时,只要保证LaTeX分隔符的反斜杠正确即可,示例:
String formula = '<p>计算式:\\(${a}x^2 + bx + c = 0\\)</p>';

内容的提问来源于stack exchange,提问作者stack ex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:36:01