|
From: <md...@us...> - 2007-08-13 14:29:52
|
Revision: 3704
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3704&view=rev
Author: mdboom
Date: 2007-08-13 07:29:49 -0700 (Mon, 13 Aug 2007)
Log Message:
-----------
Fix spacing of operators (particularly with custom fonts).
Fix positioning of accents.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/mathtext.py
Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-13 12:55:27 UTC (rev 3703)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-13 14:29:49 UTC (rev 3704)
@@ -1098,7 +1098,7 @@
def _update_metrics(self):
metrics = self._metrics = self.font_output.get_metrics(
self.font, self.c, self.fontsize, self.dpi)
- self.width = metrics.width
+ self.width = metrics.xmax - metrics.xmin
self.height = metrics.ymax - metrics.ymin
self.depth = 0
@@ -1169,9 +1169,10 @@
class Hlist(List):
"""A horizontal list of boxes.
@135"""
- def __init__(self, elements, w=0., m='additional'):
+ def __init__(self, elements, w=0., m='additional', do_kern=True):
List.__init__(self, elements)
- self.kern()
+ if do_kern:
+ self.kern()
self.hpack()
def kern(self):
@@ -1453,14 +1454,10 @@
class HCentered(Hlist):
"""A convenience class to create an Hlist whose contents are centered
within its enclosing box."""
- def __init__(self, elements, is_accent = False):
+ def __init__(self, elements):
self.is_accent = is_accent
- Hlist.__init__(self, [SsGlue()] + elements + [SsGlue()])
-
- def kern(self):
- Hlist.kern(self)
- if not self.is_accent and isinstance(self.children[-2], Kern):
- self.children = self.children[:-2] + [SsGlue()]
+ Hlist.__init__(self, [SsGlue()] + elements + [SsGlue()],
+ do_kern=False)
class VCentered(Hlist):
"""A convenience class to create an Vlist whose contents are centered
@@ -2028,10 +2025,12 @@
if c in self._spaced_symbols:
return [Hlist( [self._make_space(0.2),
char,
- self._make_space(0.2)] )]
+ self._make_space(0.2)] ,
+ do_kern = False)]
elif c in self._punctuation_symbols:
return [Hlist( [char,
- self._make_space(0.2)] )]
+ self._make_space(0.2)] ,
+ do_kern = False)]
return [char]
_accent_map = {
@@ -2065,13 +2064,10 @@
if accent in self._wide_accents:
accent = AutoWidthChar(
accent, sym.width, state, char_class=Accent)
- shift_amount = 0.
else:
accent = Accent(self._accent_map[accent], state)
- shift_amount = accent._metrics.xmin
- centered = HCentered([accent], is_accent=True)
+ centered = HCentered([accent])
centered.hpack(sym.width, 'exactly')
- centered.shift_amount = shift_amount
return Vlist([
centered,
Vbox(0., thickness * 2.0),
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|