Как разработчик приложения для iPhone, которое делает именно это , поверьте мне, когда я говорю, что наборные уравнения не являются тривиальным делом. В моем случае я использовал слои Core Animation для построения подэлементов анализируемого уравнения. Уравнения построены иерархически, и составляющие их операции выложены как таковые. Каждая операция содержится в слое ее родительской операции и размещается в соответствии с правилами этой конкретной операции.
Для визуализации визуальных элементов операций в уравнении я использовал Quartz для рисования линий, символов и т. Д., Но большая часть рисунка представляла собой просто текст, нарисованный в CALayer с использованием текстовых расширений NSString.
Я переопределил стандартную архитектуру рендеринга CALayer для генерации PDF-файлов из этих уравнений, потому что CALayers по умолчанию не рендерится как векторные элементы. Для примера того, как этот рендеринг работает в моем приложении, см. Проект Core Plot с открытым исходным кодом, который делает то же самое на своем базовом уровне.
Я делаю вывод в LaTeX из уравнений, что довольно просто после того, как вы проанализировали их в иерархическую структуру данных, но анализ их из LaTeX в эту структуру оказывается немного сложнее.
Для ввода и оценки простых текстовых уравнений вам может пригодиться GCMathParser Грэма Кокса .