Revision: 3666
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3666&view=rev
Author:   mdboom
Date:     2007-08-02 11:59:29 -0700 (Thu, 02 Aug 2007)

Log Message:
-----------
Add support for \widehat and \widetilde

Modified Paths:
--------------
    trunk/matplotlib/examples/mathtext_examples.py
    trunk/matplotlib/lib/matplotlib/_mathtext_data.py
    trunk/matplotlib/lib/matplotlib/mathtext.py

Modified: trunk/matplotlib/examples/mathtext_examples.py
===================================================================
--- trunk/matplotlib/examples/mathtext_examples.py      2007-08-02 18:49:17 UTC 
(rev 3665)
+++ trunk/matplotlib/examples/mathtext_examples.py      2007-08-02 18:59:29 UTC 
(rev 3666)
@@ -36,7 +36,8 @@
     r'$\frac{x_2888}{y}$',
     r"$\sqrt[3]{\frac{X_2}{Y}}=5$",
     r"$\sqrt[3]{x}=5$",
-    r'$\frac{X}{\frac{X}{Y}}$'
+    r'$\frac{X}{\frac{X}{Y}}$',
+    r'$\widehat{abc}\widetilde{def}$'
     ]
 
 from pylab import *

Modified: trunk/matplotlib/lib/matplotlib/_mathtext_data.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/_mathtext_data.py   2007-08-02 18:49:17 UTC 
(rev 3665)
+++ trunk/matplotlib/lib/matplotlib/_mathtext_data.py   2007-08-02 18:59:29 UTC 
(rev 3666)
@@ -39,6 +39,8 @@
     r'\}'                   : ('cmex10', 130),
     r'\leftangle'           : ('cmex10',  97),
     r'\rightangle'          : ('cmex10',  64),
+    r'\widehat'             : ('cmex10',  15),
+    r'\widetilde'           : ('cmex10',  52),
 
     r'\omega'               : ('cmmi10',  29),
     r'\varepsilon'          : ('cmmi10',  20),

Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-02 18:49:17 UTC (rev 
3665)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-02 18:59:29 UTC (rev 
3666)
@@ -1437,7 +1437,7 @@
     of some characters (such as the BaKoMa fonts), the correct glyph will
     be selected, otherwise this will always just return a scaled version
     of the glyph."""
-    def __init__(self, c, width, state, always=False):
+    def __init__(self, c, width, state, always=False, char_class=Char):
         alternatives = state.font_output.get_sized_alternatives_for_symbol(
             state.font, c)
 
@@ -1445,7 +1445,7 @@
         big_enough = False
         for fontname, sym in alternatives:
             state.font = fontname
-            char = Char(sym, state)
+            char = char_class(sym, state)
             if char.width > width:
                 big_enough = True
                 break
@@ -1455,7 +1455,7 @@
         if not big_enough:
             factor = width / char.width
             state.fontsize *= factor
-            char = Char(sym, state)
+            char = char_class(sym, state)
             
         Hlist.__init__(self, [char])
         
@@ -1969,12 +1969,15 @@
             raise ParseFatalException("Error parsing accent")
         accent, sym = toks[0]
         if accent in self._wide_accents:
-            accent = AutoWidthChar(accent, sym.width, state)
+            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])
         centered.hpack(sym.width, 'exactly')
-        centered.shift_amount = accent._metrics.xmin
+        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.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to