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.)
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.
Sie können Ihr Latex \newcommand
s in die Präambel einfügen, wie hier:
Matplotlib Latex Arbeitsverzeichnis / Suchpfad
Tags und Links latex matplotlib pyparsing