Now attaching imported DLLs of a winelib executable.
[wine.git] / documentation / fonts
blob9b96a33a3f918ecd0978c6c471160d79c85c13cb
1 Note:
2 =====
3 The fnt2bdf utility is included with Wine. It can be found in the tools 
4 directory.
5 Links to the other tools mentioned in this document can be found on wine
6 headquarters: http://www.winehq.com/tools.html
9 How To Convert Windows Fonts
10 ============================
12 If you have access to a Windows installation you should use 
13 fnt2bdf utility (found in the 'tools)' directory to convert
14 bitmap fonts (VGASYS.FON, SSERIFE.FON, and SERIFE.FON) into 
15 the format that X Window System can recognize. 
17 Step 1. Extract bitmap fonts with 'fnt2bdf'.
19 Step 2. Convert .bdf files produced by the Step 1 into
20         .pcf files with 'bdftopcf'.
22 Step 3. Copy .pcf files to the font server directory which
23         is usually /usr/lib/X11/fonts/misc (you will probably 
24         need superuser privileges). If you want to create a new
25         font directory you will need to add it to the font path.
27 Step 4. Run 'mkfontdir' for the directory you copied fonts to.
28         If you are already in X you should run 'xset fp rehash' 
29         to make X server aware of the new fonts.
31 Step 5. Edit WINE.CONF file to remove aliases for the fonts 
32         you've just installed.
34 WINE can get by without these fonts but 'the look and feel'
35 may be quite different. Also, some applications try to load
36 their custom fonts on the fly (WinWord 6.0) and since WINE does
37 not implement this yet it instead prints out something like;
39 STUB: AddFontResource( SOMEFILE.FON )
41 You can convert this file too. Note that .FON file may not hold 
42 any bitmap fonts and fnt2bdf will fail if this is the case. Also
43 note that although the above message will not disappear WINE will
44 work around the problem by using the font you extracted from the
45 SOMEFILE.FON. fnt2bdf will only work for Windows 3.1 fonts. It 
46 will not work for TrueType fonts.
48 What to do with TrueType fonts? There are several commercial
49 font tools that can convert them to the Type1 format but the 
50 quality of the resulting fonts is far from stellar. The other
51 way to use them is to get a font server capable of rendering 
52 TrueType (Caldera has one, there also is the free Xfstt in
53 Linux/X11/fonts on sunsite and mirrors, if you're on FreeBSD you
54 can use the port in /usr/ports/x11-servers/Xfstt.  And there is
55 xfsft which uses the freetype library, see documentation/ttfserver).
57 However, there is a possibility of the native TrueType support 
58 via FreeType renderer in the future (hint, hint :-)
61 How To Add Font Aliases To WINE.CONF
62 ====================================
64 Many Windows applications assume that fonts included in original Windows 3.1 
65 distribution are always present. By default Wine creates a number of aliases
66 that map them on the existing X fonts:
68 Windows font            ...is mapped to...      X font
70 "MS Sans Serif"                 ->              "-adobe-helvetica-"
71 "MS Serif"                      ->              "-bitstream-charter-"
72 "Times New Roman"               ->              "-adobe-times-"
73 "Arial"                         ->              "-adobe-helvetica-"
75 There is no default alias for the "System" font. Also, no aliases are 
76 created for the fonts that applications install at runtime. The recommended 
77 way to deal with this problem is to convert the missing font (see above). 
78 If it proves impossible, like in the case with TrueType fonts, you can force 
79 the font mapper to choose a closely related X font by adding an alias to the 
80 [fonts] section. Make sure that the X font actually exists (with xfontsel
81 tool).
83 AliasN = [Windows font], [X font] <, optional "mask X font" flag>
85 Example:
87 Alias0 = System, --international-, subst
88 Alias1 = ...
89 ...
91 Comments:
92 *   There must be no gaps in the sequence {0, ..., N} otherwise all aliases
93     after the first gap won't be read.
95 *   Usually font mapper translates X font names into font names visible to
96     Windows programs in the following fashion:
98     X font              ...will show up as...           Extracted name
100     --international-...         ->                      "International"
101     -adobe-helvetica-...        ->                      "Helvetica"
102     -adobe-utopia-...           ->                      "Utopia"
103     -misc-fixed-...             ->                      "Fixed"
104     -...
105     -sony-fixed-...             ->                      "Sony Fixed" 
106     -...
108     Note that since -misc-fixed- and -sony-fixed- are different fonts
109     Wine modified the second extracted name to make sure Windows programs
110     can distinguish them because only extracted names appear in the font 
111     selection dialogs. 
113 *   "Masking" alias replaces the original extracted name so that in the 
114     example case we will have the following mapping:
116     --international-            ->                      "System"
118     "Nonmasking" aliases are transparent to the user and they do not 
119     replace extracted names.
121     Wine discards an alias when it sees that the native X font is
122     available.
124 *   If you do not have access to Windows fonts mentioned in the first 
125     paragraph you should try to substitute the "System" font with 
126     nonmasking alias. 'xfontsel' will show you the fonts available to
127     X.
129     Alias.. = System, ...bold font without serifs
131 Also, some Windows applications request fonts without specifying the 
132 typeface name of the font. Font table starts with Arial in most Windows 
133 installations, however X font table starts with whatever is the first line 
134 in the fonts.dir.  Therefore WINE uses the following entry to determine 
135 which font to check first.
137 Example:
139 Default = -adobe-times-
141 Comments:
142     It is better to have a scalable font family (bolds and italics included) 
143     as the default choice because mapper checks all available fonts until 
144     requested height and other attributes match perfectly or the end of the 
145     font table is reached. Typical X installations have scalable fonts in
146     the ../fonts/Type1 and ../fonts/Speedo directories.
149 How To Manage Cached Font Metrics
150 =================================
152 WINE stores detailed information about available fonts in the ~/.wine/.cachedmetrics
153 file. You can copy it elsewhere and add this entry to the [fonts] section 
154 in your WINE.CONF:
156 FontMetrics = <file with metrics>
158 If WINE detects changes in the X font configuration it will rebuild font
159 metrics from scratch and then it will overwrite ~/.wine/.cachedmetrics with 
160 the new information. This process can take a while.
163 Too Small Or Too Large Fonts
164 ============================
166 Windows programs may ask WINE to render a font with the height specified
167 in points. However, point-to-pixel ratio depends on the real physical size 
168 of your display (15", 17", etc...). X tries to provide an estimate of that 
169 but it can be quite different from the actual size. You can change this
170 ratio by adding the following entry to the [fonts] section:
172 Resolution = <integer value>
174 In general, higher numbers give you larger fonts. Try to experiment with
175 values in the 60 - 120 range. 96 is a good starting point.
178 "FONT_Init: failed to load ..." Messages On Startup
179 ===================================================
181 The most likely cause is a broken fonts.dir file in one of your font
182 directories. You need to rerun 'mkfontdir' to rebuild this file. Read
183 its manpage for more information. If you can't run mkfontdir on this machine
184 as you are not root, use "xset -fp xxx" to remove the broken font path.