| Note: | |
| ===== | |
| The fnt2bdf utility is included with Wine. It can be found in the tools | |
| directory. | |
| Links to the other tools mentioned in this document can be found on wine | |
| headquarters: http://www.winehq.com/tools.html | |
| How To Convert Windows Fonts | |
| ============================ | |
| If you have access to a Windows installation you should use | |
| fnt2bdf utility (found in the 'tools)' directory to convert | |
| bitmap fonts (VGASYS.FON, SSERIFE.FON, and SERIFE.FON) into | |
| the format that X Window System can recognize. | |
| Step 1. Extract bitmap fonts with 'fnt2bdf'. | |
| Step 2. Convert .bdf files produced by the Step 1 into | |
| .pcf files with 'bdftopcf'. | |
| Step 3. Copy .pcf files to the font server directory which | |
| is usually /usr/lib/X11/fonts/misc (you will probably | |
| need superuser privileges). If you want to create a new | |
| font directory you will need to add it to the font path. | |
| Step 4. Run 'mkfontdir' for the directory you copied fonts to. | |
| If you are already in X you should run 'xset fp rehash' | |
| to make X server aware of the new fonts. | |
| Step 5. Edit WINE.CONF file to remove aliases for the fonts | |
| you've just installed. | |
| WINE can get by without these fonts but 'the look and feel' | |
| may be quite different. Also, some applications try to load | |
| their custom fonts on the fly (WinWord 6.0) and since WINE does | |
| not implement this yet it instead prints out something like; | |
| STUB: AddFontResource( SOMEFILE.FON ) | |
| You can convert this file too. Note that .FON file may not hold | |
| any bitmap fonts and fnt2bdf will fail if this is the case. Also | |
| note that although the above message will not disappear WINE will | |
| work around the problem by using the font you extracted from the | |
| SOMEFILE.FON. fnt2bdf will only work for Windows 3.1 fonts. It | |
| will not work for TrueType fonts. | |
| What to do with TrueType fonts? There are several commercial | |
| font tools that can convert them to the Type1 format but the | |
| quality of the resulting fonts is far from stellar. The other | |
| way to use them is to get a font server capable of rendering | |
| TrueType (Caldera has one, there also is the free Xfstt in | |
| Linux/X11/fonts on sunsite and mirrors, if you're on FreeBSD you | |
| can use the port in /usr/ports/x11-servers/Xfstt. And there is | |
| xfsft which uses the freetype library, see documentation/ttfserver). | |
| However, there is a possibility of the native TrueType support | |
| via FreeType renderer in the future (hint, hint :-) | |
| How To Add Font Aliases To WINE.CONF | |
| ==================================== | |
| Many Windows applications assume that fonts included in original Windows 3.1 | |
| distribution are always present. By default Wine creates a number of aliases | |
| that map them on the existing X fonts: | |
| Windows font ...is mapped to... X font | |
| "MS Sans Serif" -> "-adobe-helvetica-" | |
| "MS Serif" -> "-bitstream-charter-" | |
| "Times New Roman" -> "-adobe-times-" | |
| "Arial" -> "-adobe-helvetica-" | |
| There is no default alias for the "System" font. Also, no aliases are | |
| created for the fonts that applications install at runtime. The recommended | |
| way to deal with this problem is to convert the missing font (see above). | |
| If it proves impossible, like in the case with TrueType fonts, you can force | |
| the font mapper to choose a closely related X font by adding an alias to the | |
| [fonts] section. Make sure that the X font actually exists (with xfontsel | |
| tool). | |
| AliasN = [Windows font], [X font] <, optional "mask X font" flag> | |
| Example: | |
| Alias0 = System, --international-, subst | |
| Alias1 = ... | |
| ... | |
| Comments: | |
| * There must be no gaps in the sequence {0, ..., N} otherwise all aliases | |
| after the first gap won't be read. | |
| * Usually font mapper translates X font names into font names visible to | |
| Windows programs in the following fashion: | |
| X font ...will show up as... Extracted name | |
| --international-... -> "International" | |
| -adobe-helvetica-... -> "Helvetica" | |
| -adobe-utopia-... -> "Utopia" | |
| -misc-fixed-... -> "Fixed" | |
| -... | |
| -sony-fixed-... -> "Sony Fixed" | |
| -... | |
| Note that since -misc-fixed- and -sony-fixed- are different fonts | |
| Wine modified the second extracted name to make sure Windows programs | |
| can distinguish them because only extracted names appear in the font | |
| selection dialogs. | |
| * "Masking" alias replaces the original extracted name so that in the | |
| example case we will have the following mapping: | |
| --international- -> "System" | |
| "Nonmasking" aliases are transparent to the user and they do not | |
| replace extracted names. | |
| Wine discards an alias when it sees that the native X font is | |
| available. | |
| * If you do not have access to Windows fonts mentioned in the first | |
| paragraph you should try to substitute the "System" font with | |
| nonmasking alias. 'xfontsel' will show you the fonts available to | |
| X. | |
| Alias.. = System, ...bold font without serifs | |
| Also, some Windows applications request fonts without specifying the | |
| typeface name of the font. Font table starts with Arial in most Windows | |
| installations, however X font table starts with whatever is the first line | |
| in the fonts.dir. Therefore WINE uses the following entry to determine | |
| which font to check first. | |
| Example: | |
| Default = -adobe-times- | |
| Comments: | |
| It is better to have a scalable font family (bolds and italics included) | |
| as the default choice because mapper checks all available fonts until | |
| requested height and other attributes match perfectly or the end of the | |
| font table is reached. Typical X installations have scalable fonts in | |
| the ../fonts/Type1 and ../fonts/Speedo directories. | |
| How To Manage Cached Font Metrics | |
| ================================= | |
| WINE stores detailed information about available fonts in the ~/.wine/.cachedmetrics | |
| file. You can copy it elsewhere and add this entry to the [fonts] section | |
| in your WINE.CONF: | |
| FontMetrics = <file with metrics> | |
| If WINE detects changes in the X font configuration it will rebuild font | |
| metrics from scratch and then it will overwrite ~/.wine/.cachedmetrics with | |
| the new information. This process can take a while. | |
| Too Small Or Too Large Fonts | |
| ============================ | |
| Windows programs may ask WINE to render a font with the height specified | |
| in points. However, point-to-pixel ratio depends on the real physical size | |
| of your display (15", 17", etc...). X tries to provide an estimate of that | |
| but it can be quite different from the actual size. You can change this | |
| ratio by adding the following entry to the [fonts] section: | |
| Resolution = <integer value> | |
| In general, higher numbers give you larger fonts. Try to experiment with | |
| values in the 60 - 120 range. 96 is a good starting point. | |
| "FONT_Init: failed to load ..." Messages On Startup | |
| =================================================== | |
| The most likely cause is a broken fonts.dir file in one of your font | |
| directories. You need to rerun 'mkfontdir' to rebuild this file. Read | |
| its manpage for more information. If you can't run mkfontdir on this machine | |
| as you are not root, use "xset -fp xxx" to remove the broken font path. |