3

MathTextParserQtでいくつかの方程式を描くために使用しています。したがって、必要な tex 文字列を dict から取得し、作成したパーサーの to_rgba メソッドを使用して解析し (一般的なフォント サイズと dpi を渡します)、最後にこれをbyの myFigureCanvasに渡します。 見てください:QWidgetfigimage

class MathWidget(QWidget):
    def __init__(self, parent = None):
            QWidget.__init__(self, parent)
            ...
            self.canvas = MathCanvas() # The FigureCanvas to display the teximage
            ...
            self.parser = mathtext.MathTextParser("Bitmap")

    def render(self,metric):
            equation = self.equations[metric]
            rgb, d = self.parser.to_rgba(equation, color='black', fontsize=8, dpi=200)
            self.canvas.fig.figimage(rgb.astype(float)/255., 0, 0)
            self.canvas.draw()

私の問題は、解析される方程式の長さが可変であるのに対し、 FigureCanvas(必要に応じて)固定サイズであるため、一部の方程式が画像になり、そのサイズが数値を超えることです。この例のように、数式の一部が切り取られている/表示されていない:
数式
を切り取る(予測できない長さの) 方程式は、解析して表示する必要があります。
出力が方程式のサイズ/長さとは無関係に固定サイズのラスタライズされたテックスになるように、パーサーをたとえばフォントサイズに合わせる方法はありますか?

その上:たとえばnumpy/scipyと比較して、matplotlibのドキュメントは何らかの理由で私には不可解に思えます。したがって、誰かがどのようにto_rgba、そしてfigimage正確に機能するかについてコメントできれば、私も感謝します。深さ?:

  • depth は、画像の下部からのベースラインのピクセル単位のオフセットです

前もって感謝します

4

1 に答える 1

0

TeX コードを表示する別の解決策: を呼び出しlatexて dvi ファイルを取得し、呼び出しdvisvgm --no-fontsて dvi ファイルを SVG に変換し、QSvgRenderer を使用して SVG ファイルを読み込んでレンダリングします。Python でラテックス コードを mathml または svg コードに変換する

于 2013-06-03T13:18:09.220 に答える