|
From: <md...@us...> - 2007-07-30 18:57:15
|
Revision: 3635
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3635&view=rev
Author: mdboom
Date: 2007-07-30 11:57:09 -0700 (Mon, 30 Jul 2007)
Log Message:
-----------
Improving spacing operators.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/mathtext.py
Modified: trunk/matplotlib/lib/matplotlib/mathtext.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mathtext.py 2007-07-30 18:44:36 UTC (rev 3634)
+++ trunk/matplotlib/lib/matplotlib/mathtext.py 2007-07-30 18:57:09 UTC (rev 3635)
@@ -1698,13 +1698,17 @@
space =(FollowedBy(bslash)
+ (Literal(r'\ ')
| Literal(r'\/')
- | Group(Literal(r'\hspace{') + number + Literal('}'))
- )
+ | Literal(r'\,')
+ | Literal(r'\;')
+ | Literal(r'\quad')
+ | Literal(r'\qquad')
+ | Literal(r'\!')
+ )
).setParseAction(self.space).setName('space')
symbol = Regex("(" + ")|(".join(
[
- r"\\(?!left[^a-z])(?!right[^a-z])[a-zA-Z0-9]+(?!{)",
+ r"\\(?!quad)(?!qquad)(?!left[^a-z])(?!right[^a-z])[a-zA-Z0-9]+(?!{)",
r"[a-zA-Z0-9 ]",
r"[+\-*/]",
r"[<>=]",
@@ -1794,7 +1798,7 @@
ambiDelim = oneOf(r"""| \| / \backslash \uparrow \downarrow
\updownarrow \Uparrow \Downarrow
- \Updownarrow""")
+ \Updownarrow .""")
leftDelim = oneOf(r"( [ { \lfloor \langle \lceil")
rightDelim = oneOf(r") ] } \rfloor \rangle \rceil")
autoDelim <<(Suppress(Literal(r"\left"))
@@ -1886,16 +1890,19 @@
state = self.get_state()
metrics = state.font_output.get_metrics(
state.font, 'm', state.fontsize, state.dpi)
- em = metrics.width
- return Hbox(em * percentage)
-
+ em = metrics.advance
+ return Kern(em * percentage)
+
+ _space_widths = { r'\ ' : 0.3,
+ r'\,' : 0.4,
+ r'\;' : 0.8,
+ r'\quad' : 1.6,
+ r'\qquad' : 3.2,
+ r'\!' : -0.4,
+ r'\/' : 0.4 }
def space(self, s, loc, toks):
assert(len(toks)==1)
- if toks[0]==r'\ ': num = 0.30 # 30% of fontsize
- elif toks[0]==r'\/': num = 0.1 # 10% of fontsize
- else: # hspace
- num = float(toks[0][1]) # get the num out of \hspace{num}
-
+ num = self._space_widths[toks[0]]
box = self._make_space(num)
return [box]
@@ -2179,10 +2186,13 @@
state = self.get_state()
height = max([x.height for x in middle])
depth = max([x.depth for x in middle])
- hlist = Hlist(
- [AutoSizedDelim(front, height, depth, state)] +
- middle.asList() +
- [AutoSizedDelim(back, height, depth, state)])
+ parts = []
+ if front != '.':
+ parts.append(AutoSizedDelim(front, height, depth, state))
+ parts.extend(middle.asList())
+ if back != '.':
+ parts.append(AutoSizedDelim(back, height, depth, state))
+ hlist = Hlist(parts)
return hlist
####
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|