source: branches/2.2/filemanager/tp/dompdf/lib/ttf2ufm/ttf2ufm-src/FONTS @ 3019

Revision 3019, 20.7 KB checked in by amuller, 14 years ago (diff)

Ticket #1135 - Corrigindo CSS e adicionando filemanager

Line 
1Sergey A. Babkin
2<babkin@bellatlantic.net> or <sab123@hotmail.com>
3(Do not edit this file, it is generated from FONTS.html!!!)
4
5THE FONT INSTALLATION GUIDE
6for the TTF to Type1 converter and fonts generated by it
7========================================================
8
9There is historically a number of problems with the support of the 8-bit
10character encodings. This installation guide pays a lot of attention
11to the 8-bit issues, because these issues are responsible for the
12most of troubles during the installation of fonts. But they are
13not the only things covered in this guide, so it's worth reading
14even if all you need is plain ASCII. For convenience of reading
15I have marked the paragraphs dealing solely with 8-bit problems
16with characters *8*.
17
18To simplify this installation the distribution package of the
19converter contains a number of scripts written in shell and
20Perl. So, to run them you will need a shell interpreter (Bourne-shell,
21POSIX-shell, Korn-shell are OK, ba-shell is probably also OK but not
22tested yet). The Perl scripts were tested with Perl5 but probably
23should work with Perl4 too. All the scripts are located in the
24`scripts' subdirectory.
25
26This guide considers the following issues of installation of the
27fonts:
28
29- X11
30- Ghostscript
31- MS Windows
32- Netscape Navigator/Communicator
33- Linux RPM package
34- FrameMaker
35- StarOffice
36
37X11
38===
39
40To simplify the conversion a set of scripts is provided with ttf2pt1.
41They are collected in the `scripts' subdirectory.
42
43`Convert' is the master conversion script provided with ttf2pt1.
44When installed into a public directory it's named `ttf2pt1_convert'
45to avoid name collisions with the other programs.
46
47It's called as:
48
49  convert [config-file]
50
51If the configuration file is not specified as an argument then the file
52`convert.cfg' in the current directory is used. This file contains
53a set of configuration variables. The distribution contains a sample file
54file `convert.cfg.sample'. Please copy it to `convert.cfg',
55look inside it and change the configuration variables. The more stable
56configuration variables, such as the path names of the scripts and
57encoding files are located in `convert' itself, they are
58automatically updated when installing ttf2pt1.
59
60Put all the TTF fonts you want to convert into some directory (this
61may be just the directory that already contains all the Windows
62fonts on a mounted FAT filesystem). If you have fonts in different
63source encoding then put the fonts in each of the encodings
64into a separate directory. Up to 10 source directories are
65supported. If you (in a rather unlikely case) have more source
66directories then you can make two separate runs of the converter,
67converting up to 10 directories at a time.
68
69The variables in the configuration file are:
70
71SRCDIRS - the list of directories (with absolute paths) with
72  TTF fonts. Each line contains at least 3 fields: the name of the directory,
73  the language of the fonts in it (if you have fonts for different
74  languages you have to put them into the separate directories) and the
75  encoding of the fonts. Again, if you have some of the TTF typefaces in
76  one encoding, and some in another (say, CP-1251 and KOI-8), you have
77  to put them into the separate source directories. Some lines may contain
78  4 fields. Then the fourth field is the name of the external map to
79  convert the Unicode fonts into the desirable encoding. This map is
80  used instead of the built-in map for the specified language.
81
82*8*
83An interesting thing is that some languages have more than one
84widely used character encodings. For example, the widely used
85encodings for Russian are IBM CP-866 (MS-DOS and Unix), KOI-8
86(Unix and VAX, also the standard Internet encoding), IBM CP-1251 (MS Windows).
87That's why I have provided the means to generate the converted fonts
88in more than one encoding. See the file encodings/README for
89details about the encoding tables. Actually, if you plan to use
90these fonts with Netscape Navigator better use the aliases
91cp-866 instead of ibm-866 and windows-1251 instead of ibm-1251
92because that's what Netscape wants.
93
94DSTDIR - directory for the resulting Type1 fonts. Be careful!
95  This directory gets completely wiped out before conversion,
96  so don't use any already existing directory for this purpose.
97
98DSTENC{language} - the list of encodings in which the destination
99  fonts will be generated for each language. Each font of that
100  language will be generated in each of the specified
101  encodings. If you don't want any translation, just specify both
102  SRCENC and DSTENC as iso8859-1 (or if you want any other encoding
103  specified in the fonts.dir, copy the description of 8859-1 with
104  new name and use this new name for SRCENC and DSTENC).
105
106FOUNDRY - the foundry name to be used in the fonts.dir file. I have
107  set it to `fromttf' to avoid name conflicts with any existing font for
108  sure. But this foundry name is not registered in X11 standards and
109  if you want to get the full standard compliance or have a font server
110  that enforces such a compliance, use `misc'.
111
112The next few parameters control the general behavior of the converter.
113They default values are set to something reasonable.
114
115CORRECTWIDTH - if the value is set to YES then use the
116  converter option -w, otherwise don't use it. See the description of
117  this option in the README file.
118
119REMOVET1A - if the value is set to YES then after
120  conversion remove the un-encoded .t1a font files and the
121  intermediate .xpfa font metric files.
122
123INSTALLFONTMAP - a Ghostscript parameter, if the value is set to
124  YES then install the entries for the new fonts
125  right into the main Fontmap file. Otherwise just leave
126  the file Fontmap.ttf in the Ghostscript configuration
127  directory.
128
129HINTSUBST - if the value is set to YES use the option
130  -H, otherwise don't use it. This option enables the
131  hint substitution technique. If you have not installed the X11 patch
132  described above, use this option with great caution. See further
133  description of this option in the README file.
134
135ENFORCEISO - if the value is set to YES then
136  disguise the resulting fonts as the fonts in ISOLatin1 encoding. Historically
137  this was neccessary due to the way the installer scripts created the
138  X11 font configuration files. It is not neccessary any more for this
139  purpose. But if you plan to use these fonts with some other application
140  that expects ISOLatin1 encoding then better enable this option.
141
142ALLGLYPHS - if the value is set to YES then
143  include all the glyphs from the source fonts into the resulting fonts, even
144  if these glyphs are inaccessible. If it's set to NO then
145  include only the glyphs which have codes assigned to them. The glyphs
146  without codes can not be used directly. But some clever programs,
147  such as the Type 1 library from XFree86 3.9 and higher can change
148  the encoding on the fly and use another set of glyphs. If you have not
149  installed the X11 patch described above, use this option with great
150  caution. See further description of the option option -a in the
151  README file.
152
153GENUID - if the value is set to YES then use
154  the option -uA of the converter to generate UniqueIDs for
155  the converted fonts. The standard X11 Type 1 library does not use
156  this ID, so it may only be neccessary for the other applications.
157  The script is clever enough to generate different UniqueID for the
158  same font converted to multiple encodings. Also after conversion it
159  checks all the fonts generacted during the session for duplicated
160  UniqueID and shows those. Still, this does not quarantee that these
161  UniqueIDs won't overlap with some other fonts. The UniqueIDs are
162  generated as hash values from the font names, so it's guaranteed
163  that if the `convert' script runs multiple times it will
164  generate the same UniqueIDs during each run. See further description
165  of this option in the README file.
166
167GENUID - if the value is set to YES then create
168  the .pfb files, otherwise the .pfa files. The .pfb
169  files are more compact but contain binary data, so you may experience some
170  troubles when transferring them through the network.
171
172The following parameters are used to locate the other scripts and
173configuration files. By default the scripts do a bit of guessing for them:
174they search in the ttf2pt1 installation directory if ttf2pt1
175was installed or otherwise suppose that you are running `convert' with
176`scripts' subdirectory being the current directory.
177
178ENCDIR - directory containing the descriptions of encodings
179MAPDIR - directory containing the external map files
180
181Besides that a few parameters are built into the `convert' script itself.
182You probably won't need to change them:
183
184T1ASM, TTF2PT1, TRANS, T1FDIR, FORCEISO - paths to the other script
185
186Also there are a few parameters controlling the installation of
187fonts for Ghostscript. Please look at their description in the
188Ghostscript section of documentation or in the ttf2pt1_x2gs(1)
189manual page before running `convert'. If these parameters are
190set, `convert' will call the `x2gs' script automatically
191to install the newly converted fonts in Ghostscript.
192
193After creating the configuration file run the `convert' script. Look at
194the result and the log file in DSTDIR.
195
196Add the directory with newly converted fonts to the configuration
197of X server or font server. For most of the systems this step is
198very straightforward. For HP-UX it's rather tricky and poorly
199documented, so the file FONTS.hpux gives a short description.
200
201If you don't have the privileges of the root user, you still can
202configure your private font server. Just use some non-standard
203port number (see FONTS.hpux for an example, exept that you won't
204need all the HP-related stuff on any other system).
205
206Known Problems
207--------------
208
209- One catch is that the X11 Type 1 font library has a rather low limit
210  on the font size. Because of this the fonts with  more complicated
211  outlines and the enabled hint substitution may not fit into
212  this limit. The same applies to the fonts with very complicated
213  outlines or with very many glyphs (especially the fonts with
214  over 256 glyphs). So you will need to excercise caution with
215  these options if you plan using these fonts with X11. Some vendors
216  such as HP provide the Type 1 implementation licensed from Adobe
217  which should have no such problem.
218
219  But there is a solution even for the generic X11. A patch located
220  in the subdirectory `app/X11' fixes this problem as well
221  as some other minor problems. Its description is provided in
222  app/X11/README.
223
224  To fix the X11 font library, you have to get the X11 sources. I
225  can recommend the ftp sites of the XFree86 project ftp://ftp.xfree86.org
226  or of the Open Group ftp://ftp.x.org. This patch was made on the sources
227  of XFree86 so you may have better success with applying it to the
228  XFree86 distribution. After you have got the sources, make sure
229  that you can compile them. Then apply the patch as described.
230  Make sure that it was applied properly. Compile the sources again
231  (actually, you need only the fonts library, the fonts server, and
232  possibly the X server). It would be prudent now to save your old
233  font library, font server and, possibly, X server. Then install
234  the new recently compiled versions of these files. Of course,
235  if you know someone who already has compiled these files for the
236  same OS as yours, you can just copy the binary fles from him.
237
238  Alas, building the X11 system from the source code is not the
239  easiest thing in the world and if you have no experience it
240  can be quite difficult. In this case just avoid the aforementioned
241  features or check each converted font to make sure that it
242  works properly.
243
244- The Type1 font library from the standard X11 distribution
245  does not work on HP-UX (at least, up to 10.01). The font server
246  supplied with HP-UX up to 10.01 is also broken. Starting from
247  HP-UX 10.20 (I don't know about 10.10) they supply a proprietary font
248  library and the converted fonts work fine with it, provided that
249  they are configured properly (see the file FONTS.hpux).
250
251- The fonts.scale files created by the older versions of the
252  ttf2pt1 installation program (up to release 3.1) have conflicted
253  with the language definitions of the Xfsft font server and
254  parts of it included into XFree86. To overcome this incompatibility
255  the never versions creats the fonts.scale file describing all the
256  fonts as belonging to the adobe-fontspecific encoding and
257  the fonts.alias file with the proper names. The drawback of
258  this solution is that xlsfonts gives the list of twice more
259  fonts. But as a side effect the option ENFORCEISO in
260  `convert.cfg' is not required for X11 any more.
261
262- The conversion script has no support for Eastern multi-plane fonts.
263  Contribution of such a support would be welcome.
264
265Ghostscript
266===========
267
268The fonts generated with ttf2pt1 work fine with Ghostscript by
269themselves. The script `x2gs' (or `ttf2pt1_x2gs' when installed
270into a public directory, to avoid name conflicts with other
271programs) links the font files from the X11 direcotry into the Ghostscript
272directory and automatically creates the description file (Fontmap)
273in Ghostscript format.
274
275It's called as:
276
277  x2gs [config-file]
278
279If the configuration file is not specified as an argument then the file
280`convert.cfg' in the current directory is used, just like the
281`convert' script does. Indeed, this configuration file is used for
282both scripts.
283
284The Ghostscript-related parameters in the configuration file are:
285
286DSTDIR - the X11 font directory used by `x2gs' as the
287  source of the fonts. This parameter is common with the X11
288  configuration.
289
290GSDIR - the base directory of Ghostsript. If this
291  parameter is set to an empty string then `convert' won't
292  call `x2gs'. So if you want to get only the X11 fonts
293  installed then set this parameter to an empty string. This
294  directory may vary on various system, so please check your
295  system and set this value accordingly before running the script.
296
297GSFONTDIR - the font directory of Ghostscript. In the standard
298  Ghostscript installation it's a subdirectory of GSDIR
299  but some systems may use completely different directories.
300
301GSCONFDIR - the configuration subdirectory of Ghostscript
302  that contains the Fontmap file.
303
304INSTALLFONTMAP - if the value is set to YES then
305  install the entries for the new fonts right into the main
306  Fontmap file. Otherwise just leave the file Fontmap.ttf
307  in the Ghostscript configuration directory.
308
309
310After preparing the configuration file run the script. It symbolicaly links
311all the font files and creates the description file Fontmap.ttf in
312GSCONDFIR. After that there are two choices.
313
314If the option INSTALLFONTMAP was set to YES then
315the font descriptions are also automatically installed into the
316master Fontmap file. The script is clever enough to
317detect if it was run multiple times with the same directories
318and if so it replaces the old Fontmap entries with
319the new ones instead of just accumulating all of them. You
320may also run it multiple times for multiple X11 directories
321and all the results will be properly collected in the Fontmap.
322But it's your responsibility to watch that the names of the
323font files don't overlap. If the X11 font directory gets
324renamed then you have to remove its font entries from the
325Fontmap and only after that re-run `x2gs'
326for the new directory.
327
328On the other hand if the option INSTALLFONTMAP was set to
329NO then go to the GSCONFDIR directory and insert the
330contents of Fontmap.ttf into the Fontmap file
331manually. This step may be left manual to make the installation
332a little bit more safe.
333
334After that you may also want to redefine some of the aliases in
335Fontmap to refer to the newly installed fonts.
336But the redefinition of the aliases may be dangerous if the width of
337characters in the new font will be different from the old font.
338Alas, there is no visible solution of this problem yet.
339
340MS Windows
341===========
342
343Ttf2pt1 can be built on Windows either with native compiler or in
344POSIX emulation mode.
345
346Native MS Windows compilers require a different way to build the converter
347instead of the Makefile (their make programs commonly are quite weird
348and limited in capabilities). An example of batch file winbuild.bat
349is provided for MS Visual C/C++. Probably it can be easily adapted for other
35032-bit Windows and DOS compilers. The important part is to define the
351preprocessor symbol WINDOWS during compilation.
352
353Cygnus make almost supports full Makefiles but not quite. Seems
354like its POSIX support is also of the same quality "almost but not quite".
355So another command file cygbuild.sh is provided for Cygnus GNU C, also
356with the preprocessor symbol WINDOWS defined. It is intended to be run from
357the Cygnus BASH shell. To run the programs produced by the Cygnus compiler
358the Cygnus library file CYGWIN1.DLL should be copied first into
359C:\WINDOWS.
360
361To run the accompanying scripts Perl for Windows will be required as well as
362other tools from the Cygnus set.
363
364The Windows support was not particularly tested, so in case of problems with
365building or running the converter please let us know.
366
367The pre-built code (possibly of an older version) of ttf2pt1 for MS Windows is
368available from the GnuWin32 project from
369
370http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm
371
372Netscape Navigator/Communicator
373===============================
374
375Basically, the biggest problem with Netscape Navigator is that
376it has built-in fixed PostScript font names and built-in fixed
377glyph tables for them. Oh, no, that's two! Let's start over:
378basically the two biggest problems of Netscape Navigator are
379that (one)it has built-in fixed PostScript font names and (two)
380built-in fixed glyph tables for them and (three) it always
381assumes that the fonts have ISOLatin1 encoding. OK, let's
382start over again: basically the three biggest problems of Netscape
383Navigator are that (one) it has built-in fixed PostScript font names,
384(two) built-in fixed glyph tables for them and (three) it always
385assumes that the fonts have ISOLatin1 encoding and (four) it
386does not remember the scaled font size between the sessions.
387You did not expect such a Spanish Inquisition, did you ? (*)
388
389Luckily, we have solutions for all of these problems. They are
390located in the subdirectory `app/netscape' and described
391in app/netscape/README.
392
393  -------
394  *) See Monty Python's Flying Circus, episode 15
395
396*8*
397Netscape and cyrillic fonts
398---------------------------
399(courtesy of Zvezdan Petkovic)
400
401If you use TrueType fonts in your X, as I do, and you always get
402KOI8-R encoded pages, then your Netscape does not recognise windows-1251
403encoding.  Microsoft TrueType fonts simply declare all encodings they
404can support including KOI8-R.  For some reason, KOI8-R always wins over
405ISO-8859-5 in Netscape under X.  If you are reading other cyrillic
406languages besides Russian, you might want to either erase KOI8-R entries
407from the fonts.dir and fonts.scale files, or alternatively fix Netscape.
408I put this line in my .Xdefaults.
409
410    Netscape*documentFonts.charset*koi8-r:               iso-8859-5
411
412Notice that you can still read Russian sites without trouble because
413Netscape translates KOI8-R to ISO-8859-5 on the fly. I read both Russian
414and Serbian sites with no trouble.
415
416Note: If anybody knows the way to tell Netscape under Unix how to
417recognise {windows,ibm,cp}-1251 encoded fonts, I'd like to hear about that.
418
419Linux RPM package
420=================
421
422The spec file for the creation of a Linux RPM package is located in
423app/RPM. It has been contributed by Johan Vromans.  When
424make all is ran in the main directory it among the other
425things creates the version of itself adapted to Linux in app/RPM,
426you may want to copy that version back to the main directory.
427
428Warning: Please note that the install section is incomplete, and
429the installed scripts won't work until the paths inside them
430are corrected.
431
432FrameMaker
433==========
434
435The fonts and AFM files generated by the version 3.2 and higher
436should work with Framemaker without problems. The AFM files
437generated by the previous versions of the converter require a
438line added to them:
439
440  EncodingScheme FontSpecific
441
442And the underscores in the font names of the font and AFM files
443generated by the older versions may need to be changed to dashes.
444
445NOTE by Jason Baietto: Ignore the directions in the Frame on-line docs
446that say to put a "serverdict begin 0 exitserver" line in the pfa files. 
447Doing this caused both my printer and ghostscript to choke on the resulting
448output from FrameMaker, so I would not advise doing this (though your
449mileage may vary).
450
451StarOffice
452==========
453
454StarOffice 5.1x has been reported to crash if the .afm file contains
455spaces in the values of such statements as Version, Weight etc.
456These spaces are permitted by the Adobe spec, so this is a problem of
457StarOffice. The easiest way to fix these .afm files for StarOffice
458is to remove spaces in these strings or remove these strings (in case if
459they are optional) at all. This can be done automatically with a sed
460script. It seems that StarOffice 5.2 has this problem fixed, so we decided to
461spend no efforts on providing workarounds for 5.1 with ttf2pt1.
462
Note: See TracBrowser for help on using the repository browser.