Matplotlib non sembra trovare i file nella directory di lavoro corrente quando è in esecuzione in latex. Qualcuno sa dove cerca i file?Directory di lavoro in lattice Matplotlib/percorso di ricerca
Lo sfondo è: ho un enorme preambolo che ho \input
in lattice prima dell'elaborazione (un sacco di macro, vari pacchetti utente, ecc.). In un documento autonomo, faccio \input{BigFatHeader.tex}
. Quindi quando uso matplotlib, provo a inserire questo file nel preambolo. Il codice python per farlo è
matplotlib.rcParams['text.latex.preamble'].append(r'\input{BigFatHeader.tex}')
E posso verificare che il file si trova nella CWD - lo vedo quando mi ls
, o posso fare os.path.isfile("BigFatHeader.tex")
e ottenere Vero. Ma quando provo a tracciare qualcosa usando il latex, python sputa un grosso messaggio di errore dal processo del lattice, che culmina nel ! Errore LaTeX: file BigFatHeader.tex
non trovato. Quindi presumibilmente cambia in qualche altra directory (non /tmp/
; ho controllato) per fare il suo lavoro. Qualche idea su dove potrebbe essere?
Il mio esempio di lavoro minima è:
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['text.latex.preamble'] = r'\input{BigFatHeader.tex}'
matplotlib.rcParams['text.usetex'] = True
plt.plot([1,2])
plt.savefig('MWE.pdf')
Dove BigFatHeader.tex
potrebbe essere semplice come
\usepackage{bm}
Non che questo ci ha aiutato a risolvere il mio problema, ma nel caso in cui qualcuno è curioso, la directory di lavoro nella mia installazione si è rivelata '~/.matplotlib/tex.cache /'. – Mike