diff -uNr pango_origin/pango/fonts.c pango_modify/pango/fonts.c
--- pango_origin/pango/fonts.c	2006-02-22 17:25:12.000000000 +0800
+++ pango_modify/pango/fonts.c	2006-03-09 15:22:01.000000000 +0800
@@ -961,14 +961,54 @@
 append_field (GString *str, const FieldMap *map, int n_elements, int val)
 {
   int i;
+  int map_style = 0;
+  
   for (i=0; i<n_elements; i++)
     {
+      if (n_elements > 1)
+	{
+	  if (!strcmp (map[1].str, "Light"))
+	  {
+	    map_style = 1;	//weight
+	  }
+        else if (!strcmp (map[1].str, "Oblique"))
+	  {
+	    map_style = 2;	//style
+	  }
+        else if (!strcmp (map[1].str, "Extra-Condensed"))
+	  {
+	    map_style = 3;	//stretch
+	  }
+        else if (!strcmp (map[1].str, "Small-Caps"))
+	  {
+	    map_style = 4;	//variant
+	  }
+	}
+      
       if (map[i].value == val)
 	{
 	  if (map[i].str)
 	    {
 	      if (str->len > 0 && str->str[str->len -1] != ' ')
 		g_string_append_c (str, ' ');
+
+	      if (map_style == 1)
+		{
+		  g_string_append (str, "weight=");
+		}	        
+	      else if (map_style == 2)
+		{
+		  g_string_append (str, "style=");
+		}  
+	      else if (map_style == 3)
+		{
+		  g_string_append (str, "stretch=");
+		}  
+	      else if (map_style == 4)
+		{
+		  g_string_append (str, "variant=");
+		}
+	      
 	      g_string_append (str, map[i].str);
 	    }
 	  return;
