5

ラテックス コード (方程式用) を取得し、それを mathml または svg コードに解析できる python コードはありますか? 文字列 (latex コード) を引数として取り、文字列 (svg または mathml コード) を出力する単純な関数は完璧です。

PS。このhttp://svgkit.sourceforge.net/SVGLaTeX.htmlを見つけましたが、これは Web ベースのプロジェクトであり、使用方法がわかりません。

EDIT:または任意の言語(必須のpythonではない)、または少なくとも(追加のものをインストールせずに)コマンドラインで簡単に実行できるexeファイル。

4

4 に答える 4

3

これは、何もインストールせずに実行できます。

import urllib
import urllib2

def latex2svg(latexcode):
    """
    Turn LaTeX string to an SVG formatted string using the online SVGKit
    found at: http://svgkit.sourceforge.net/tests/latex_tests.html
    """
    txdata = urllib.urlencode({"latex": latexcode})
    url = "http://svgkit.sourceforge.net/cgi-bin/latex2svg.py"
    req = urllib2.Request(url, txdata)
    return urllib2.urlopen(req).read()

print latex2svg("2+2=4")
print latex2svg("\\frac{1}{2\\pi}")

このスクリプトは、LaTeXをSVGに変換する作業を行うSVGKitサーバーを呼び出します。SVGのテキストを返します(試してみてください)。

サードパーティのWebアプリに依存する他のソリューションと同様に、

  1. これは、信頼できるインターネット接続があることを前提としています

  2. そのパフォーマンスは、接続とサーバーの速度に依存します

  3. これは、一貫性を保つためにサードパーティのサイトに依存しています(サードパーティのサイトが停止した場合、またはフォーマットが大幅に変更された場合、これは調整なしでは機能しなくなります)

于 2012-03-06T20:51:44.670 に答える
3

私の解決策は、使用latexして DVI ファイルを生成し、使用dvisvgmして dvi を svg に変換することです。

  1. latex file.tex# file.dvi を生成
  2. dvisvgm --no-fonts file.dvi file.svg# --no-fonts: SVG パスのみを使用

私の経験では、最終的な svg は (InkScape または QSvgRenderer を使用して) 正確にレンダリングされます。

私が使用する LaTeX テンプレートは次のとおりです。

\documentclass[paper=a5,fontsize=12pt]{scrbook}
\usepackage[pdftex,active,tightpage]{preview}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{tikz}
\begin{document}
\begin{preview}
\begin{tikzpicture}[inner sep=0pt, outer sep=0pt]
\node at (0, 0) {texCode}; % <--Put your tex-code here
\end{tikzpicture}
\end{preview}
\end{document}
于 2013-06-03T09:12:16.083 に答える