+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: tfontenc.tex
+%% Purpose: font encoding overview
+%% Author: Vadim Zeitlin
+%% Modified by:
+%% Created: 03.11.99
+%% RCS-ID: $Id$
+%% Copyright: (c) Vadim Zeitlin
+%% Licence: wxWindows licence
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Font encoding overview}\label{wxfontencodingoverview}
+
+wxWindows has support for multiple font encodings starting from release 2.2.
+By encoding we mean here the mapping between the character codes and the
+letters. Probably the most well-known encoding is (7 bit) ASCII one which is
+used almost universally now to represent the letters of the English alphabet
+and some other common characters. However, it is not enough to represent the
+letters of foreign alphabetes and here other encodings come into play. Please
+note that we will only discuss 8-bit fonts here and not
+\helpref{Unicode}{unicode}.
+
+Font encoding support is assured by several classes:
+\helpref{wxFont}{wxfont} itself, but also
+\helpref{wxFontEnumerator}{wxfontenumerator} and
+\helpref{wxFontMapper}{wxfontmapper}. wxFont encoding support is reflected by
+a (new) constructor parameter {\it encoding} which takes one of the following
+values (elements of enumeration type {\tt wxFontEncoding}):
+
+\begin{twocollist}
+\twocolitem{wxFONTENCODING\_SYSTEM}{The default encoding of the underlying
+operating system (notice that this might be a "foreign" encoding for foreign
+versions of Windows 9x/NT).}
+\twocolitem{wxFONTENCODING\_DEFAULT}{The applications default encoding as
+returned by \helpref{wxFont::GetDefaultEncoding}{wxfontgetdefaultencoding}. On
+program startup, the applications default encoding is the same as
+wxFONTENCODING\_SYSTEM, but may be changed to make all the fonts created later
+to use it (by default).}
+\twocolitem{wxFONTENCODING\_ISO8859\_1..15}{ISO8859 family encodings which are
+usually used by all non-Microsoft operating systems}
+\twocolitem{wxFONTENCODING\_KOI8}{Standard cyrillic encoding for the Internet
+(but see also wxFONTENCODING\_ISO8859\_5 and wxFONTENCODING\_CP1251)}
+\twocolitem{wxFONTENCODING\_CP1250}{Microsoft analogue of ISO8859-2}
+\twocolitem{wxFONTENCODING\_CP1251}{Microsoft analogue of ISO8859-5}
+\twocolitem{wxFONTENCODING\_CP1252}{Microsoft analogue of ISO8859-1}
+\end{twocollist}
+
+As you may see, Microsofts encoding partly mirror the standard ISO8859 ones,
+but there are (minor) differences even between ISO8859-1 (Latin1, ISO encoding
+for Western Europe) and CP1251 (WinLatin1, standard code page for English
+versions of Windows) and there are more of them for other encodings.
+
+The situation is particularly complicated with cyrillic encodings for which
+(more than) three incompatible encodings exist: KOI8 (the old standard, widely
+used on the Internet), ISO8859-5 (ISO standard for cyrillic) and CP1251
+(WinCyrillic).
+
+This abundance of (incompatible) encodigns should make it clear that using
+encodings is less easy than it might seem. The problems arise both from the
+fact that the standard encodigns for the given language (say Russian, which is
+written in cyrillic) are different on different platforms and because the
+fonts in the given encoding might just not be installed (this is especially a
+problem with Unix, or, in general, not Win32, systems).
+
+To allow to see clearer in this, \helpref{wxFontEnumerator}{wxfontenumerator}
+class may be used to enumerate both all available encodings and to find the
+facename(s) in which the given encoding exists. If you can find the font in
+the correct encoding with wxFontEnumerator then your troubles are over, but,
+unfortunately, sometimes this is not enough. For example, there is no standard
+way (I know of, please tell me if you do!) to find a font on a Windows system
+for KOI8 encoding (only for WinCyrillic one which is quite different), so
+\helpref{wxFontEnumerator}{wxfontenumerator} will never return one, even if
+the user has installed a KOI8 font on his system.
+
+To solve this problem, \helpref{wxFontMapper}{wxfontmapper} class is provided.
+This class stores the mapping between the encodings and the font face
+names which support them in a \helpref{wxConfig}{wxconfigoverview} object. Of
+course, it would be fairly useless if it tried to determine these mappings by
+itself, so, instead, it may (optionally) ask the user and remember his answers
+so that the next time the program will automatically choose the correct font.
+
+All these topics are illustrated by the \helpref{font sample}{samplefont},
+please refer to it and the documentation of the classes mentioned here for
+further explanations.
+