2009-04-30 3 views
15

Я хочу просмотреть формулы TeX в моем пользовательском интерфейсе. После долгих поисков времени, мне кажется, что нет никакой другой возможности, чемЕсть ли TeX API для C++?

  • написать формулу в .tex файл
  • вызов текс с системой() и написать дви файлу
  • вызова, например, dvipng с системой() и написать файл png
  • загрузить этот файл в GUI
  • очистить все (стереть все эти файлы).

Я думаю, что выполнение этого способа делает это не проблема, так как есть только формулы для рендеринга, а не целые документы. Но автоматическая настройка среды для системы TeX представляется более серьезной проблемой. Итак, есть ли возможность включить TeX в качестве API в мою программу? Спасибо большое!

+2

Просто немного зашифруйте здесь, но вы должны написать его как TeX, а не TEX. Это неважно, но настоящие «TeXperts» на него нахмурились;) – dreamlax

+0

Спасибо, ты прав :) – nobbi

+0

Ваш вопрос очень хороший. Я тоже хочу такую ​​DLL. Я хочу вызвать некоторую функцию (текст TeX) и получить растровое изображение в качестве результата. –

ответ

2

Не могли бы вы инкапсулировать эти шаги в одном сценарии оболочки (т. Е. Который принимает формулу и имя файла png в качестве аргументов)? Сценарий также может обрабатывать настройку среды для TeX. Ваша программа просто вызывает сценарий с вызовом system().

0

LyX является TeX на основе процессора документов. Поскольку приложение является открытым исходным кодом, вы можете проверить код на C++, чтобы узнать, как они справляются с описанной вами проблемой.

1

Я не уверен, но думаю, что компонент MathType будет излишним.

Также посмотрите на sideshare и посмотрите флеш-видео, чтобы получить дополнительную информацию о sitmo, mathMagig, Edoboard и их инструментах API.

good lucks.

2

Существует C API для TeX, называемый MimeTeX, но получившееся изображение ... не так красиво, как могло бы быть.

Если вы хорошо с Java, есть JLatexMath

И если вы хотите версию WPF, один находится в стадии разработки в WPFMath

+0

WPF-Math официально переехал в GitHub: https://github.com/ForNeVeR/wpf-math (отказ от ответственности: я его поддерживаю). – ForNeVeR

0

Для Edoboard и Tutorsbox.com мы следующее:

Держите черный список латексных команд, чтобы избежать:

TEX_BLACKLIST = ["\\def", "\\let", "\\futurelet", 
    "\\newcommand", "\\renewcommand", "\\else", "\\fi", "\\write", 
    "\\input", "\\include", "\\chardef", "\\catcode", "\\makeatletter", 
    "\\noexpand", "\\toksdef", "\\every", "\\errhelp", "\\errorstopmode", 
    "\\scrollmode", "\\nonstopmode", "\\batchmode", "\\read", "\\csname", 
    "\\newhelp", "\\relax", "\\afterground", "\\afterassignment", 
    "\\expandafter", "\\noexpand", "\\special", "\\command", "\\loop", 
    "\\repeat", "\\toks", "\\output", "\\line", "\\mathcode", "\\name", 
    "\\item", "\\section", "\\mbox", "\\DeclareRobustCommand", "\\[", "\\]"]; 

затем мы делаем системный вызов «латексную и textopng».

Это как API REST плюс некоторое кэширование, и здесь вы идете :) В качестве обновления мы скоро преобразуем эти изображения LaTeX в SVG.

Смежные вопросы