[Pkg-fonts-devel] long standing gs.defoma issue

Nicolas François nicolas.francois at centraliens.net
Wed Sep 13 21:16:09 UTC 2006


Hello,

I'm contacting you to discuss a patch for the bug #325598 (and the dozen
bugs merged to it).

I'm CCing:
 * Ian Jackson
   You worked on the same issue:
   https://launchpad.net/distros/ubuntu/+source/gs-common/+bug/6614
   I would be interrested by your opinion.
 * Arthur Marsh
   In http://bugs.debian.org/325722, you mentionned a consequence of this
   bug (a font can't be used for printing with Abiword - not only a
   warning during installation)
   Can you stil reproduce this bug?
   Can you try this patch?
 * pkg-fonts-devel at lists.alioth.debian.org
 * gs-common at packages.debian.org
 * defoma at packages.debian.org
   Maybe you have a better idea of what is CIDSUpllement, and maybe you
   know if it's wrong to ask font maintainers to specify it in the defoma
   hint file.
   You can also maybe help for testing.



Currently, gs.defoma tries to detect the supplement by looking at other
fonts installed on the box. I don't think this is correct, and I don't
think the supplement can be guessed.

I don't really know what this CIDSupplement value is exactly, but
according to:
http://partners.adobe.com/public/developer/en/font/5093.Adobe-Korea1-2.pdf
"Adobe-Korea1 Supplement 0" provides CID             0 through  9332,
"Adobe-Korea1 Supplement 1" adds support for CID  9333 through 18154,
"Adobe-Korea1 Supplement 2" adds support for CID 18351 through 18351.

http://partners.adobe.com/public/developer/en/font/5080.Adobe-CNS1-4.pdf
"Adobe-CNS1 Supplement 0" provides CID             0 through 14098,
"Adobe-CNS1 Supplement 1" adds support for CID 14099 through 17407,
"Adobe-CNS1 Supplement 2" adds support for CID 17408 through 17600,
"Adobe-CNS1 Supplement 3" adds support for CID 17601 through 17605 and 17606 through 18784 and 18785 through 18845,
"Adobe-CNS1 Supplement 4" adds support for CID 18846 through 18964.

And according to:
grep -ri Count /usr/share/fonts/cmap/
/usr/share/fonts/cmap/adobe-cns1/Adobe-CNS1-0:/CIDCount 14099 def
/usr/share/fonts/cmap/adobe-cns1/Adobe-CNS1-1:/CIDCount 17408 def
/usr/share/fonts/cmap/adobe-cns1/Adobe-CNS1-2:/CIDCount 17601 def
/usr/share/fonts/cmap/adobe-cns1/Adobe-CNS1-3:/CIDCount 18846 def
/usr/share/fonts/cmap/adobe-cns1/Adobe-CNS1-4:/CIDCount 18965 def
/usr/share/fonts/cmap/adobe-korea1/Adobe-Korea1-0:/CIDCount 9333 def
/usr/share/fonts/cmap/adobe-korea1/Adobe-Korea1-1:/CIDCount 18155 def
/usr/share/fonts/cmap/adobe-korea1/Adobe-Korea1-2:/CIDCount 18352 def
(packages cmap-adobe-* from non-free)

I could guess that the higher the supplement is, the more CID are provided.
(but if Supplement 0 and SUpplement 4 are installed on one box, it is
wrong to assume that afont installed afterwards will have an higher
supplement value).

What I propose in my patch is to let the font maintainers specify
the CIDSupplement value in the defoma hint file.
I currently use a null value and display a warning if none is specified.
We could also just stop installing the font, or just use 0 without any
warnings.

Any comments?

Thanks in advance,
-- 
Nekral
-------------- next part --------------
diff -rauN ../orig/gs-common-0.3.9/debian/gs.defoma ./gs-common-0.3.9/debian/gs.defoma
--- ../orig/gs-common-0.3.9/debian/gs.defoma	2005-08-17 15:12:27.000000000 +0200
+++ ./gs-common-0.3.9/debian/gs.defoma	2006-09-13 20:57:21.000000000 +0200
@@ -92,20 +92,22 @@
 		    print FF " ;\n";
 
 		    # for gs8
-		    ## FIXME: the font packages should probably provides
-		    ##        a CIDSupplement information where the fonts
-		    ##        actually supports.
-		    @cmaplist = defoma_id_get_font($IdCmap, 'installed');
-		    foreach $j (@cmaplist) {
-		    	@ch = split(/ +/, $IdCmap->{7}->[$j]);
-			if (!defined($hh{$ch[1]}) ||
-			    $hh{$ch[1]} < $ch[9]) {
-			    $hh{$ch[1]} = $ch[9];
-			}
-		    }
 		    if ($c eq 'truetype-cjk') {
-		       # FIXME: need to support the sub font id for the collection.
-		       print FFFF '/', $Id->{0}->[$i], ' << /FileType /TrueType /Path (', $f, ') /SubfontID ', '0', ' /CSI [(', $h[6], ') ', $hh{$h[6]}, "] >> ;\n";
+			my @hints = defoma_id_get_hints( $Id, $i );
+			my $cidsupplement;
+			while (@hints) {
+			    my $var = shift @hints;
+			    if ($var eq "--CIDSupplement") {
+				$cidsupplement = shift @hints;
+				last;
+			    }
+			}
+			unless (defined $cidsupplement) {
+			    warn "No CIDSuplement specified, defaulting to 0.\n";
+			    $cidsupplement = 0;
+			}
+			# FIXME: need to support the sub font id for the collection.
+			print FFFF '/', $Id->{0}->[$i], ' << /FileType /TrueType /Path (', $f, ') /SubfontID ', '0', ' /CSI [(', $h[6], ') ', $cidsupplement, "] >> ;\n";
 		    }
 		}
 	    }


More information about the Pkg-fonts-devel mailing list