我正在尝试显示有时可能包含数学表达式的文本,因此我正在使用iosMath中的MTMathUILabel。我动态生成标签,并在从数据库中提取字符串时将它们添加到堆栈中。问题是所有不是数学的文本都没有空格。即: 在db:解决以下等式:(数学在这里) 在标签中:Solvethefollowingequation :(数学在这里)
这是我到目前为止所尝试的内容:
for question in all_questions {
let finalString = question.question?.replacingOccurrences(of: " ", with: "\\space", options: .literal, range: nil)
let label = MTMathUILabel()
label.textColor = UIColor.black
label.latex = finalString
stack.addArrangedSubview(label)
}
但问题在于它确实放置了两个。并且xcode不允许我只写一个\因为它没有被转义。但是,如果我只是写
print("\\space")
然后它只打印一个。
我如何解决这个问题,所以我只添加一个\?如果做不到这一点,我怎样才能达到我的目的?那里有更好的图书馆吗?
答案 0 :(得分:0)
在快速浏览一下MTMathUILabel的doc和LaTeX约定之后,我相信你应该用波形符号替换你的空格"〜"。这将使它们成为不间断的空间并避免反斜杠问题(这可能是由于MTMathUILabel无法理解的空间)。
如果公式本身具有合法的空格,系统地替换所有空格可能会产生不良结果。
例如,二次方程表示为:
x = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2a}
您将最终替换花括号内的空格,这可能是您想要的也可能不是:
X〜=〜\压裂{-b〜\点〜\ SQRT {B ^ 2-4ac}} {2A}