blob: f865e7d8523a40be6f440d2e9abfed6893aae824 [file] [log] [blame]
Alexandre Julliard23946ad1997-06-16 17:43:53 +00001
2How To Convert Windows Fonts
3============================
4
Alexandre Julliard670cdc41997-08-24 16:00:30 +00005If you have access to a Windows installation you should use
Alexandre Julliard23946ad1997-06-16 17:43:53 +00006fnt2bdf utility (found in the 'tools)' directory to convert
Alexandre Julliard33072e11997-06-29 18:08:02 +00007bitmap fonts (VGASYS.FON, SSERIFE.FON, and SERIFE.FON) into
8the format that X Window System can recognize.
Alexandre Julliard23946ad1997-06-16 17:43:53 +00009
10Step 1. Extract bitmap fonts with 'fnt2bdf'.
11
12Step 2. Convert .bdf files produced by the Step 1 into
13 .pcf files with 'bdftopcf'.
14
15Step 3. Copy .pcf files to the font server directory which
16 is usually /usr/lib/X11/fonts/misc (you will probably
Alexandre Julliard33072e11997-06-29 18:08:02 +000017 need superuser privileges). If you want to create a new
18 font directory you will need to add it to the font path.
Alexandre Julliard23946ad1997-06-16 17:43:53 +000019
20Step 4. Run 'mkfontdir' for the directory you copied fonts to.
21 If you are already in X you should run 'xset fp rehash'
22 to make X server aware of the new fonts.
23
Alexandre Julliard670cdc41997-08-24 16:00:30 +000024Step 5. Edit WINE.CONF file to remove aliases for the fonts
Alexandre Julliard33072e11997-06-29 18:08:02 +000025 you've just installed.
26
Alexandre Julliard670cdc41997-08-24 16:00:30 +000027WINE can get by without these fonts but 'the look and feel'
28may be quite different. Also, some applications try to load
29their custom fonts on the fly (WinWord 6.0) and since WINE does
Alexandre Julliard33072e11997-06-29 18:08:02 +000030not implement this yet it instead prints out something like;
31
Alexandre Julliard670cdc41997-08-24 16:00:30 +000032STUB: AddFontResource( SOMEFILE.FON )
Alexandre Julliard33072e11997-06-29 18:08:02 +000033
34You can convert this file too. Note that .FON file may not hold
Alexandre Julliard670cdc41997-08-24 16:00:30 +000035any bitmap fonts and fnt2bdf will fail if this is the case. Also
36note that although the above message will not disappear WINE will
37work around the problem by using the font you extracted from the
38SOMEFILE.FON.
Alexandre Julliard23946ad1997-06-16 17:43:53 +000039
40What to do with TrueType fonts? There are several commercial
41font tools that can convert them to the Type1 format but the
42quality of the resulting fonts is far from stellar. The other
43way to use them is to get a font server capable of rendering
Juergen Lock3e1493f1999-11-25 23:14:23 +000044TrueType (Caldera has one, there also is the free Xfstt in
45Linux/X11/fonts on sunsite and mirrors, if you're on FreeBSD you
46can use the port in /usr/ports/x11-servers/Xfstt. And there is
47xfsft which uses the freetype library, see documentation/ttfserver).
Alexandre Julliard23946ad1997-06-16 17:43:53 +000048
49However, there is a possibility of the native TrueType support
50via FreeType renderer in the future (hint, hint :-)
51
52
Alexandre Julliard670cdc41997-08-24 16:00:30 +000053How To Add Font Aliases To WINE.CONF
54====================================
Alexandre Julliard23946ad1997-06-16 17:43:53 +000055
56Many Windows applications assume that fonts included in original Windows 3.1
Alexandre Julliard670cdc41997-08-24 16:00:30 +000057distribution are always present. By default Wine creates a number of aliases
58that map them on the existing X fonts:
59
60Windows font ...is mapped to... X font
61
62"MS Sans Serif" -> "-adobe-helvetica-"
63"MS Serif" -> "-bitstream-charter-"
64"Times New Roman" -> "-adobe-times-"
65"Arial" -> "-adobe-helvetica-"
66
67There is no default alias for the "System" font. Also, no aliases are
68created for the fonts that applications install at runtime. The recommended
69way to deal with this problem is to convert the missing font (see above).
70If it proves impossible, like in the case with TrueType fonts, you can force
71the font mapper to choose a closely related X font by adding an alias to the
72[fonts] section. Make sure that the X font actually exists (with xfontsel
73tool).
Alexandre Julliard23946ad1997-06-16 17:43:53 +000074
75AliasN = [Windows font], [X font] <, optional "mask X font" flag>
76
77Example:
78
Alexandre Julliard670cdc41997-08-24 16:00:30 +000079Alias0 = System, --international-, subst
80Alias1 = ...
Alexandre Julliard23946ad1997-06-16 17:43:53 +000081...
82
83Comments:
Alexandre Julliard670cdc41997-08-24 16:00:30 +000084* There must be no gaps in the sequence {0, ..., N} otherwise all aliases
Alexandre Julliard23946ad1997-06-16 17:43:53 +000085 after the first gap won't be read.
86
Alexandre Julliard670cdc41997-08-24 16:00:30 +000087* Usually font mapper translates X font names into font names visible to
Alexandre Julliard23946ad1997-06-16 17:43:53 +000088 Windows programs in the following fashion:
89
Alexandre Julliard670cdc41997-08-24 16:00:30 +000090 X font ...will show up as... Extracted name
Alexandre Julliard23946ad1997-06-16 17:43:53 +000091
Alexandre Julliard670cdc41997-08-24 16:00:30 +000092 --international-... -> "International"
93 -adobe-helvetica-... -> "Helvetica"
94 -adobe-utopia-... -> "Utopia"
95 -misc-fixed-... -> "Fixed"
Alexandre Julliard23946ad1997-06-16 17:43:53 +000096 -...
Alexandre Julliard670cdc41997-08-24 16:00:30 +000097 -sony-fixed-... -> "Sony Fixed"
Alexandre Julliard23946ad1997-06-16 17:43:53 +000098 -...
99
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000100 Note that since -misc-fixed- and -sony-fixed- are different fonts
101 Wine modified the second extracted name to make sure Windows programs
102 can distinguish them because only extracted names appear in the font
103 selection dialogs.
104
105* "Masking" alias replaces the original extracted name so that in the
106 example case we will have the following mapping:
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000107
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000108 --international- -> "System"
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000109
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000110 "Nonmasking" aliases are transparent to the user and they do not
111 replace extracted names.
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000112
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000113 Wine discards an alias when it sees that the native X font is
114 available.
115
116* If you do not have access to Windows fonts mentioned in the first
117 paragraph you should try to substitute the "System" font with
118 nonmasking alias. 'xfontsel' will show you the fonts available to
119 X.
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000120
121 Alias.. = System, ...bold font without serifs
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000122
123Also, some Windows applications request fonts without specifying the
124typeface name of the font. Font table starts with Arial in most Windows
125installations, however X font table starts with whatever is the first line
126in the fonts.dir. Therefore WINE uses the following entry to determine
127which font to check first.
128
Alexandre Julliard33072e11997-06-29 18:08:02 +0000129Example:
130
131Default = -adobe-times-
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000132
133Comments:
134 It is better to have a scalable font family (bolds and italics included)
135 as the default choice because mapper checks all available fonts until
136 requested height and other attributes match perfectly or the end of the
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000137 font table is reached. Typical X installations have scalable fonts in
138 the ../fonts/Type1 and ../fonts/Speedo directories.
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000139
140
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000141How To Manage Cached Font Metrics
142=================================
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000143
144WINE stores detailed information about available fonts in the ~/.wine/.cachedmetrics
145file. You can copy it elsewhere and add this entry to the [fonts] section
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000146in your WINE.CONF:
Alexandre Julliard23946ad1997-06-16 17:43:53 +0000147
148FontMetrics = <file with metrics>
149
150If WINE detects changes in the X font configuration it will rebuild font
151metrics from scratch and then it will overwrite ~/.wine/.cachedmetrics with
152the new information. This process can take a while.
153
Alexandre Julliard670cdc41997-08-24 16:00:30 +0000154
155Too Small Or Too Large Fonts
156============================
157
158Windows programs may ask WINE to render a font with the height specified
159in points. However, point-to-pixel ratio depends on the real physical size
160of your display (15", 17", etc...). X tries to provide an estimate of that
161but it can be quite different from the actual size. You can change this
162ratio by adding the following entry to the [fonts] section:
163
164Resolution = <integer value>
165
166In general, higher numbers give you larger fonts. Try to experiment with
167values in the 60 - 120 range. 96 is a good starting point.
168
169
170"FONT_Init: failed to load ..." Messages On Startup
171===================================================
172
173The most likely cause is a broken fonts.dir file in one of your font
174directories. You need to rerun 'mkfontdir' to rebuild this file. Read
Alexandre Julliard638f1691999-01-17 16:32:32 +0000175its manpage for more information. If you can't run mkfontdir on this machine
176as you are not root, use "xset -fp xxx" to remove the broken font path.