174 lines
6.3 KiB
Plaintext
174 lines
6.3 KiB
Plaintext
|
|
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.
|
|
|
|
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).
|
|
|
|
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.
|