Есть ли TeX API для C ++? - PullRequest
       25

Есть ли TeX API для C ++?

16 голосов
/ 30 апреля 2009

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

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

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

Ответы [ 5 ]

2 голосов
/ 02 июня 2010

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

Если вы в порядке с Java, есть JLatexMath

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

2 голосов
/ 30 апреля 2009

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

1 голос
/ 02 апреля 2010

Я не уверен, но думаю, что Компонент MathType изменится.

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

удачи.

0 голосов
/ 30 июля 2013

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

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

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", "\\[", "\\]"];

Затем мы выполняем системный вызов "latex and textopng".

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

0 голосов
/ 30 апреля 2009

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

...