|
From: <md...@us...> - 2007-07-25 15:40:14
|
Revision: 3612
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3612&view=rev
Author: mdboom
Date: 2007-07-25 08:34:52 -0700 (Wed, 25 Jul 2007)
Log Message:
-----------
Fix for get_xheight/get_underline_thickness. Update examples to use
new math syntax.
Modified Paths:
--------------
branches/mathtext_mgd/examples/mathtext_demo.py
branches/mathtext_mgd/lib/matplotlib/mathtext.py
Modified: branches/mathtext_mgd/examples/mathtext_demo.py
===================================================================
--- branches/mathtext_mgd/examples/mathtext_demo.py 2007-07-25 14:43:13 UTC (rev 3611)
+++ branches/mathtext_mgd/examples/mathtext_demo.py 2007-07-25 15:34:52 UTC (rev 3612)
@@ -17,8 +17,8 @@
grid(True)
xlabel(r'$\Delta_i^j$', fontsize=20)
ylabel(r'$\Delta_{i+1}^j$', fontsize=20)
-tex = r'$\cal{R}\prod_{i=\alpha_{i+1}}^\infty a_i\rm{sin}(2 \pi f x_i)$'
-text(1, 1.6, tex, fontsize=20)
+tex = r'$\mathcal{R}\prod_{i=\alpha_{i+1}}^\infty a_i\sin(2 \pi f x_i)$'
+text(1, 1.6, tex, fontsize=20, va='bottom')
#title(r'$\Delta_i^j \hspace{0.4} \rm{versus} \hspace{0.4} \Delta_{i+1}^j$', fontsize=20)
savefig('mathtext_demo')
Modified: branches/mathtext_mgd/lib/matplotlib/mathtext.py
===================================================================
--- branches/mathtext_mgd/lib/matplotlib/mathtext.py 2007-07-25 14:43:13 UTC (rev 3611)
+++ branches/mathtext_mgd/lib/matplotlib/mathtext.py 2007-07-25 15:34:52 UTC (rev 3612)
@@ -699,7 +699,6 @@
basename, font, metrics, symbol_name, num, glyph, offset = \
self._get_info(font, sym, fontsize, dpi)
- font.draw_rect(0, 0, self.width - 1, self.height - 1)
font.draw_glyph_to_bitmap(
int(ox), int(oy - metrics.ymax), glyph)
@@ -711,16 +710,16 @@
def get_used_characters(self):
return self.used_characters
- def get_xheight(self, font, fontsize):
+ def get_xheight(self, font, fontsize, dpi):
basename, cached_font = self._get_font(font)
- cached_font.font.set_size(fontsize)
+ cached_font.font.set_size(fontsize, dpi)
pclt = cached_font.font.get_sfnt_table('pclt')
xHeight = pclt['xHeight'] / 64.0
return xHeight
- def get_underline_thickness(self, font, fontsize):
+ def get_underline_thickness(self, font, fontsize, dpi):
basename, cached_font = self._get_font(font)
- cached_font.font.set_size(fontsize)
+ cached_font.font.set_size(fontsize, dpi)
return max(1.0, cached_font.font.underline_thickness / 64.0)
def get_kern(self, fontleft, symleft, fontsizeleft,
@@ -944,11 +943,11 @@
ps = "%f %f %f %f rectfill" % (x1, self.height - y2, x2 - x1, y2 - y1)
self.pswriter.write(ps)
- def get_xheight(self, font, fontsize):
+ def get_xheight(self, font, fontsize, dpi):
basename, cached_font = self._get_font(font)
return cached_font.get_xheight() * 0.001 * fontsize
- def get_underline_thickness(self, font, fontsize):
+ def get_underline_thickness(self, font, fontsize, dpi):
basename, cached_font = self._get_font(font)
return cached_font.get_underline_thickness() * 0.001 * fontsize
@@ -1367,7 +1366,7 @@
"""Convenience class to create a horizontal rule."""
def __init__(self, state):
thickness = state.font_output.get_underline_thickness(
- state.font, state.fontsize)
+ state.font, state.fontsize, state.dpi)
height = depth = thickness * 0.5
Rule.__init__(self, None, height, depth, state)
@@ -1375,7 +1374,7 @@
"""Convenience class to create a vertical rule."""
def __init__(self, state):
thickness = state.font_output.get_underline_thickness(
- state.font, state.fontsize)
+ state.font, state.fontsize, state.dpi)
Rule.__init__(self, thickness, None, None, state)
class Glue(Node):
@@ -1950,6 +1949,7 @@
return [box]
def symbol(self, s, loc, toks):
+ # print "symbol", toks
c = toks[0]
if c in self._spaced_symbols:
return [Hlist([self._make_space(0.3),
@@ -1982,7 +1982,7 @@
assert(len(toks)==1)
state = self.get_state()
thickness = state.font_output.get_underline_thickness(
- state.font, state.fontsize)
+ state.font, state.fontsize, state.dpi)
accent, sym = toks[0]
accent = Accent(self._accent_map[accent], self.get_state())
centered = HCentered([accent])
@@ -2067,11 +2067,12 @@
sub = next2
else:
raise ParseFatalException("Subscript/superscript string is too long.")
-
+
state = self.get_state()
rule_thickness = state.font_output.get_underline_thickness(
- state.font, state.fontsize)
- xHeight = state.font_output.get_xheight(state.font, state.fontsize)
+ state.font, state.fontsize, state.dpi)
+ xHeight = state.font_output.get_xheight(
+ state.font, state.fontsize, state.dpi)
if self.is_overunder(nucleus):
vlist = []
@@ -2155,7 +2156,7 @@
cden.hpack(width, 'exactly')
state = self.get_state()
thickness = state.font_output.get_underline_thickness(
- state.font, state.fontsize)
+ state.font, state.fontsize, state.dpi)
space = thickness * 3.0
vlist = Vlist([cnum,
FixedGlue(thickness * 2.0),
@@ -2243,7 +2244,7 @@
pswriter = list()
font_output.set_canvas_size(w, h, pswriter)
ship(2, 2, box)
-
+
if self.output == 'SVG':
# The empty list at the end is for lines
svg_elements = Bunch(svg_glyphs=font_output.svg_glyphs,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|