|
|
1.1 root 1: {\rtf1\ansi \deff0\deflang1024{\fonttbl{\f0\froman Times New Roman;}{\f1\froman Symbol;}{\f2\fswiss Arial;}{\f3\fnil Times;}{\f4\fnil Helvetica;}{\f5\fmodern Courier;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;
2: \red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue127;\red0\green127\blue127;\red0\green127\blue0;\red127\green0\blue127;\red127\green0\blue0;
3: \red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;}{\stylesheet{\s242\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs20\up6 \sbasedon0\snext242 footer;}{
4: \s243\tqc\tx4320\tqr\tx8640 \f3\fs12\lang1033 \sbasedon0\snext243 header;}{\s244\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs16\up6 \sbasedon0\snext0 footnote reference;}{
5: \s245\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs20\up6 \sbasedon0\snext245 footnote text;}{\s246\li720 \i\f3\fs20\lang1033 \sbasedon0\snext255 heading 9;}{\s247\li720 \i\f3\fs20
6: \sbasedon0\snext255 heading 8;}{\s248\li720 \i\f3\fs20\lang1033 \sbasedon0\snext255 heading 7;}{\s249\li720 \f3\fs20\ul\lang1033 \sbasedon0\snext255 heading 6;}{\s250\li720 \b\f3\fs20\lang1033 \sbasedon0\snext255 heading 5;}{\s251\li360 \f3\ul\lang10
7: \sbasedon0\snext255 heading 4;}{\s252\li360 \b\f3\lang1033 \sbasedon0\snext255 heading 3;}{\s253\sb120 \b\f4\lang1033 \sbasedon0\snext0 heading 2;}{\s254\sb240 \b\f4\ul\lang1033 \sbasedon0\snext0 heading 1;}{\s255\li720 \f3\fs12\lang1033
8: \sbasedon0\snext255 Normal Indent;}{\f3\fs12\lang1033 \snext0 Normal;}{\s2 \b\f4\fs28\lang1033 \sbasedon0\snext2 Title;}{\s3\li720 \b\f4\fs28\lang1033 \sbasedon0\snext3 Body;}{\s4\li270\sb60\tx1440\tx2340 \b\f4\fs28\lang1033 \sbasedon0\snext4 List;}{
9: \s5\li270\sb60\tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon3\snext5 JumpBody;}{\s6\li270\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f4\fs28\lang1033 \sbasedon0\snext6 PopUpTitle;}{\s7\li180\sb60\keep\brdrb\brdrs\brdrw30\brsp20\brdrcf2
10: \tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon5\snext7 PopUpBody;}{\s8\fi-1886\li2160\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon4\snext8 GlossaryEntry;}{\s9\fi-1886\li360\sb60\keep\brdrb
11: \brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f5\fs8 \snext0 FixedText;}{\s10\fi-1886\li360\sb60\keep\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f5\fs20\up6 \snext0 ControlCodes;}}{\info{\author Steve Firebaugh}{\operator Steve Firebaugh}
12: {\creatim\yr1992\mo10\dy9\hr15\min50}{\revtim\yr1992\mo10\dy9\hr15\min50}{\version2}{\edmins167}{\nofpages0}{\nofwords65536}{\nofchars65536}{\vern16433}}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0 \sectd \linex0 \pard\plain
13: \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Uniput}}${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033
14: $ Uniput}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Uniput}}}{\plain \b\f4\fs28 Uniput}{\plain \b\f4\fs28 -- Input of Unicode characters}{\plain \b\f4\fs28\up6
15: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\ul\lang1033
16: \par }{\plain \f3\ul\lang1033 Quick Start:}{\plain \f3\lang1033
17: \par }\pard \s4\fi-360\li360\sb60\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 {\plain \f3\lang1033 0. (Make sure that the UCLUCIDA.TTF font file has been installed.)}{\plain \f3\lang1033
18: \par }{\plain \f3\lang1033 1. Run uniput and unipad (distributed on the Win32 SDK) side by side.}{\plain \f3\lang1033
19: \par }{\plain \f3\lang1033 2}{\plain \f3\lang1033 . Mouse click on characters displayed in the main uniput window. Drag them to unipad.}{\plain \f3\lang1033
20: \par }{\plain \f3\lang1033 3. Scroll through character point ranges with the horizontal scroll bar.}{\plain \f3\lang1033
21: \par }{\plain \f3\lang1033 4. Create additional MDI windows as necessary.}{\plain \f3\lang1033
22: \par }\pard \s4\sb60\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 {\plain \f3\lang1033
23: \par }{\plain \f3\ul\lang1033 Introduction:}{\plain \f3\ul\lang1033
24: \par }{\plain \f3\lang1033
25: Uniput provides a method for inputing unicode character to any application which is unicode enabled. The user can grab any character displayed in the uniput window, drag it to another application, and drop the character there. The second application wil
26: }{\plain \f3\lang1033 l receive a WM_CHAR message}{\plain \f3\lang1033
27: with the proper 16 bit characer code if the second application is unicode enabled. There is no special programming required for the second application. If it is a Windows program that takes character input, it will work with uniput.}{\plain
28: \f3\lang1033
29: \par }{\plain \f3\lang1033
30: \par }{\plain \f3\ul\lang1033 More Information:}{\plain \f3\ul\lang1033
31: \par }{\plain \f3\lang1033
32: \par }{\plain \f3\uldb\lang1033 Overview}{\plain \v\f3\lang1033 Overview}{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 \tab \tab \tab }{\plain \f3\uldb\lang1033 Advanced Features}{\plain \v\f3 Advanced}{\plain \f3\lang1033
33: \par }{\plain \f3\uldb\lang1033 Font Support}{\plain \v\f3\uldb\lang1033 Fonts}{\plain \f3\lang1033 \tab \tab \tab \tab }{\plain \f3\uldb\lang1033 References}{\plain \v\f3\lang1033 References}{\plain \f3\lang1033
34: \par }{\plain \f3\lang1033
35: \par }\pard\plain \s6\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 \page #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Overview}}${\footnote \pard\plain
36: \f3\fs12\lang1033 {\plain \f3\lang1033 $ Overview}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Overview}}}Overview{\up6
37: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033 The Uniput program was written to provide an interim input method for entering unicode characters. }{\plain \f3\lang1033
38: The UNIPAD application distributed with the October beta of Windows/NT is able to properly display left-to-right unicode strings. However, it allows no practical input method. That is the reason for Uniput. In a sense, it serves as a crude input method
39: }{\plain \f3\lang1033 for the UNIPAD application. Notice that this is an interim solution. It is not part of Microsoft's future direction for input methods.}{\plain \f3\lang1033
40: \par }{\plain \f3\lang1033
41: \par }{\plain \f3\lang1033 The status bar currently has three fields. The left most field displays the name of the window that a character was}{\plain \f3\lang1033
42: last dropped on. The center field provides the type of that window, either "unicode" or "Ansi." The right most field shows the stream of characters which have been chosen. Notice that this is actually a static text window with the font set to be "Luci
43: }{\plain \f3\lang1033 da Sans Unicode." As such, it is one way to see how Windows/NT will write a unicode string. For example, diacritical (non spacing) marks are currently handled correctly.}{\plain \f3\lang1033
44: \par }\pard\plain \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 \page {\plain \f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Advanced}}}{\plain \f3 }
45: {\plain \f4\fs28\lang1033 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 $ Advanced}}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Advanced}}}{\plain \b\f4\fs28 Advanced Features}{\plain
46: \b\f4\fs28\up6
47: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033
48: \par }{\plain \f3\lang1033
49: By using the multiple document interface features fully, it is possible to tailor the application somewhat to the user's input needs. For example, it is easy to create two windows (use the "Window, New" menu), one with the desired character range, and th
50: }{\plain \f3\lang1033
51: e other with diacritical marks. Then, by tiling the two windows, it is easy to quickly pick characters, and modify them as needed with the diacritical marks. It is also possible to create multiple windows, and scroll them to different character ranges i
52: }{\plain \f3\lang1033 nd}{\plain \f3\lang1033 ependently.}{\plain \f3\lang1033
53: \par }{\plain \f3\lang1033
54: \par }{\plain \f3\lang1033
55: The "Options" menu allows the user to set four preferences. The later two, the font size, and the number of characters per line are self explanatory. They may be different for each child window. The first two preferences are Boolean, and the applicatio
56: }{\plain \f3\lang1033
57: n starts with them being checked ON. The first controls whether the hexadecimal value for the code point is displayed in the square with the character glyph. The second affects the title of the child window. With the item checked on, the t}{\plain
58: \f3\lang1033 itle attempts to display the name of the character point range that the displayed characters are from. Both of these Boolean options apply to ALL of the child windows in the application.}{\plain \f3\lang1033
59: \par }\pard\plain \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \b\f4\lang1033 \page }{\plain \f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1 # }{\plain
60: \b\f3 Fonts}}}{\plain \f4\fs28\lang1033 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 $ }{\plain \b\f3 Font Support}}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K }{\plain \b\f3 Font Support}}
61: }{\plain \b\f4\fs28 F}{\plain \b\f4\fs28 ont Support}{\plain \b\f4\fs28\up6
62: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033
63: In order for the Uniput program to work, it is necessary to have a font which covers a significant number of unicode code points. The "Lucida Sans Unicode" font has about eleven hundred as of the October beta. When the application first begins, it tries
64: }{\plain \f3\lang1033 }{\plain \f3\lang1033
65: to create a logical font with that face name. It then counts the number of character ranges in the realized font. If it is less than some threshold (currently 30), the user is warned with a message box. In this case, the user should quit the applicatio
66: }{\plain \f3\lang1033 n, install the UCLUCIDA.TTF font with the control panel, and try the application again. This same procedure is true for the NTFONTS and SHOWUNI samples distributed on the SDK.}{\plain \f3\lang1033
67: \par }\pard\plain \keepn \f3\fs12\lang1033 \page {\b\fs36 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 # }{\plain \f3 References}}}{\b\fs36 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 $ }{\plain \f3
68: References/more information}}}{\b\fs36 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 K }{\plain \f3 References/more information}}}{\b\fs36 References}{\b\fs36\up6
69: \par }\pard {\plain \f3\lang1033 NTFonts was written by Steve Firebaugh in Microsoft's Developer Support. Look for us in the MSWIN32}{\plain \f3\lang1033 forum of Compuserve. Questions or bug reports related to this program should be posted there.}{\plain
70: \f3\lang1033
71: \par }{\plain \f3\lang1033
72: \par }{\plain \f3\lang1033
73: \par }{\plain \f3\lang1033 Understanding the 'cmap' table is most easily possible with a specification for TrueType font files. This is available from many sources including the following:}{\plain \f3\lang1033
74: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Microsoft Software Library. (Available on Compuserve by "GO MDKB" then search for keyword TTSPEC1.)}{\plain \f3\lang1033
75: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Anonymous ftp on ftp.uu.net in vendor/microsoft/TrueType-Info.}{\plain \f3\lang1033
76: \par }{\plain \f3\lang1033
77: \par }{\plain \f3\lang1033
78: \par }{\plain \f3\lang1033 To learn all about unicode, including the names given to the different code}{\plain \f3\lang1033 point ranges, the best reference is the following two volume book available from Addison-Wesley:}{\plain \f3\lang1033
79: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 The Unicode Standard}{\plain \f3\lang1033
80: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 World-wide character encoding}{\plain \f3\lang1033
81: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Version 1.0}{\plain \f3\lang1033
82: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Vol 1: ISBN 0-201-56788-1}{\plain \f3\lang1033
83: \par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Vol 2: ISBN 0-201-60845-6}{\plain \f3\lang1033
84: \par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \b\f4\lang1033 \page }{\plain \b\f3\lang1033
85: \par }}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.