I didn't write the first pass of SVG support, that was done before I got 
involved -- I'm not sure who to credit, but he or she deserves most of it.

I did add the feature that's causing grief here -- the embedding of 
character outlines directly in the SVG file.

I've committed a change in SVN (both the trunk and the branch) that 
should resolve your problem.  I've written the inkscape mailing list 
about the "correct" solution, but I figure we need a workaround in mpl 
regardless.

If you're not tracking SVN, you can replace your copy of backend_svg.py 
with this one, and it should *probably* work:

http://matplotlib.svn.sourceforge.net/viewvc/*checkout*/matplotlib/branches/v0_91_maint/lib/matplotlib/backends/backend_svg.py?revision=5023&pathrev=5023

Cheers,
Mike

Kaushik Ghose wrote:
> Hi Mike,
>
> Ah, such prompt, friendly and knowledgeable help!
>
> You're the guy implementing svg support in matplotlib, right? Thanks 
> so much for implementing this!!!
> If I can do anything to assist please tell me.
>
> Thanks again,
> -Kaushik
>
> Michael Droettboom wrote:
>> When matplotlib outputs an SVG, each unique character is assigned a 
>> numeric id (these are just assigned in order), and inserted as a 
>> "def", and then "use"d (referenced) wherever they are used.
>>
>> When you paste on SVG into another, those names clash, and Inkscape 
>> is pulling in the wrong characters when it goes to draw.
>>
>> Now, my gut feels that this is actually a bug in Inkscape -- pasting 
>> of referenced objects from one file into another should reassign new 
>> ids.  However, I'm not an SVG expert, so I could be wrong, but I 
>> think I will take this question over to the Inkscape mailing list 
>> anyway.
>>
>> That said, there are probably some workarounds that matplotlib could 
>> make (using a hash of the character's content as the id, for 
>> instance).  I'll look into that and reply when progress has been made.
>>
>> Mike
>>
>> Kaushik Ghose wrote:
>>> Hi Everyone,
>>>
>>> I have a peculiar problem, and I wonder if anyone can assist me.
>>>
>>> I have two figures generated from matplotlib and saved as svgs. They 
>>> both print fine, and they load in Inkscape just fine.
>>>
>>> However, when I copy one figure and paste it into the other, the 
>>> pasted figure's labels and text become garbled.
>>>
>>> Screenshots on this page
>>> http://assorted-experience.blogspot.com/2008/03/inkscape-matplotlibs-svg-one-strange.html
>>>  
>>>
>>>
>>>
>>> Any suggestions would be most welcome
>>> Thanks
>>> -Kaushik
>>>
>>> ------------------------------------------------------------------------- 
>>>
>>> Check out the new SourceForge.net Marketplace.
>>> It's the best place to buy or sell services for
>>> just about anything Open Source.
>>> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
>>>  
>>>
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>   
>>

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to