【发布时间】:2018-12-30 13:52:51
【问题描述】:
我想在文本中显示数学术语,特别是在内联模式下,即在句子中。
使用 LaTeX,例如,这将如下所示: “给定一个直角三角形,其长度为 \(a\) 和 \(b\),斜边长度为 \(c\),我们有 \[a^2 + b^2 = c^2.\] 这个事实被称为勾股定理。”
有人知道如何在 Swift 中实现这一点吗?
(我知道这个例子不用 LaTeX 类的工具也可以用 Swift 实现。但是,我脑海中的表达其实比这个例子复杂,我确实需要 LaTeX 的力量。)
最佳方法是使用类似UITextView 的类来识别数学分隔符 \(,\) 和。 \[,\],识别这些分隔符内的 LaTeX 代码,并相应地格式化文本。
在可汗学院应用程序中,这个问题似乎已得到解决,因为 Apple App Store/Google Play Store 中的屏幕截图显示内联 (LaTeX) 数学。
我找到了包 iosMath,它提供了一个类似 UILabel 的类 MTMathUILabel。由于此类只能显示公式,因此这似乎不足以满足我的目的,除非有一种方法可以采用 LaTeX 源文本(例如上面的示例),将诸如 \(a\) 之类的表达式格式化为小 @ 987654324@s 并在其他文本组件之间设置这些标签。由于我是 Swift 新手,我不知道这是否以及如何实现。此外,从印刷的角度来看,这似乎非常困难,因为换行肯定会出现困难。如果屏幕上同时出现大量此类标签,可能会出现性能问题?
使用WKWebView 和 MathJax 或 KaTeX 可以实现我想要的,当然,这也是一种 hack。这会导致其他困难,例如如果想在屏幕上设置几个WKWebViews,例如在UITableViewCells 里面。
【问题讨论】:
-
你找到解决办法了吗?
-
不,很遗憾没有。 WKWebView 尝试有效,但它当然不是原生解决方案。
-
我发布了一个解决方案,如果您有任何问题,请告诉我