2009-04-30 48 views
15

我想在我的用戶界面中預覽TeX公式。很長一段時間搜索後,在我看來,有沒有其他的可能性比是否有C++的TeX API?

  • 寫公式爲.tex文件
  • 呼叫特克斯與系統(),並寫例如一個DVI文件
  • 通話dvipng with system()並寫入一個png文件
  • 將這個文件加載到GUI中
  • 清理(清除所有這些文件)。

我認爲這樣做的表現不是問題,因爲只有公式可以渲染而不是整個文檔。但是爲TeX系統自動設置環境似乎是一個更大的問題。 那麼,是否有可能將TeX作爲API包含在我的程序中? 非常感謝!

+2

這裏有點挑剔,但你應該把它寫成TeX而不是TEX。這不是什麼大不了的事,但真正的「TeXperts」會對此皺眉頭;) – dreamlax 2009-04-30 10:41:02

+0

謝謝,你是對的:) – nobbi 2009-04-30 10:56:19

回答

2

難道你不能將這些步驟封裝在一個shell腳本中(即將公式和png文件名作爲參數)嗎?該腳本還可以處理爲TeX設置環境。你的程序只是用system()調用來調用腳本。

0

LyX是一個基於TeX的文檔處理器。由於應用程序是開源的,你可以檢查C++代碼,看看它們是如何處理你描述的問題的。

1

我不確定,但認爲MathType的組件會矯枉過正。

也看看sideshare和看Flash視頻,以獲得更多關於sitmo,mathMagig,Edoboard和他們的API工具的信息。

good lucks。

2

TeX有一個名爲MimeTeX的C API,但生成的圖像...並不是很好,因爲它可能是。

如果你確定與Java,還有JLatexMath

如果你想要一個WPF版本,一個是正在開發WPFMath

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。