math_keyboard
math_keyboard 是一个 Flutter 包,它允许使用排版输入字段(所谓的“数学字段”)和完全集成的自定义数学键盘在 Flutter 中编辑数学表达式,仅使用 Flutter - 无需插件,无 Web 视图。
math_keyboard 包提供了一个行为类似于 Flutter TextField 的小部件,并具有相同的完全集成,即焦点树支持、输入装饰支持,以及屏幕软件键盘和物理键盘输入支持。除此之外,数学字段的排版使用 TeX,并且该包支持转换为数学表达式(例如可用于计算)。
math_keyboard 是一个开源项目,旨在提供一种编辑数学表达式的方法,在输入和 UI 方面提供最佳用户体验,并允许对用户输入的数学表达式进行准确评估。simpleclub 应用使用了它,因此有了这个关联。
实施
以下是关于该包实现的一些高级信息
描述。如果您感到好奇或打算贡献,这将很有用。
有关*如何将 math_keyboard 集成到您自己的应用*的信息,请参阅
包的 README。
数学表达式
请注意 math_keyboard 包包含一项主要功能,允许以数学方式处理输入
表达式,即将其转换为“数学表达式”(这是我们在项目上下文中
使用的格式)。
我们通过使用两种格式来实现这一目标
- 由 TeX 驱动的排版显示格式(见下文)。
- 数据格式,即数学表达式。
这种“数据格式”取决于 math_expressions 包。在此格式中处理
表达式允许您例如评估表达式。
TeX 排版
数学字段内容,即用户输入的表达式,以及键盘本身的一些符号
都使用 TeX 进行排版。为了在 Flutter 中使用 TeX 排版,我们在 2020 年初创建了自己的概念验证
渲染器,名为 CaTeX。该项目目前处于暂停状态,在此期间,我们与
flutter_math 包合作,该包旨在实现类似的功能。
由于该存储库缺乏维护,我们目前正在使用我们的分支版本,
flutter_math_fork。请注意,我们的最终目标是将 math_keyboard 包
与 catex 包完全集成,这将使我们对排版数学的渲染具有最大的控制力。