2011-05-20 16 views
10

benim matplotlib arsa içinde TeX ek açıklamaları işlemek için aşağıdaki satırları: Mükemmel çalışıyor, ama benim ilk nitpick V bir birim olmasıdırTeX render, süslü parantezler, ve dize

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib import rc 

rc('text', usetex=True) 
rc('font', family='serif') 

voltage = 220 

notes = r"\noindent $V_2 = {0:.5} V$".format(voltage) 

plt.annotate(notes, xy=(5,5), xytext=(7,7)) 
plt.show() 

Bu nedenle, (italik) matematik modu yerine, metin modunda olmalıdır. { küme parantezleri } sözdizimi biçimlendirme Python'un dize mülkiyeti, çünkü bir hata tutarsa ​​

notes = r"\noindent $V_2 = {0:.5} \text{V}$".format(voltage) 

: Ben aşağıdaki dizeyi deneyin. Yukarıdaki satırda sadece {0:.5} doğrudur; {V} bir yabancı olarak kabul edilir. Örneğin, Some string Hello World! numaralı telefona numaralı telefon numarasını vermelidir.

nasıl TeX'in { küme parantezleri } Python'un { küme parantezleri } karışmaz emin olmak mı?

cevap

15

Sen parantez iki katına çıkarmak zorunda anlamıyla tedavi edilmesi:

r"\noindent $V_2 = {0:.5} \text{{V}}$".format(voltage) 

BTW, ayrıca yazabilirsiniz

\text V 

ancak en iyisi

Bir birim gerçekte bir metin sembolü olmadığından

.

5

Sen çift kıvırcık bağ onları:

>>> print '{{asd}} {0}'.format('foo') 
{asd} foo