[Fontinst] title graphic

Lars Hellström lars.hellstrom at residenset.net
Sat Jun 25 11:34:30 CEST 2005


At 00.24 +0200 2005-06-24, Stephan Hennig wrote:
>Ralf Stubner schrieb:
>
>> So it is pretty clear that Walter was right. GS embeds Palladio but
>> changes /FontName appropriately.
>
>Interesting. I should find the time to lern more about all those font
>formats and tools (and, e.g., what's the difference between Type-1 and
>Type-1C).

The main difference is probably that a Type1 font is Postscript code
throughout, whereas a CFF (or Type1C, as is the PDF key for this font type)
is a compact collection of binary tables. There are also some differences
between the charstring formats used (they're probably about 70% the same),
but I think it's technically possible to make PS font with CFF charstrings
and Type1 overall organisation if its FontType is 2.

There are however many features of Type1 fonts which obscure the fact that
they're structurally mostly Postscript. The eexec encryption traditionally
applied hides most of the code in a blurb of binary data. The charstrings
that actually encode the outlines aren't postscript either, but some
special bytecode. There are plenty of Type1 renderers around with only a
shallow understanding of Postscript and which therefore impose additional
restrictions on Type1 font format for them to be generally useful. Still:
in Type1 fonts it is postscript code which sets up all the data structures
of the font, and in CFF there isn't any postscript to be seen at all.

Lars Hellström

PS: In case you're interested, here is a Type1 font programmed without any
of the usual "dessing it up as binary data", as an example of how much
postscript there usually is in there.

%!FontType1-1.1: AGaramondAdditions-Regular 0.1
%%Creator: MPtoFONT v0.41
%%CreationDate: Mon Dec 01 23:15:07 CET 2003
%%Version: 0.1 20020805
% The AGaramond Additions family of fonts is free software;
% you can redistribute it and/or modify it under the terms
% of the Design Science License.
% As a special exception, permission is granted to include
% this font program in a Postscript, PDF, or similar file
% that consists of a document that contains text to be
% displayed or printed using this font, regardless of the
% conditions or license applying to the document itself.
12 dict begin
/FontInfo 9 dict dup begin
/version(0.1 2002/08/05)def
/Notice(Copyright 2002, Lars Hellstr\\"om)def
/FullName(AGaramond Additions Regular)def
/FamilyName(AGaramond Additions)def
/Weight(Regular)def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontType 1 def
/FontMatrix[0.001 0 0 0.001 0 0]def
/FontName/AGaramondAdditions-Regular def
/FontBBox[40 -4 922 664]def
/PaintType 0 def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 80 /Pi put
dup 71 /Gamma put
dup 73 /I put
dup 87 /uni0428 put
readonly def
currentdict end
dup /Private 12 dict dup begin
/BlueFuzz 0 def
/BlueScale 0.039625 def
/BlueShift 7 def
/BlueValues[-16 0 660 676]def
/lenIV 0 def
/MinFeature[16 16]def
/password 5839 def
/RD {string currentfile exch readstring pop} executeonly def
/ND {noaccess def} executeonly def
/NP {noaccess put} executeonly def
/OtherSubrs [
{
grestore
pop
currentpoint [ 19 5 roll ] {
2 index sub 3 1 roll exch
} forall pop pop
14 6 roll
[ 7 1 roll ] {2 index add} forall
rcurveto pop pop
[ 5 1 roll ] {2 index add} forall rcurveto
}
systemdict /internaldict known {
[
1183615869 systemdict /internaldict get exec
/FlxProc
/known cvx
[ 3 index /FlxProc /get cvx /exec cvx ] cvx
6 5 roll
/ifelse cvx
] cvx
}{
[
userdict
/internaldict
/known cvx
{
1183615869 userdict /internaldict get exec
dup /FlxProc known {true}{pop false}ifelse
}
{false}
/ifelse cvx
{/FlxProc get exec}
9 8 roll
/ifelse cvx
] cvx
}ifelse
{gsave currentpoint newpath moveto}
{currentpoint grestore gsave currentpoint newpath moveto}
systemdict /internaldict known {
1183615869 systemdict /internaldict get exec
dup /startlock known {
/startlock get
}{
dup /strtlck known {
/strtlck get
}{
pop {pop 3}
}ifelse
}ifelse
}{
{pop 3}
}ifelse
] def
/Subrs 10 array
dup 6 <
f314c228a5b46b09a086c446bb1c
> NP
dup 5 <
f314c228a5b46b09a086c7f810be1d37a7af
> NP
dup 3 <
1b
> NP
dup 2 <
9b59c52723
> NP
dup 0 <
9eb4f595ec42346644ed22
> NP
dup 7 <
f314396c6bcd87db821eb73e9fa47d
> NP
dup 4 <
9c2c162338695a86
> NP
dup 9 <
e9b056ae62
> NP
dup 8 <
f314396c6bcd87aaa2ec1947
> NP
dup 1 <
9b58f7fe7a
> NP
noaccess def
put
dup /CharStrings 5 dict dup begin
/.notdef <
9b2ca47a8c
> ND
/Gamma <
a3bf72b8cf862baf9df4c1a7226cda05b9afd40ef79614effe30ac0a8293b765
2da433a4070537296a4c09e17afa8b05dfd4624ef0470128c7b21eb80bc457d7
f1f7a8539b1977236b981845b1024ad19d019741e2dabb5127d2b67ef30b3493
4c5f5e592df5076cd7a2a4b226c950f3a46d372a7d211ab8d729e93521afdbc1
66d9ce01c3f60d8b19441d6a9ce06a5cc7ecc337d85743ed6f4666e4bed3a523
81d5ce38407fb92331ff24c998
> ND
/I <
a4e1072043cf5ef344cb41d5454a2b9ffbf9cebf8c8832babfea07ca58f5e46e
c8479e54b12db6bd0aa188fab4623a610843d27110778d6107bcf497927a5ce0
0b611b86e73ff6940185bdac9e7a8a4d0526fb6b4e2f7605c050f7bab0094984
f427e069e4c0e39ab54c703b3ef8a33c97ca6be4f6cf993619c247c1ea71d5c7
05f151f2cedd9e3969effaf2911006b6fa0033d6ce23fc8b35855e569e7c88f4
848ef61bd3a8309467fda649
> ND
/Pi <
a3beb7b3146128f8775c5bcf9aa09de25397a1ecbc4cbe48a56d90919707ac57
931bfe3978850ed80af49e99f6280612bda2b82bbe9e6d0980f253dab2fa8117
14320fc6a9c47aecbe1aaba8e5f6831757f806bfa827600755895589cc6b1de5
b2f5f368a35c305627b47d089065d39fe6173580d525c4239946a148f465cac9
6e442845d8da57e56f55a0d2508620085d4078b5ca41db4d60ca93d11808ef20
bcb02d1dbbceb9127c428739ae90da2757b354f12ea9d2c1dc15ab479e5595c4
497109d9dc0b33a05cc17df38b38419b6f0097cdfc41300322110d69aa11dc65
eb2153784cd57e9af2dd5fcbb36c7e73185f4b9b
> ND
/uni0428 <
a3bd6932a9c99645d05c3c9e6ea74bb4070809c834fbc50b951da7f808cfeb5c
0ff02cf1e57fed3fb09433896e9a1f2be85dc4bda1368ce93029ca2101182666
803a5ee507c3141df660c2ae83dfaae30ff22bbf4701b66cc597ed40219df07a
c4fb5ec436886177d076d2f24d74ad951b56f0644d1e740c413fed020a2302d2
7f90c010b11ade02b391323c6a0273ff3483dcce6c33d589c7e8bdb0d808f13d
d5d33ae34d057a78a2e2e752e4adb824b67892160c61275abd8c50b0c7443e5e
a297250595b5cfe09d10558e1e3dd0ebbe8f05589aa034ee0a1609f6f90d6b0c
c6fff792443f7b48019186aa7f62b24c066878aeab827fc94b35d3050a7ddf1e
58ba0e0bc73dc457db2f13045454a857c0133fbc00272740ab30f99f47d99423
15e0f7d6240bb8fb9bca6fef62e42129573ab7e39b09b5c7c8c241a43b8a08db
b5bae326dd467c90191336297817f2beb5c253
> ND
end readonly put
end dup /FontName get exch definefont pop




More information about the fontinst mailing list