Я хотел бы отобразить математические термины внутри текста, в частности, во встроенном режиме, то есть внутри предложения.
При использовании LaTeX это будет выглядеть, например, следующим образом: «Учитывая прямоугольный треугольник с катетеромдлина \ (a \) соотв. \ (b \) и гипотенуза длины \ (c \), у нас есть \ [a ^ 2 + b ^ 2 = c ^ 2. \] Этот факт известен как теорема Пифагора. "
Кто-нибудь знает, как этого можно достичь в Swift?
(Я знаю, что этот пример может быть достигнут в Swift без LaTeX-подобных инструментов. Однако выражения в моем умена самом деле более сложный, чем в этом примере, мне нужна мощность LaTeX.)
Оптимальным способом был бы класс, подобный UITextView
, который распознает математические разделители \ (, \) и т. д.\ [, \] распознает код LaTeX внутри этих разделителей и соответствующим образом форматирует текст.
В приложении Khan Academy эта проблема, кажется, решается, как показывают снимки экрана в Apple App Store / Google Play Storeinline (LaTeX) math.
Я нашел пакет iosMath, который предоставляет UILabel
-подобный класс MTMathUILabel
.Поскольку этот класс может отображать только формулы, это, кажется, недостаточно для моей цели, за исключением случаев, когда существует метод, который принимает исходный текст LaTeX, такой как в примере выше, форматирует выражения, такие как \ (a \), в крошечный MTMathUILabel
s и устанавливает эти метки между другими текстовыми компонентами.Поскольку я новичок в Swift, я не знаю, можно ли и как этого достичь.Более того, это кажется очень сложным с типографской точки зрения, так как наверняка возникнут трудности с переносами строк.И могут возникнуть проблемы с производительностью, если на экране одновременно присутствует большое количество таких меток?
Можно добиться того, чего я хочу, используя WKWebView
и MathJax или KaTeX, что такжевзломать, конечно.Это приводит к другим трудностям, например, если вы хотите установить несколько таких WKWebView
с на экране, например, внутри UITableViewCell
с.