Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 1 | |
| 2 | How To Convert Windows Fonts |
| 3 | ============================ |
| 4 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 5 | If you have access to a Windows installation you should use |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 6 | fnt2bdf utility (found in the 'tools)' directory to convert |
Alexandre Julliard | 33072e1 | 1997-06-29 18:08:02 +0000 | [diff] [blame] | 7 | bitmap fonts (VGASYS.FON, SSERIFE.FON, and SERIFE.FON) into |
| 8 | the format that X Window System can recognize. |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 9 | |
| 10 | Step 1. Extract bitmap fonts with 'fnt2bdf'. |
| 11 | |
| 12 | Step 2. Convert .bdf files produced by the Step 1 into |
| 13 | .pcf files with 'bdftopcf'. |
| 14 | |
| 15 | Step 3. Copy .pcf files to the font server directory which |
| 16 | is usually /usr/lib/X11/fonts/misc (you will probably |
Alexandre Julliard | 33072e1 | 1997-06-29 18:08:02 +0000 | [diff] [blame] | 17 | need superuser privileges). If you want to create a new |
| 18 | font directory you will need to add it to the font path. |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 19 | |
| 20 | Step 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 Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 24 | Step 5. Edit WINE.CONF file to remove aliases for the fonts |
Alexandre Julliard | 33072e1 | 1997-06-29 18:08:02 +0000 | [diff] [blame] | 25 | you've just installed. |
| 26 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 27 | WINE can get by without these fonts but 'the look and feel' |
| 28 | may be quite different. Also, some applications try to load |
| 29 | their custom fonts on the fly (WinWord 6.0) and since WINE does |
Alexandre Julliard | 33072e1 | 1997-06-29 18:08:02 +0000 | [diff] [blame] | 30 | not implement this yet it instead prints out something like; |
| 31 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 32 | STUB: AddFontResource( SOMEFILE.FON ) |
Alexandre Julliard | 33072e1 | 1997-06-29 18:08:02 +0000 | [diff] [blame] | 33 | |
| 34 | You can convert this file too. Note that .FON file may not hold |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 35 | any bitmap fonts and fnt2bdf will fail if this is the case. Also |
| 36 | note that although the above message will not disappear WINE will |
| 37 | work around the problem by using the font you extracted from the |
| 38 | SOMEFILE.FON. |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 39 | |
| 40 | What to do with TrueType fonts? There are several commercial |
| 41 | font tools that can convert them to the Type1 format but the |
| 42 | quality of the resulting fonts is far from stellar. The other |
| 43 | way to use them is to get a font server capable of rendering |
Juergen Lock | 3e1493f | 1999-11-25 23:14:23 +0000 | [diff] [blame] | 44 | TrueType (Caldera has one, there also is the free Xfstt in |
| 45 | Linux/X11/fonts on sunsite and mirrors, if you're on FreeBSD you |
| 46 | can use the port in /usr/ports/x11-servers/Xfstt. And there is |
| 47 | xfsft which uses the freetype library, see documentation/ttfserver). |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 48 | |
| 49 | However, there is a possibility of the native TrueType support |
| 50 | via FreeType renderer in the future (hint, hint :-) |
| 51 | |
| 52 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 53 | How To Add Font Aliases To WINE.CONF |
| 54 | ==================================== |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 55 | |
| 56 | Many Windows applications assume that fonts included in original Windows 3.1 |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 57 | distribution are always present. By default Wine creates a number of aliases |
| 58 | that map them on the existing X fonts: |
| 59 | |
| 60 | Windows 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 | |
| 67 | There is no default alias for the "System" font. Also, no aliases are |
| 68 | created for the fonts that applications install at runtime. The recommended |
| 69 | way to deal with this problem is to convert the missing font (see above). |
| 70 | If it proves impossible, like in the case with TrueType fonts, you can force |
| 71 | the 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 |
| 73 | tool). |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 74 | |
| 75 | AliasN = [Windows font], [X font] <, optional "mask X font" flag> |
| 76 | |
| 77 | Example: |
| 78 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 79 | Alias0 = System, --international-, subst |
| 80 | Alias1 = ... |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 81 | ... |
| 82 | |
| 83 | Comments: |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 84 | * There must be no gaps in the sequence {0, ..., N} otherwise all aliases |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 85 | after the first gap won't be read. |
| 86 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 87 | * Usually font mapper translates X font names into font names visible to |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 88 | Windows programs in the following fashion: |
| 89 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 90 | X font ...will show up as... Extracted name |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 91 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 92 | --international-... -> "International" |
| 93 | -adobe-helvetica-... -> "Helvetica" |
| 94 | -adobe-utopia-... -> "Utopia" |
| 95 | -misc-fixed-... -> "Fixed" |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 96 | -... |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 97 | -sony-fixed-... -> "Sony Fixed" |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 98 | -... |
| 99 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 100 | 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 Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 107 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 108 | --international- -> "System" |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 109 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 110 | "Nonmasking" aliases are transparent to the user and they do not |
| 111 | replace extracted names. |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 112 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 113 | 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 Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 120 | |
| 121 | Alias.. = System, ...bold font without serifs |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 122 | |
| 123 | Also, some Windows applications request fonts without specifying the |
| 124 | typeface name of the font. Font table starts with Arial in most Windows |
| 125 | installations, however X font table starts with whatever is the first line |
| 126 | in the fonts.dir. Therefore WINE uses the following entry to determine |
| 127 | which font to check first. |
| 128 | |
Alexandre Julliard | 33072e1 | 1997-06-29 18:08:02 +0000 | [diff] [blame] | 129 | Example: |
| 130 | |
| 131 | Default = -adobe-times- |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 132 | |
| 133 | Comments: |
| 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 Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 137 | font table is reached. Typical X installations have scalable fonts in |
| 138 | the ../fonts/Type1 and ../fonts/Speedo directories. |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 139 | |
| 140 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 141 | How To Manage Cached Font Metrics |
| 142 | ================================= |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 143 | |
| 144 | WINE stores detailed information about available fonts in the ~/.wine/.cachedmetrics |
| 145 | file. You can copy it elsewhere and add this entry to the [fonts] section |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 146 | in your WINE.CONF: |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 147 | |
| 148 | FontMetrics = <file with metrics> |
| 149 | |
| 150 | If WINE detects changes in the X font configuration it will rebuild font |
| 151 | metrics from scratch and then it will overwrite ~/.wine/.cachedmetrics with |
| 152 | the new information. This process can take a while. |
| 153 | |
Alexandre Julliard | 670cdc4 | 1997-08-24 16:00:30 +0000 | [diff] [blame] | 154 | |
| 155 | Too Small Or Too Large Fonts |
| 156 | ============================ |
| 157 | |
| 158 | Windows programs may ask WINE to render a font with the height specified |
| 159 | in points. However, point-to-pixel ratio depends on the real physical size |
| 160 | of your display (15", 17", etc...). X tries to provide an estimate of that |
| 161 | but it can be quite different from the actual size. You can change this |
| 162 | ratio by adding the following entry to the [fonts] section: |
| 163 | |
| 164 | Resolution = <integer value> |
| 165 | |
| 166 | In general, higher numbers give you larger fonts. Try to experiment with |
| 167 | values in the 60 - 120 range. 96 is a good starting point. |
| 168 | |
| 169 | |
| 170 | "FONT_Init: failed to load ..." Messages On Startup |
| 171 | =================================================== |
| 172 | |
| 173 | The most likely cause is a broken fonts.dir file in one of your font |
| 174 | directories. You need to rerun 'mkfontdir' to rebuild this file. Read |
Alexandre Julliard | 638f169 | 1999-01-17 16:32:32 +0000 | [diff] [blame] | 175 | its manpage for more information. If you can't run mkfontdir on this machine |
| 176 | as you are not root, use "xset -fp xxx" to remove the broken font path. |