Erweitern des Matplotlib-Mathtext-Parsers

9

Für die meisten meiner interaktiven Plots mit Matplotlib möchte ich keine Latexverarbeitung von Mathe verwenden. (Hauptsächlich, weil es zu langsam ist, aber auch, weil es für den häufigen Gebrauch IMHO nur ein bisschen zu verschwommen ist.) Aber ich benutze auch immer meine eigenen Makros, wenn ich Latex schreibe. Als nur ein Beispiel, anstatt etwas wie $M_{\odot}$ zu tun, definiere ich $\Msun$ . Wenn ich also matplotlib verwende, tendiere ich dazu, Letzteres automatisch zu schreiben und dann einen Fehler zu bekommen, den ich beheben muss. Dies ist nur ein besonders einfaches Beispiel, und ich möchte die Flexibilität haben, ein Makro in meinen Papieren und meinen Zeichnungen gleichzeitig ohne viel Arbeit neu zu definieren.

Also, gibt es eine vernünftige Möglichkeit, den Mathtext-Parser so zu erweitern, dass er Dinge wie $\Msun$ versteht? Oder müsste ich mathtext.py oder etwas hacken?

(Mein Fallback definiert Msun als String r'M_{\odot}' , also könnte ich etwas wie r'$M = 10\,' + Msun + '$' schreiben, aber das ist unangenehm und würde für mich nicht automatisch sein.)

    
Mike 12.02.2012, 21:11
quelle

2 Antworten

4

Makros werden von Matplotlibs Mathtext nicht unterstützt, Sie müssten mathtext.py bearbeiten. Vielleicht ist es am einfachsten, eine eigene Makroerweiterung durchzuführen, bevor die Zeichenfolge an den Mathtext-Parser übergeben wird, z. text(x,y,expand(r'$M = \Msun$')) wobei expand Ihre eigenen Makros wie \Msun durch ihre Bedeutung ersetzt.

    
Jouni K. Seppänen 14.02.2012, 05:52
quelle
0

Sie können Ihr Latex \newcommand s in die Präambel einfügen, wie hier: Matplotlib Latex Arbeitsverzeichnis / Suchpfad

    
ev-br 13.02.2012 14:31
quelle

Tags und Links