source: pmb4.2/trunk/fuentes/pmb/classes/font/ttf2ufm/ttf2ufm-src/ttf2pt1_convert.1 @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 17.4 KB
1.rn '' }`
2''' $RCSfile$$Revision$$Date$
4''' $Log$
5''' Sh
8.if t .Sp 5
13.. Sp
15.if t .sp .5v
16.if n .sp
17.. Ip \\n(.$>=3 .ne \\$3
21.el .ne 3
22.IP "\\$1" \\$2
23.. Vb
25.ft CW \\$1
28.. Ve
30.ft R
36'''     Set up \*(-- to give an unbreakable dash;
37'''     string Tr holds user defined translation string.
38'''     Bell System Logo is used as a dummy character.
39''' \(*W-|\(bv\*(Tr n \{\
42.ds -- \(*W-
43.ds PI pi
44.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
45.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
46.ds L" ""
47.ds R" ""
48'''   \*(M", \*(S", \*(N" and \*(T" are the equivalent of
49'''   \*(L" and \*(R", except that they are used on ".xx" lines,
50'''   such as .IP and .SH, which do another additional levels of
51'''   double-quote interpretation
52.ds M" """
53.ds S" """
54.ds N" """""
55.ds T" """""
56.ds L' '
57.ds R' '
58.ds M' '
59.ds S' '
60.ds N' '
61.ds T' '
64.ds -- \(em\| \*(Tr
66.ds L" ``
67.ds R" ''
68.ds M" ``
69.ds S" ''
70.ds N" ``
71.ds T" ''
72.ds L' `
73.ds R' '
74.ds M' `
75.ds S' '
76.ds N' `
77.ds T' '
78.ds PI \(*p
80.\"     If the F register is turned on, we'll generate
81.\"     index entries out stderr for the following things:
82.\"             TH      Title
83.\"             SH      Header
84.\"             Sh      Subsection
85.\"             Ip      Item
86.\"             X<>     Xref  (embedded
87.\"     Of course, you have to process the output yourself
88.\"     in some meaninful fashion.
89.if \nF \{ IX Index:\\$1\t\\n%\t"\\$2"
92.. % 0
94.rr F
96.TH TTF2PT1_CONVERT 1 "version 3.4.4" "December 31, 2003" "TTF2PT1 Font Converter"
98.if n .hy 0
99.if n .na
100.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' CQ          \" put $1 in typewriter font
102.ft CW
103'if n "\c
104'if t \\&\\$1\c
105'if n \\&\\$1\c
106'if n \&"
107\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
108'.ft R
110.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
111.       \" AM - accent mark definitions B 3
113.       \" fudge factors for nroff and troff
114.if n \{\
115.       ds #H 0
116.       ds #V .8m
117.       ds #F .3m
118.       ds #[ \f1
119.       ds #] \fP
121.if t \{\
122.       ds #H ((1u-(\\\\n(.fu%2u))*.13m)
123.       ds #V .6m
124.       ds #F 0
125.       ds #[ \&
126.       ds #] \&
128.       \" simple accents for nroff and troff
129.if n \{\
130.       ds ' \&
131.       ds ` \&
132.       ds ^ \&
133.       ds , \&
134.       ds ~ ~
135.       ds ? ?
136.       ds ! !
137.       ds /
138.       ds q
140.if t \{\
141.       ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
142.       ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
143.       ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
144.       ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
145.       ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
146.       ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
147.       ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
148.       ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
149.       ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
151.       \" troff and (daisy-wheel) nroff accents
152.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
153.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
154.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
155.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
156.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
157.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
158.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
159.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
160.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
161.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
162.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
163.ds ae a\h'-(\w'a'u*4/10)'e
164.ds Ae A\h'-(\w'A'u*4/10)'E
165.ds oe o\h'-(\w'o'u*4/10)'e
166.ds Oe O\h'-(\w'O'u*4/10)'E
167.       \" corrections for vroff
168.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
169.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
170.       \" for low resolution devices (crt and lpr)
171.if \n(.H>23 .if \n(.V>19 \
173.       ds : e
174.       ds 8 ss
175.       ds v \h'-1'\o'\(aa\(ga'
176.       ds _ \h'-1'^
177.       ds . \h'-1'.
178.       ds 3 3
179.       ds o a
180.       ds d- d\h'-1'\(ga
181.       ds D- D\h'-1'\(hy
182.       ds th \o'bp'
183.       ds Th \o'LP'
184.       ds ae ae
185.       ds Ae AE
186.       ds oe oe
187.       ds Oe OE
189.rm #[ #] #H #V #F C
190.SH "NAME"
191\fBttf2pt1_convert\fR \- convenience font conversion script
193ttf2pt1_convert \fB[config-file]\fR
195`\fBConvert\fR\*(R' is the master conversion script provided with ttf2pt1.
196When installed into a public directory it's named `\fBttf2pt1_convert\fR\*(R'
197to avoid name collisions with the other programs.
199If the configuration file is not specified as an argument then the file
200`\f(CWconvert.cfg\fR\*(R' in the current directory is used. This file contains
201a set of configuration variables. The distribution contains a sample file
202file `\f(CWconvert.cfg.sample\fR\*(R'. Please copy it to `\f(CWconvert.cfg\fR\*(R',
203look inside it and change the configuration variables. The more stable
204configuration variables, such as the path names of the scripts and
205encoding files are located in `\f(CWconvert\fR\*(R' itself, they are
206automatically updated when installing \fBttf2pt1\fR.
208Put all the TTF fonts you want to convert into some directory (this
209may be just the directory that already contains all the Windows
210fonts on a mounted FAT filesystem). If you have fonts in different
211source encoding then put the fonts in each of the encodings
212into a separate directory. Up to 10 source directories are
213supported. If you (in a rather unlikely case) have more source
214directories then you can make two separate runs of the converter,
215converting up to 10 directories at a time.
217The variables in the configuration file are:
218.Ip "\(bu" 2
219\fB\f(CWSRCDIRS\fR\fR \- the list of directories (with absolute paths) with
220\s-1TTF\s0 fonts. Each line contains at least 3 fields: the name of the directory,
221the language of the fonts in it (if you have fonts for different
222languages you have to put them into the separate directories) and the
223encoding of the fonts. Again, if you have some of the \s-1TTF\s0 typefaces in
224one encoding, and some in another (say, \s-1CP\s0\-1251 and \s-1KOI\s0\-8), you have
225to put them into the separate source directories. Some lines may contain
2264 fields. Then the fourth field is the name of the external map to
227convert the Unicode fonts into the desirable encoding. This map is
228used instead of the built-in map for the specified language.
231An interesting thing is that some languages have more than one
232widely used character encodings. For example, the widely used
233encodings for Russian are \s-1IBM\s0 \s-1CP\s0\-866 (\s-1MS\s0\-\s-1DOS\s0 and Unix), \s-1KOI\s0\-8
234(Unix and \s-1VAX\s0, also the standard Internet encoding), \s-1IBM\s0 \s-1CP\s0\-1251 (\s-1MS\s0 Windows).
235That's why I have provided the means to generate the converted fonts
236in more than one encoding. See the file encodings/\s-1README\s0 for
237details about the encoding tables. Actually, if you plan to use
238these fonts with Netscape Navigator better use the aliases
239cp-866 instead of ibm-866 and windows-1251 instead of ibm-1251
240because that's what Netscape wants.
241.Ip "\(bu" 2
242\fB\f(CWDSTDIR\fR\fR \- directory for the resulting Type1 fonts. Be careful!
243This directory gets completely wiped out before conversion,
244so don't use any already existing directory for this purpose.
245.Ip "\(bu" 2
246\fB\f(CWDSTENC\fI{language}\fR\fR\fR \- the list of encodings in which the destination
247fonts will be generated for each language. Each font of that
248language will be generated in each of the specified
249encodings. If you don't want any translation, just specify both
250\f(CWSRCENC\fR and \f(CWDSTENC\fR as iso8859-1 (or if you want any other encoding
251specified in the fonts.dir, copy the description of 8859-1 with
252new name and use this new name for \f(CWSRCENC\fR and \f(CWDSTENC\fR).
253.Ip "\(bu" 2
254\fB\f(CWFOUNDRY\fR\fR \- the foundry name to be used in the fonts.dir file. I have
255set it to `fromttf\*(R' to avoid name conflicts with any existing font for
256sure. But this foundry name is not registered in X11 standards and
257if you want to get the full standard compliance or have a font server
258that enforces such a compliance, use `misc\*(R'.
260The next few parameters control the general behavior of the converter.
261They default values are set to something reasonable.
262.Ip "\(bu" 2
263\fB\f(CWCORRECTWIDTH\fR\fR \- if the value is set to \fB\f(CWYES\fR\fR then use the
264converter option \f(CW\fB-w\fR\fR, otherwise don't use it. See the description of
265this option in the \s-1README\s0 file.
266.Ip "\(bu" 2
267\fB\f(CWREMOVET1A\fR\fR \- if the value is set to \fB\f(CWYES\fR\fR then after
268conversion remove the un-encoded \f(CW.t1a\fR font files and the
269intermediate \f(CW.xpfa\fR font metric files.
270.Ip "\(bu" 2
271\fB\f(CWINSTALLFONTMAP\fR\fR \- a Ghostscript parameter, if the value is set to
272\fB\f(CWYES\fR\fR then install the entries for the new fonts
273right into the main \f(CWFontmap\fR file. Otherwise just leave
274the file \f(CWFontmap.ttf\fR in the Ghostscript configuration
276.Ip "\(bu" 2
277\fB\f(CWHINTSUBST\fR\fR \- if the value is set to \fB\f(CWYES\fR\fR use the option
278\f(CW\fB-H\fR\fR, otherwise don't use it. This option enables the
279hint substitution technique. If you have not installed the X11 patch
280described above, use this option with great caution. See further
281description of this option in the \s-1README\s0 file.
282.Ip "\(bu" 2
283\fB\f(CWENFORCEISO\fR\fR \- if the value is set to \fB\f(CWYES\fR\fR then
284disguise the resulting fonts as the fonts in ISOLatin1 encoding. Historically
285this was neccessary due to the way the installer scripts created the
286X11 font configuration files. It is not neccessary any more for this
287purpose. But if you plan to use these fonts with some other application
288that expects ISOLatin1 encoding then better enable this option.
289.Ip "\(bu" 2
290\fB\f(CWALLGLYPHS\fR\fR \- if the value is set to \fB\f(CWYES\fR\fR then
291include all the glyphs from the source fonts into the resulting fonts, even
292if these glyphs are inaccessible. If it's set to \fB\f(CWNO\fR\fR then
293include only the glyphs which have codes assigned to them. The glyphs
294without codes can not be used directly. But some clever programs,
295such as the Type 1 library from XFree86 3.9 and higher can change
296the encoding on the fly and use another set of glyphs. If you have not
297installed the X11 patch described above, use this option with great
298caution. See further description of the option option \f(CW\fB-a\fR\fR in the
299\s-1README\s0 file.
300.Ip "\(bu" 2
301\fB\f(CWGENUID\fR\fR \- if the value is set to \fB\f(CWYES\fR\fR then use
302the option \f(CW\fB-uA\fR\fR of the converter to generate UniqueIDs for
303the converted fonts. The standard X11 Type 1 library does not use
304this \s-1ID\s0, so it may only be neccessary for the other applications.
305The script is clever enough to generate different UniqueID for the
306same font converted to multiple encodings. Also after conversion it
307checks all the fonts generacted during the session for duplicated
308UniqueID and shows those. Still, this does not quarantee that these
309UniqueIDs won't overlap with some other fonts. The UniqueIDs are
310generated as hash values from the font names, so it's guaranteed
311that if the `\f(CWconvert\fR\*(R' script runs multiple times it will
312generate the same UniqueIDs during each run. See further description
313of this option in the \s-1README\s0 file.
314.Ip "\(bu" 2
315\fB\f(CWGENUID\fR\fR \- if the value is set to \fB\f(CWYES\fR\fR then create
316the \f(CW.pfb\fR files, otherwise the \f(CW.pfa\fR files. The \f(CW.pfb\fR
317files are more compact but contain binary data, so you may experience some
318troubles when transferring them through the network.
320The following parameters are used to locate the other scripts and
321configuration files. By default the scripts do a bit of guessing for them:
322they search in the \fBttf2pt1\fR installation directory if \fBttf2pt1\fR
323was installed or otherwise suppose that you are running `\f(CWconvert\fR\*(R' with
324`\f(CWscripts\fR\*(R' subdirectory being the current directory.
325.Ip "\(bu" 2
326\fB\f(CWENCDIR\fR\fR \- directory containing the descriptions of encodings
327.Ip "\(bu" 2
328\fB\f(CWMAPDIR\fR\fR \- directory containing the external map files
330Besides that a few parameters are built into the `\f(CWconvert\fR\*(R' script itself.
331You probably won't need to change them:
332.Ip "\(bu" 2
333\f(CW\fBT1ASM\fR\fR, \f(CW\fBTTF2PT1\fR\fR, \f(CW\fBTRANS\fR\fR, \f(CW\fBT1FDIR\fR\fR, \f(CW\fBFORCEISO\fR\fR \- paths to the other script
335Also there are a few parameters controlling the installation of
336fonts for Ghostscript. Please look at their description in the
337Ghostscript section of documentation or in the \fBttf2pt1_x2gs(1)\fR
338manual page before running `\f(CWconvert\fR\*(R'. If these parameters are
339set, `\f(CWconvert\fR\*(R' will call the `\f(CWx2gs\fR\*(R' script automatically
340to install the newly converted fonts in Ghostscript.
342After creating the configuration file run the `\f(CWconvert\fR\*(R' script. Look at
343the result and the log file in \f(CWDSTDIR\fR.
345Add the directory with newly converted fonts to the configuration
346of X server or font server. For most of the systems this step is
347very straightforward. For \s-1HP\s0\-\s-1UX\s0 it's rather tricky and poorly
348documented, so the file \s-1FONTS\s0.hpux gives a short description.
350If you don't have the privileges of the root user, you still can
351configure your private font server. Just use some non-standard
352port number (see \s-1FONTS\s0.hpux for an example, exept that you won't
353need all the \s-1HP\s0\-related stuff on any other system).
354.SH "FILES"
355.Ip "\(bu" 2
357.Ip "\(bu" 2
359.Ip "\(bu" 2
361.Ip "\(bu" 2
363.Ip "\(bu" 2
365.Ip "\(bu" 2
368.Ip "\(bu" 4
369the \fIttf2pt1(1)\fR manpage
370.Ip "\(bu" 4
371the \fIttf2pt1_x2gs(1)\fR manpage
372.Ip "\(bu" 4
373the \fIt1asm(1)\fR manpage
374.SH "BUGS"
375.Sh "Known problems"
376.Ip "\(bu" 4
377One catch is that the X11 Type 1 font library has a rather low limit
378on the font size. Because of this the fonts with  more complicated
379outlines and the enabled hint substitution may not fit into
380this limit. The same applies to the fonts with very complicated
381outlines or with very many glyphs (especially the fonts with
382over 256 glyphs). So you will need to excercise caution with
383these options if you plan using these fonts with X11. Some vendors
384such as \s-1HP\s0 provide the Type 1 implementation licensed from Adobe
385which should have no such problem.
387But there is a solution even for the generic X11. A patch located
388in the subdirectory `\f(CWapp/X11\fR\*(R' fixes this problem as well
389as some other minor problems. Its description is provided in
392To fix the X11 font library, you have to get the X11 sources. I
393can recommend the ftp sites of the XFree86 project
394or of the Open Group This patch was made on the sources
395of XFree86 so you may have better success with applying it to the
396XFree86 distribution. After you have got the sources, make sure
397that you can compile them. Then apply the patch as described.
398Make sure that it was applied properly. Compile the sources again
399(actually, you need only the fonts library, the fonts server, and
400possibly the X server). It would be prudent now to save your old
401font library, font server and, possibly, X server. Then install
402the new recently compiled versions of these files. Of course,
403if you know someone who already has compiled these files for the
404same \s-1OS\s0 as yours, you can just copy the binary fles from him.
406Alas, building the X11 system from the source code is not the
407easiest thing in the world and if you have no experience it
408can be quite difficult. In this case just avoid the aforementioned
409features or check each converted font to make sure that it
410works properly.
411.Ip "\(bu" 4
412The Type1 font library from the standard X11 distribution
413does not work on \s-1HP\s0\-\s-1UX\s0 (at least, up to 10.01). The font server
414supplied with \s-1HP\s0\-\s-1UX\s0 up to 10.01 is also broken. Starting from
415\s-1HP\s0\-\s-1UX\s0 10.20 (I don't know about 10.10) they supply a proprietary font
416library and the converted fonts work fine with it, provided that
417they are configured properly (see the file \s-1FONTS\s0.hpux).
418.Ip "\(bu" 4
419The \f(CWfonts.scale\fR files created by the older versions of the
420\f(CWttf2pt1\fR installation program (up to release 3.1) have conflicted
421with the language definitions of the \f(CWXfsft\fR font server and
422parts of it included into XFree86. To overcome this incompatibility
423the never versions creats the \f(CWfonts.scale\fR file describing all the
424fonts as belonging to the \f(CWadobe-fontspecific\fR encoding and
425the \f(CWfonts.alias\fR file with the proper names. The drawback of
426this solution is that \f(CWxlsfonts\fR gives the list of twice more
427fonts. But as a side effect the option \f(CW\fBENFORCEISO\fR\fR in
428`\f(CWconvert.cfg\fR\*(R' is not required for X11 any more.
429.Ip "\(bu" 4
430The conversion script has no support for Eastern multi-plane fonts.
431Contribution of such a support would be welcome.
433.rn }` ''
434.IX Title "TTF2PT1_CONVERT 1"
435.IX Name "B<ttf2pt1_convert> - convenience font conversion script"
437.IX Header "NAME"
439.IX Header "SYNOPSIS"
443.IX Item "\(bu"
445.IX Item "\(bu"
447.IX Item "\(bu"
449.IX Item "\(bu"
451.IX Item "\(bu"
453.IX Item "\(bu"
455.IX Item "\(bu"
457.IX Item "\(bu"
459.IX Item "\(bu"
461.IX Item "\(bu"
463.IX Item "\(bu"
465.IX Item "\(bu"
467.IX Item "\(bu"
469.IX Item "\(bu"
471.IX Item "\(bu"
473.IX Header "FILES"
475.IX Item "\(bu"
477.IX Item "\(bu"
479.IX Item "\(bu"
481.IX Item "\(bu"
483.IX Item "\(bu"
485.IX Item "\(bu"
487.IX Header "SEE ALSO"
489.IX Item "\(bu"
491.IX Item "\(bu"
493.IX Item "\(bu"
495.IX Header "BUGS"
497.IX Subsection "Known problems"
499.IX Item "\(bu"
501.IX Item "\(bu"
503.IX Item "\(bu"
505.IX Item "\(bu"
Note: See TracBrowser for help on using the repository browser.