8000 Fixed color, alignment bugs in the latex backend. · matplotlib/matplotlib@403785d · GitHub
[go: up one dir, main page]

Skip to content

Commit 403785d

Browse files
committed
Fixed color, alignment bugs in the latex backend.
svn path=/trunk/matplotlib/; revision=1364
1 parent c6d5085 commit 403785d

File tree

3 files changed

+29
-35
lines changed

3 files changed

+29
-35
lines changed

examples/tex_demo.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66
s = cos(2*2*pi*t)
77
plot(t, s)
88

9-
xlabel('time (s)')
10-
ylabel('voltage (mV)')
11-
##title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!",
12-
## fontsize=20)
9+
xlabel(r'\bf{time (s)}')
10+
ylabel(r'\it{voltage (mV)}',fontsize=16)
1311
title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty{-e^{i\pi} \over 2^n}$!",
14-
fontsize=20)
12+
{'bbox':{'fc':0.8,'pad':0}}, fontsize=16, color='r')
1513
grid(True)
1614
savefig('tex_demo')
1715

lib/matplotlib/backends/backend_latex.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def get_text_width_height(self, s, prop, ismath):
2323
"""
2424
fontsize = prop.get_size_in_points()
2525
l,b,r,t = self.texmanager.get_ps_bbox(s)
26-
w = (r-l)#*fontsize/10.
27-
h = (t-b)#*fontsize/10.
26+
w = (r-l)*fontsize/10.
27+
h = (t-b)*fontsize/10.
2828
#print s, w, h
2929
return w, h
3030

@@ -37,15 +37,13 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath):
3737
corr = 0#w/2*(fontsize-10)/10
3838
pos = _nums_to_str(x-corr, y)
3939
thetext = 'psmarker%d' % self.textcnt
40-
setcolor = '%1.3f %1.3f %1.3f setrgbcolor' % gc.get_rgb()
4140
scale = float(fontsize/10.0)
42-
color = r'\rgb %1.3f %1.3f %1.3f'%gc.get_rgb()
43-
tex = '\color{rgb}{%s}'%s
44-
self.psfrag.append(r'\psfrag{%s}[bl][bl][%f][%f]{%s}'%(thetext, scale, angle, s))
41+
color = '%1.3f,%1.3f,%1.3f'% gc.get_rgb()
42+
tex = r'\color[rgb]{%s} %s' % (color, s)
43+
self.psfrag.append(r'\psfrag{%s}[bl][bl][%f][%f]{%s}'%(thetext, scale, angle, tex))
4544
ps = """\
4645
gsave
4746
%(pos)s moveto
48-
%(setcolor)s
4947
(%(thetext)s)
5048
show
5149
grestore
@@ -55,8 +53,6 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath):
5553
self.textcnt += 1
5654

5755

58-
59-
6056
class FigureCanvasLatex(FigureCanvasBase):
6157
basepath = get_data_path()
6258

@@ -82,7 +78,7 @@ def print_figure(self, outfile, dpi=72,
8278
latexh = file(outfile, 'w')
8379

8480
# center the figure on the paper
85-
self.figure.dpi.set(72) # ignore the passsed dpi setting for PS
81+
self.figure.dpi.set(72) # ignore the passed dpi setting for PS
8682
width, height = self.figure.get_size_inches()
8783

8884
if orientation=='landscape':
@@ -161,14 +157,13 @@ def print_figure(self, outfile, dpi=72,
161157
print >>latexh, r"""\documentclass{article}
162158
\usepackage{psfrag}
163159
\usepackage[dvips]{graphicx}
160+
\usepackage{color}
164161
\pagestyle{empty}
165162
\begin{document}
166163
167-
168164
\begin{figure}[t]
169165
%s
170-
\resizebox{5.5in}{!}{\includegraphics{%s}}
171-
166+
\scalebox{1}{\includegraphics{%s}}
172167
\end{figure}
173168
174169
\end{document}

lib/matplotlib/texmanager.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
from matplotlib._image import readpng, fromarray
1414
from matplotlib.numerix import ravel, where, array, \
1515
zeros, Float, absolute, nonzero, sqrt
16+
17+
debug = False
18+
1619
class TexManager:
1720
"""
1821
Convert strings to dvi files using TeX, caching the results to a
@@ -31,33 +34,27 @@ def __init__(self):
3134
self.pscnt = 0
3235
self.dvipngVersion = None
3336

34-
def make_dvi(self, tex):
37+
def make_dvi(self, tex, force=0):
38+
if debug: force = True
39+
3540
prefix = self.get_prefix(tex)
3641
fname = os.path.join(self.texcache, prefix+ '.tex')
3742
dvitmp = prefix + '.dvi'
3843
dvifile = os.path.join(self.texcache, dvitmp)
3944

4045
logfile = prefix + '.log'
4146
fh = file(fname, 'w')
42-
if True: #use latex
43-
s = r"""\documentclass{article}
44-
\pagestyle{empty}
45-
\begin{document}
46-
%s
47-
8000 \end{document}
48-
""" % tex
49-
fh.write(s)
50-
fh.close()
51-
command = 'latex %s'%fname
52-
else:
53-
s = r"""\nopagenumbers
47+
s = r"""\nopagenumbers
48+
\hsize=72in
49+
\vsize=72in
5450
%s
5551
\bye
5652
""" % tex
57-
fh.write(s)
58-
fh.close()
59-
command = 'tex %s'%fname
60-
if not os.path.exists(dvifile):
53+
fh.write(s)
54+
fh.close()
55+
command = 'tex %s'%fname
56+
57+
if force or not os.path.exists(dvifile):
6158
#sin, sout = os.popen2(command)
6259
#sout.close()
6360
os.system(command)
@@ -70,6 +67,8 @@ def get_prefix(self, tex):
7067
return md5.md5(tex).hexdigest()
7168

7269
def make_png(self, tex, dpi, force=0):
70+
if debug: force = True
71+
7372
dvifile = self.make_dvi(tex)
7473
prefix = self.get_prefix(tex)
7574
pngfile = os.path.join(self.texcache, '%s_%d.png'% (prefix, dpi))
@@ -88,6 +87,8 @@ def make_png(self, tex, dpi, force=0):
8887
return pngfile
8988

9089
def make_ps(self, tex, dpi, force=0):
90+
if debug: force = True
91+
9192
dvifile = self.make_dvi(tex)
9293
prefix = self.get_prefix(tex)
9394
psfile = os.path.join(self.texcache, '%s_%d.epsf'% (prefix, dpi))

0 commit comments

Comments
 (0)
0