No Title
TrueTEX "Read Me" document
(Release Notes and Other
Last-Minute Information)
TRUETEX Release 4.5P - May, 2004
2pc The LATEX document you are reading contains last-minute information regarding the TRUETEX release you have installed. This information supercedes any statements in the TRUETEX User's Guide.
The TRUETEX "Read Me First" icon views this document using the TRUETEX previewer. If you are unfamiliar with the previewer and haven't yet read about it in the TRUETEX User's Guide, you should find the basics of using the previewer very easy: just use the scroll bars to move about the page, drag the mouse to zoom in, press Space to zoom out, and use PgDn and PgUp to move to the next or previous page.
You can print this document by selecting File Print in the previewer.
Previewing this document also serves as a basic test of whether the TRUETEX installation succeeded. For example, if any of the fonts on this page appear in blue on your color display (indicating a font substitution), then there was a problem with the installation of the TrueType fonts included with TRUETEX, and you should consult the TRUETEX User's Guide for information on font troubleshooting.
You can get later editions of this document over the Internet to keep up-to-date on the status of TRUETEX upgrades:
http://www.truetex.com
See the table at the end of this document for a summary of new features and corrections implemented in the various TRUETEX releases.

Contents

1  Quick Start
2  PDF Output Files
3  The TEX Live CD
4  Public Domain TEX ware
5  Font Reconstitution and Metafiles
6  Windows 2000 Compatibility
7  Universal Modern Fonts
8  Increased Capacities
9  TIFF Image Library Hooks
10  Improved Installation and Un-Install for Windows
11  Enhanced Virtual Font Handling
12  Omega Support
    12.1  Extensions for Omega
    12.2  Accessing Unicode Fonts
    12.3  Sparse Font Optimization and Unicode Virtual Packets
13  Corrected and Updated Metric Export
    13.1  Metric Export Formats Supported
    13.2  Selecting Input and Output Encodings
    13.3  Ligatures Supported
    13.4  Getting Unicode Fonts in Windows
    13.5  Limitations
    13.6  Making 8-Bit TEX Fonts from Unicode Fonts
    13.7  Using Adobe Type Manager (ATM) for Type 1 Fonts with Windows 95
14  Using the Windows Registry
    14.1  Using the Registry for Font Substitution
    14.2  Using the Registry for Preferences
15  Message Window
16  Enhanced Special-Handling in 32-bit Edition
    16.1  Accessing Memory-Mapped Special-Texts
    16.2  Messages from special handlers
17  Font Encoding Maps
18  Initial Window Sizing
19  Long File Names
20  DDE Server
    20.1  DDE Commands Implemented
    20.2  DDE Argument Syntax
    20.3  DDE Service Enabling/Disabling
    20.4  DDE Platform Interoperability
    20.5  Programming a DDE Client
21  Recursive Directory Searching
22  Using Multiple Configuration (.INI) Files
23  Initial Working Directory
24  Quiring
25  Virtual Fonts
26  TEX Font Names
27  '134special Handler Sources
28  TEXWAKEUP Preference for initex3x.exe
29  Programming with the Setup Utility
    29.1  How Setup Organizes Distribution Disks
    29.2  Modifying Setup for Network-Master Installation
    29.3  Setup command-line syntax
    29.4  Other Setup Programming Considerations
    29.5  Examples of Using Setup
30  Other Network Issues
31  Character Composition in Exported Font Metrics
    31.1  Composition Language for Experts
32  COMMDLG.DLL Required
33  Win32s
34  Bugs Corrected
35  TrueTEX Release Summary
36  Regarding Copyrights and Other Legal Matters
    36.1  Copyright Notice
    36.2  TIFF Library Copyright Notice
    36.3  Info-Zip Disclaimer
37  Technical Support

1  Quick Start

To install TRUETEX, run the setup.exe program on the TRUETEX Setup Disc CD. Consult the TRUETEX User's Guide for instructions on formatting, previewing, and printing TEX and LATEX documents.

2  PDF Output Files

(First available in 4.5H:) TRUETEX now includes command-line formatting to generate PDF files directly from TEX and LATEX sources using TrueType Computer Modern fonts. The command-line invocation is easiest via the -x option of the previewer. For details, see the Release History section below for releases 4.5H and 4.4. You may wish to create a convenient batch file named something like pdflatex.bat somewhere in the console PATH, containing the following: @echo off
c:\TrueTeX\TrueTeX\dvigdi32.exe -1 -x "LaTeX-PDF %1"
Which will allow you to type: c> pdflatex  full-path-of-LATEX-source-file to create PDF files from LATEX sources.

3  The TEX Live CD

We are pleased to include a licensed copy of the TEX Live CD as a supplement to each retail copy of TRUETEX. TEX Live is not a part of TRUETEX and is not required to run TRUETEX; you do not need to install the TEX Live disc (an enormous amount of software) if you just want the essential TEX and LATEX for Windows that TRUETEX provides.
TEX live contains macros, fonts, and documentation not included in TRUETEX, as well as ready-to-run TEX executables for Linux, UNIX, Macintosh, OS/2, DOS, and WIN32 based on the Web2c-7.3 GNU code. The TEX Live Guide is the essential documentation, which you may find in various languages and formats by consulting the file index.html in the root directory of the disc.

4  Public Domain TEXware

TEX is a widely used typesetting system and many people freely share their software efforts related to TEX. Many programs, macros, and other accessories for TEX are available on the Internet via FTP to the CTAN (Comprehensive TEX Archive Network) archive, and if you are a serious TEX user you will find much valuable software there:
ftp://ctan.tug.org/tex-archive

5  Font Reconstitution and Metafiles

Font reconstitution is a new, mostly invisible, feature which the previewer uses to avoid font encoding problems in non-Unicode Windows (95, 98, Me). Many of the TrueType fonts in Windows contain characters that are encoded "unreliably". For example, the Windows New Times Roman font has ligatures available at codes like 0xfb01, but many legacy printer drivers cannot render a character code in that range. Such characters are encountered with \usepackage{times}. Whenever a TeX virtual font thus calls on the previewer to render an unreliable character code, the previewer builds and installs a temporary, reconstituted TrueType font out of the Windows font. This reconstituted font is a new symbol font which encodes the formerly unreliably-encoded characters in "safe" character codes. The previewer thereafter automatically renders unreliable codes in the old font with the safe codes in the reconstituted font. The previewer builds and installs these reconstituted fonts as needed, and deletes them when exiting. The previewer keeps the reconstituted fonts private, so that they do not show up in font selection dialogs or in the Font applet.
Reconstituted fonts may be called for in pages you copy to the clipboard with Edit+Copy in the previewer. If you see characters appearing as '?' (question marks) when you paste previewed pages into other applications, check that font reconstitution is turned on in the Options+Expert menu. When using the clipboard with the previewer, you must copy, paste and render in the target application with the previewer still active and displaying the copied document. Metafile pictures on the clipboard are not portable to another system, or even to a later time on the same system. If you exit the previewer, the application that plays the metafile will show random font substitutions and character codes for the reconstituted ones that disappeared.

6  Windows 2000 Compatibility

(First available in 4.2B:) Windows 2000 is incompatible with several features in versions before 4.2B of TRUETEX Setup and the previewer. This is due to Windows 2000 reporting a peculiar version that breaks Microsoft's GetVersion() parsing. Setup 4.2A and earlier will not install fonts into the Windows 2000 registry, although the font files will be installed; this does not affect a prior installation of TRUETEX on a Windows 95/98/NT system subsequently updated to Windows 2000. Windows 2000 affects various features in the previewer 4.2A and earlier, including: encoding map for font (displays only first 256 characters), no UNICODE rendering (uses 8-bit rendering), default font list is taken from WIN.INI, PostScript printers not detected by the '134special handler, and font metric exports will only use the first 256 character codes.
A very effective work-around corrects this problem in older versions of the previewer: the apcompat.exe tool on the Microsoft Windows 2000 CD in the Support\Tools directory. You can run this program directly from the CD, or you can install it on your system by running setup.exe in the Support\Tools directory of the CD. After launching this application, use the Browse button to select the previewer executable file (typically c:\TrueTeX\TrueTeX\DVIGDI32.EXE), select the operating system "Windows NT 4 SP3" (any service pack version will work), and select the check box "Make the above check box settings permanent."
(First available in 4.4D:) Release 4.4D corrects a problem on Windows 2000 when Eastern Europe encoding support is installed. Installing that support causes Windows to enumerate a variety of non-ANSI-encoded fonts for a single font, which the previewer previously did not distinguish as non-ANSI. On certain documents using non-TEX fonts (such as in the times package) this would cause incorrect or missing-glyph characters to be displayed. Release 4.4D and later take care to only accept ANSI and symbol encoded fonts into the previewer's run-time font dictionary.

7  Universal Modern Fonts

(First available in 4.1L.) The 9 new Universal Modern fonts are Windows ANSI TrueType versions of certain Computer Modern typeface styles. We created these fonts using the same precise techniques we used to convert the Computer Modern fonts to TrueType, except that the character sets and encoding implemented in the fonts follow the ANSI standard instead of the TEX versions. This conversion involved a substantial amount of new METAFONT designs, since so many of the ANSI characters are not found in the original TEX fonts.
Because the Universal Modern fonts contain the complete ANSI character set in a Windows ANSI encoding, they are fully compatible with non-TEX Windows applications using English or Western European languages. These fonts are especially suitable:
The fonts and their names are as follows:
Font Name Description
umb10 Universal Modern Bold
umbx10 Universal Modern Bold Extended
umbxsl10 Universal Modern Bold Extended Slanted
umbxti10 Universal Modern Bold Extended Text Italic
umitt10 Universal Modern Typewriter Italic
umr10 Universal Modern Roman
umsltt10 Universal Modern Typewriter Slanted
umti10 Universal Modern Italic
umtt10 Universal Modern Typewriter

8  Increased Capacities

(First available in 4.1G.) Pursuant to newly increased demands for formatting capacity, release 4.1G of the formatter provides the following generous capacities:
Category Capacity WEB variable
Strings 30000 max_strings
String characters 300000 pool_size
Macro string pool 270000 string_vacancies
Main memory (4 bytes) 262140 mem_max
Control sequences 20000 hash_size
Font information 300000 font_mem_size
Number of fonts 256 font_max
Input buffer 5000 buf_size
Save stack 10000 save_size

9  TIFF Image Library Hooks

(First available in 4.1C.) The SPTIFF32.DLL TIFF graphics '134special handler has been upgraded to call upon the LIBTIFF.DLL TIFF-graphics library for reading bit-mapped files in WIN32 environments. The SPEPSF32.DLL PostScript graphics '134special handler is likewise upgraded for handling bit-mapped previews in EPSF PostScript files, which use the TIFF format (EPSI format files use ASCII, not TIFF, bit-map data).
LIBTIFF.DLL is a 32-bit DLL which supports a wide variety of TIFF file variations (including black-and-white, grayscale, and color), a wide variety of color models (including 1- to 8-bit RGB palettes, 24-bit RGB triples, CMYK, and YCBCR), and a wide variety of compression methods (including uncompressed, PackBits, CCITT, LZW, and Thunder). LIBTIFF.DLL is a new, proprietary component of TRUETEX, and is based on the excellent TIFF library software of Sam Leffler of Silicon Graphics, Inc.
With the addition of this new TIFF library, the hooks which called on the shareware SimSoft Image Library have been deleted from the TRUETEX '134special handlers. While that library claimed to support a wider variety of image file formats, it was unreliable in practice, and for legal reasons could not be distributed directly with TRUETEX (although it could be downloaded readily via the Internet). An optional '134special handler will be made available that provides backward compatibility for those needing SimSoft features.
The 16-bit TIFF '134special handler still uses the Black Ice TIFF.DLL. (You can tell which version of the previewer is running by examining the Help About message box.)

10  Improved Installation and Un-Install for Windows

The TRUETEX Setup utility, setup.exe, resides on TRUETEX Setup Disk 1 and controls the automatic installation of TRUETEX on your system.
A upgraded feature in Setup provides an automatic un-installation via an icon in the TRUETEX program group, accessed from the Windows Start menu. (First available in 4.1D.) Un-installing TRUETEX will unregister the TRUETEX fonts and remove the TRUETEX application files; it will not remove the directory tree itself or any files added there since installation, nor will it remove the program group from the start menu. You will probably have to shut-down and re-start Windows to completely recover disk space freed by the un-installation, since the un-install process defers removal of certain files that the Windows system locks (such as fonts that have been in use, and the setup.exe executable itself) until the next system re-start. After the re-start, you can use the Windows Explorer to remove the TRUETEX directory tree (but be sure that you first move or back-up any important files that you might have added there).
You can remove the Start Menu "TrueTeX" group from your Windows system by right-clicking the Start button, selecting "Open", then double-clicking "Programs" in the Start Menu window, highlighting the "TrueTeX" icon with a single click, and finally pressing the [Delete] key.
After un-installing, you can run Setup again from the distribution disks to re-install TRUETEX; this should not affect any extra files you may have retained in the directory tree.
TRUETEX no longer supports automatic installation in Windows 3.1.
The previewer application still installs in two versions, a 16-bit and 32-bit version. The 16-bit version is somewhat faster than the 32-bit version and is appropriate for ordinary TEX documents, while the 32-bit version can handle special features such as Unicode fonts (described below). The formatter is only a 32-bit application.

11  Enhanced Virtual Font Handling

(First available in 4.0R.) This release improves the way the previewer creates and uses virtual fonts; accompanying the release are new virtual fonts files implementing the DC fonts, virtual fonts for the LATEX times package, and virtual fonts for the MathTime Type 1 fonts.
Virtual font handling changes in the following respects:

12  Omega Support

(First available in 4.0N.)
This release of the previewer supports all aspects of Omega, an extended version of TEX which supports enhanced multilingual capabilities and 16-bit font encodings. You can learn about the powerful capabilities of Omega, an opus of Yannis Haralambous and John Plaice, in TUGboat vol. 15, no. 3, September 1994, "Progress on the Omega Project". The Omega software is available at URL ftp://nef.ens.fr/pub/tex/yannis/omega, and there is a Web page at http://www.ens.fr/omega.
Omega is a tool for the multilingual expert, and a means for TRUETEX to improve the performance of 8-bit TEX on Windows. The plain TEX and LATEX macros are not directly usable in the Omega formatter, so the features are not immediately useful in the way an author would write conventional TEX documents.

12.1  Extensions for Omega

TRUETEX support for Omega includes the following features:

12.2  Accessing Unicode Fonts

The most immediately useful aspect of the TRUETEX Omega extensions are the simple and complete access to the Unicode fonts of Windows NT and Windows 95. This means that you can avoid encoding mismatches when using non-TEX fonts in TEX documents. For example, the Unicode Times New Roman font in Windows contains all of the characters (or elements needed to compose accented characters)1 used in the TEX Roman and LATEX T1 encodings, and the Omega-enhanced TRUETEX previewer allows full translation between TEX and Unicode encodings via the Omega-enhanced virtual fonts. Access to Unicode allows us to finally rationalize the TEX fonts and typesetting into cross-platform standards, instead of employing ad-hoc 8-bit encodings that will not work when, for example, the Windows code page changes or when an output file is exported via Adobe Acrobat.
While both the 16-bit and 32-bit editions of the previewer support the Omega files, rendering with Unicode fonts requires the 32-bit previewer running on a Unicode-capable version of Windows (currently Windows NT and Windows 95).

12.3  Sparse Font Optimization and Unicode Virtual Packets

(First available in 4.0P.) This release adds optimizations in the Unicode edition to optimize handling of sparsely populated fonts. For example, Unicode multilingual fonts may have characters mostly in the range 0x0000-0x3ff, plus a few others around 0x2000, and around the private zone starting at 0xfb00. The TRUETEX sparse-font optimizations store compacted tables for these fonts, instead of populating 64 K-entry arrays with mostly empty positions. This avoid large memory demands which otherwise would result.
This release of the Unicode edition also implements virtual character packets for codes above 256; previously virtual characters larger than 256 could only appear in virtual fonts as codes for actual TrueType fonts; now TRUETEX supports fully general TEX and Omega virtual fonts. TRUETEX also applies sparse table techniques to map virtual font character numbers to virtual font packets, thus avoiding inefficient use of memory.

13  Corrected and Updated Metric Export

(First available in 4.0N.)
New metric-export features allow you to access any character in any Windows font in a completely general way. (See the later sections in this document for more information on virtual fonts and the composition interpreter.)

13.1  Metric Export Formats Supported

The metric export (File-Export Metrics menu item) now supports both VPL (TEX Virtual Property List) and XVP (Omega Extended Virtual Property List) file formats when exporting font metrics. The VPL format supports 8-bit encodings (the various TEX encodings and Windows ANSI), while XVP supports not just 8-bit encodings, but also 16-bit encodings (such as Unicode).
TRUETEX includes console versions of the programs VPtoVF and XVPtoXVF translate the property list files to their respective TFM, OFM, XFM, VF, and XVF binary formats for use with TEX and Omega. When you export a metric file, TRUETEX will attempt to run the converter program in a console (Windows NT or 95) or DOS (Windows 3.1) window to automatically yield a binary metric file.
One important application of the XVP metric export is to create 8-bit virtual TEX fonts which use the Unicode 16-bit codes in Windows TrueType to reach accented characters and math symbols in Unicode fonts.
TRUETEX metric export also supports the obsolete PL (TEX Property List) metric file format, and the companion program PLtoTF, should you need this format for use with older TEX software. In this case you specify only an input font encoding, and the property list will reflect this encoding as applied to the TrueType font you select.
The TRUETEX Users Guide is incorrect in saying you must retrieve PLTOTF from the CTAN archive. It is now included in the TRUETEX binary directory.

13.2  Selecting Input and Output Encodings

(First available in 4.0P.) The list of encodings which TRUETEX knows is presented twice each time you export metrics, once each for the input and output encodings. Each selection corresponds to a .cod file in directory \truetex\encoding. A new entry at the end of the list:
[Select any encoding file from File-Open dialog]
allows you to select any encoding-specification file using a File Open common dialog. Currently such files must be in .cod format, which is explained in the TRUETEX Users Guide.
We have provided two AWK scripts, codtoafm.awk and afmtocod.awk, to convert encoding specifications from .cod to .afm and back. These scripts will work with the GNU AWK program, which you can obtain from various Internet GNU archives, or with UNIX AWK.

13.3  Ligatures Supported

When you export metrics, TRUETEX puts the ligature rules of Table 1 into the TFM or XFM file, if the ligature characters exist in the font.
Table 1: Ligature Rules Applied to Exported Fonts.
First Second Result Description
Dashes
hyphen hyphen endash -- to endash
endash hyphen emdash endash- to emdash
Shortcuts to national symbols
comma comma quotedblbase ,, to quotedblbase
less less guillemotleft << to left guillemot
greater greater guillemotright >> to right guillemot
exclam quoteleft exclamdown !` to exclamdown
question quoteleft questiondown ?` to questiondown
F-ligatures
f f ff ff to ff
f i fi fi to fi
f l fl fl to fl
ff i ffi ffi to ffi
ff l ffl ffl to ffl
Paired single quotes to double quotes
quoteleft quoteleft quotedblleft `` to quotedblleft
quoteright quoteright quotedblright '' to quotedblright

13.4  Getting Unicode Fonts in Windows

The Windows standard fonts (Arial, Courier, Times New Roman) can contain various sets of accented characters, depending on your version of Windows and options you have installed: Windows 3.1 will contain ANSI fonts only. Windows 95 will contain all the English and Western-European characters (Latin-1) by default; to get Eastern Europe, Greek, Cyrillic, etc., you must install the "Multilingual Options" extension (you can do this easily by consulting the Windows 95 Help topic, "multilanguage support, installing"). Windows NT automatically installs the multilanguage fonts, and also provides a Unicode demonstration font, Lucida Sans Unicode, containing 1700-odd characters.
Note that TEX text fonts like cmr10 contain Greek capitals, so you should try to virtualize Windows fonts that contain these characters. For example, with the standard fonts like Arial, you can make a TEX virtual font that fills all the positions of fonts like cmr10 except for the polishlcross and dotlessj characters.
You can examine the fonts on your system to verify how well-populated they are: use the TRUETEX Encoding Map on the Text menu (see below). This map works much better for viewing the Unicode tables than the Windows character mapper or font installer.

13.5  Limitations

Windows 95, which will display and print Unicode text from TRUETEX, unfortunately has a problem in that it will not report metrics or kerning for Unicode characters 256 and above (that is, the Microsoft GDI functions GetGlyphOutlineW() and GetKerningPairsW() do not work correctly in Windows 95). This means that you can export metrics for characters 256 and above only if you are running Windows NT. You can use the metrics TRUETEX exports under Windows NT to view and print in Windows 95, you just can't create the metrics themselves on Windows 95.
There is a work-around for this Windows 95 limitation, however. You can generate an AFM (Adobe Font Metrics) file for a TrueType font outside of Windows by using an accessory program ttf_edit included with TRUETEX. This program is a TrueType font encoding editor, and is documented in the file ttf_edit.w in directory \truetex\bin. For example, to create and AFM file for arial.ttf, use ttf_edit as follows:
C> \truetex\bin\ttf_edit arial.ttf font 3 1 afm > arial.afm
This will produce an AFM file giving metric information for the platform 3.1 (Windows, ANSI or Unicode) encoding of the Arial font. (warning: pending implementation as of 2 Jun 1996).
Now, using the previewer, choose File + Export Metrics for the Arial font, choosing the input encoding, "Windows 3.1 ANSI or ATM (16-bit Unicode)''. When TRUETEX encounters the Windows 95 metric export limitation at codes 256 and above, it will ask you if you want to use an AFM file instead of TrueType metrics, and you can respond by opening the AFM file arial.afm you have just created for that purpose.

13.6  Making 8-Bit TEX Fonts from Unicode Fonts

While exporting XVP files (Omega 16-bit font metrics) will connect the TRUETEX previewer to Windows' Unicode fonts, the TEX formatter requires TFM metric files, not Omega XFM or OFM files. If, when exporting metrics, you specify an 8-bit output encoding, the resulting virtual font will be compatible with the original TEX formatter and will not require the Omega formatter.
To create a TFM file for such a font, use the xvptovpl.exe filter to truncate the virtual codes in the XVP file and produce a truncated VPL file. For example, if you have exported arial.xvp:
xvptovpl < arial.xvp > arial.vpl vptovf arial
will create arial.tfm for use with TEX. You should delete the arial.vf file also created by these commands, since it does not properly map the 8-bit characters to Unicode.
The XFM and TFM files produced by this process will contain the same information; the XFM format is not needed in this case. The previewer will look first for an OFM or XFM file for a font in preference to a TFM file, if the OFM or XFM exists, so either format is acceptable to the previewer. The previewer does need the XVF file to map the 8-bit TEX characters to Unicode positions, however, and VF file would be incorrect.

13.7  Using Adobe Type Manager (ATM) for Type 1 Fonts with Windows 95

You can use Adobe Type Manager and Windows 95 together with TRUETEX, if you follow a few precautions. Adobe Type Manager 3.02 (the first version that worked under Windows 95) does not report the metrics and kerning for its fonts to Windows, so TRUETEX cannot learn what it needs to export TEX metrics by simply querying Windows. When you export metrics for an ATM font, TRUETEX will instead ask you for an AFM (Adobe Font Metrics) file which goes with the font you are are exporting TEX metrics for. TRUETEX will use the AFM file you provide as the source for items such as the character bounding boxes and kerning pairs. The encoding given in the AFM file is ignored, so do not depend on it as a means to re-encode fonts; the input and output encodings you specify to TRUETEX for the export are the ones which the export process will use.
ATM fonts are strictly 8-bit input encodings, so you should select the "Windows 3.1 ANSI or ATM (8-bit)" input encoding whenever you export metrics for an ATM font in Windows 3.1 or 95, and "Windows 3.1 ANSI or ATM (16-bit Unicode)" in Windows NT (in theory, anyway; as of this writing there is no ATM for Windows NT). The virtual font files (.vf, .ovf, or .xvf) will be specific to the 8-bit or Unicode environment respectively. ATM itself is lagging behind advances in Windows, notably in its lack of Unicode support and lack of a version for Windows NT.
Whenever you export metrics, TRUETEX tries to guess some sane values for the font's ItalicAngle, Quad, SpaceWidth, and XHeight. If you find that the spacings appear incorrect, you may need to alter these values in the .vpl (or .xvp) file and convert them with vptovf (or xvptoxvf).
TRUETEX does not (in this release) forward kerning to composed ligatures (that is, those generated by the composition script), even if the components are kerned. For example, if the pair "o" followed by "f" were kerned closer in the font, and the exported font contains a composed ligature "ffi", the string "office" would not be kerned between the "o" and the "f" unless you defeated the kerning with TEX commands.
Although installed fonts are supposed to be registered in the Windows 95 registry (so that applications can enumerate fonts), ATM 3.02 does not support the Windows 95 registry. You must therefore add the file ATM.INI to the Options + Expert + Font Subsitution Files(s) path to notify TRUETEX of the list of ATM fonts. You must do this before you can use ATM fonts in TRUETEX for exporting metrics or previewing.
TRUETEX does not use the composition information present in an AFM file.
This release also corrected a possibility of exported TEX metrics having negative heights for characters which were entirely below the baseline; the corrected software ensures that such below-baseline heights are always zero.

14  Using the Windows Registry

(First available in 4.0M.) The TRUETEX 32-bit previewer (DVIGDI32.EXE) can now load configuration information from the Windows Registry as well as from .INI files. You may use the Windows Registry in a natural way for any preference item where TRUETEX formerly used an .INI file, such as for the font substitutions and for the TRUETEX.INI file.
The Windows Registry is a feature of Windows 95 and NT which was not present in Windows 3.x. Windows 95 and Windows NT both use the Registry to store configuration information that was formerly stored in system files like WIN.INI in Windows 3.1. If you are unfamiliar with the Windows Registry, consult the Windows 95 or Windows NT Help for an introduction to it.
Since 16-bit applications cannot access the Registry, using the 16-bit previewer (DVIGDI16.EXE) in Windows 95 or NT requires that you provide a .INI file listing the fonts installed in the system. The format of .INI files is described in the TRUETEX Users Guide and in this document.

14.1  Using the Registry for Font Substitution

Since Windows 95 and NT keep the system-wide list of fonts in the Registry instead of WIN.INI, it is especially important that TRUETEX be configured to access the Registry for font substitution.
In the list of font substitution files, TRUETEX considers any name starting with the following canonical Windows key names as registry keys instead of file names:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
For example, Windows 3.0 and 3.1 typically used the [fonts] section of the file C:\WINDOWS\WIN.INI to list the fonts installed on the system. In Windows 95 and Windows NT this same list is kept in the Windows Registry; Windows 95 lists fonts under the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Fonts while Windows NT lists them under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts. So where WIN.INI used to appear in the preference item Expert + Font Substitution File(s), we would now use (in Windows 95, for example), HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts.
If you supply a Registry key for font substitution, but TRUETEX reports that it cannot find it, check: (1) That no backslash precedes "HKEY¼" in the name as you have entered it; (2) That you have entered only backslashes (not forward slashes) in the name; (3) That you are using the right key for Windows 95 versus Windows NT (as noted above, the two systems differ over such items as the key name for the system font list); (4) That the entry actually exists in the Registry (you can use the Windows accessory REGEDT32 (the Windows Registry Editor) to verify existence of keys and their values).
Note: release 4.1H corrected a problem which could cause the Previewer to crash at start-up when font substitution strings from the Registry totaled more than 8,192 characters, which typically occurs at about 400 or so installed fonts.

14.2  Using the Registry for Preferences

While Windows takes care of keeping system font information in the Registry, TRUETEX uses a private profile file to store its preference information. However, you can configure Windows to map the TRUETEX private profile into the Registry. To do this, use the Registry Editor to create a key named HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\TRUETEX.INI, where TRUETEX.INI is the name of the TRUETEX initialization file (you can use another subkey name for the default TRUETEX.INI with the -i command-line option).

15  Message Window

(First available in 4.0M.) The previewer now directs many messages to a TrueTeX Messages MDI window, which scrolls the text of informational messages from the previewer. The previewer has grown in complexity to the point where many detailed messages and conditions can appear during a previewing session; the usual dialog box is a clumsy and ineffective method to display informational messages, since it requires your input to continue. The previewer also uses the message window to display messages from a document display window that cannot be interrupted by a dialog box.
You can use scroll bars to review lengthy messages that have scrolled off the display. You can minimize the window to ignore messages, or close the window to dispose of past messages. You can use the Cliboard to transfer message texts to other applications for printing or review.
Future revisions of the previewer will use dialog boxes only for messages requiring user action.

16  Enhanced Special-Handling in 32-bit Edition

(First available in 4.0L.) We have modified and enhanced the rendering calls to the special() function of 32-bit special-handler DLL's. While in WIN16 applications one can pass file stream pointers to DLL's, in WIN32 this is not always possible. Thus the "f" parameter (a FILE * pointer) which DVIGDI32.EXE provides to special() handler functions is modified as follows: this pointer will be NULL unless the '134special text is lengthy (currently, "lengthy" means ³ 1024 characters), in which case the pointer will be (on auction and rendering calls) a memory-mapped pointer for the underlying DVI file.
That is, the handler function may use the pointer plus an offset between offset to offset+total_len-1 to access the full text of a lengthy '134special.

16.1  Accessing Memory-Mapped Special-Texts

Note also the following cautions:

16.2  Messages from special handlers

Formerly, '134special handlers have been prohibited from displaying message boxes because they are called inside a previewer WM_PAINT. One disadvantage to this limitation is that debugging handlers is very difficult, since handlers cannot display debugging information interactively. A new feature in this release allows '134special handlers to pass texts to the previewer for display in a message window. The handler should #include the header file regmsg.h, and then can send informational texts for display to the previewer via a message to the document window with a statement similar to this:
if (hWnd) SendMessage(hWnd,IPRINTF_MESSAGE,0,
    (LPARAM)"spcolr: Hello");
where hWnd is the window handle passed to the special() function in the '134special handler (that is, the second parameter to special). (In WIN16 compilations, you will need to follow the cast to (LPARAM) with a cast to (char far *) in small-model code.) The previewer will display the string addressed by the LPARAM parameter. Take care not to generate such messages on every rendering pass, since this can result in numerous messages.

17  Font Encoding Maps

(First available in 4.0K.) A new previewer menu selection, Text + Encoding Map for a Font, allows you to choose a Windows TrueType font which the previewer then displays in an MDI child window, showing a table of the characters in the font and the raw encoding (such as ANSI or Unicode) for that Windows font. This display is of interest to those trying to use non-TEX fonts with TEX.
In the WIN16 previewer (DVIGDI16.EXE) or when the operating system does not support Unicode (such as Windows 3.1 with Win32s), the previewer displays the 8-bit encoding table, namely the codes 0x00 to 0xff. The WIN32 previewer (DVIGDI32.EXE) displays the Unicode encoding when running under an operating system which supports Unicode output (such as Windows NT or Windows 95). The table shows the unmodified Windows encoding; none of the virtual font or ad hoc encoding tables are applied.
If the table does not fit in the child window (such as a Unicode table having 65536 code positions), you can use the View menu navigation commands, shortcut keys, and scroll bars to move the window up and down the rows of the table, much like moving about a document preview.
Each row of the table shows the hexadecimal code of the first character in the row. Rows are always a power-of-two characters wide to facilitate reading the codes in the rows.
The window displays characters in the point size you select in the font choice common-dialog; you can use a small point size to fit many long rows into one view, or you can use a large point size to show details in each character. Rows and columns automatically resize if you change the size of the window. Undefined characters will display as rectangles.
While File + Print and Edit + Copy items are not available for encoding map windows, you can print portions of the tables by using Ctrl + Print Screen to copy the active window to the Windows Clipboard, and pasting the Clipboard into any Windows application (such as the Windows Wordpad accessory) which can print the pasted result.

18  Initial Window Sizing

(First implemented in 4.0J.) Previous versions always opened the previewer as a full-screen (maximized) window. A new command-line option, -d x y w h, lets you specify the initial size of the TRUETEX previewer window. The coordinates (x,y ) specify the screen coordinates of the upper-left corner of the window, and w and h specify the width and height respectively in pixels. If x or y is negative, the initial window will be maximized and the restore-size of the window will be set from (w,h ) anchored at the Windows default position. If either w or h is negative, the width and/or height of the window will be extended to the respective edge of the screen. For example, "-d -1 -1 -1 -1" starts a maximized window, "-d 100 100 500 500" a 500 × 500 window anchored at screen coordinates (100,100). and "-d 100 100 -1 -1" a window anchored at (100,100) and extending to the right and bottom edges of the screen.
To start a minimized (iconic) window, check the Run Minimized option in the Program Item Properties dialog of the Program Manager, or set the appropriate value in nCmdShow in the WinExec call.

19  Long File Names

(First implemented in 4.0J.) TRUETEX (32-bit edition) now supports Windows NT and Windows 95 long file names. The previewer also understands file names and other arguments containing spaces, either through file names in the File Open common dialog, or (releases 4.1E or later) through arguments which are double-quoted on the command line. (Note: TEX cannot handle file names with spaces, so they are not acceptable to the formatter.)

20  DDE Server

(First implemented in 4.0J.) Expert and OEM users can now invoke TRUETEX previews from other applications via DDE (Windows Dynamic Data Exchange) "execute strings."2
The DDE service name is "TrueTeX", the topic is "View", and the items are the commands listed below. The TRUETEX DDE commands follow the standard syntax of Microsoft Excel and the Windows Program Manager.

20.1  DDE Commands Implemented

Here are the commands implemented:
You may give more than one argument to Open or Close, separated by commas; the previewer will interpret each in turn. The Show and SetPos execute strings require the prescribed arguments. Exit must not have any arguments.

20.2  DDE Argument Syntax

TRUETEX interprets backslash (\) as an escape character in DDE execute strings to allow you to put commas, quotation marks, white space, newlines, etc., into string arguments. TRUETEX interprets the character immediately following a backslash literally, instead of using the normal syntax rules. This is similar to the C language syntax, although octal escapes and special characters (\n, \r, etc.) are not supported. You can also insert double-quotation marks by putting them in pairs, as in the style of Microsoft Excel or Visual Basic.
Note that you must use double backslashes in an execute string to indicate each single backslash in directory paths. A C program giving a literal string for a file name in an execute string therefore needs four backslashes to indicate each single directory backslash!
Double quotes around arguments are optional, but must surround any argument containing unescaped white space.
You can concatenate DDE commands into a single DDE execute string. Syntax errors (unquoted argument, incorrect number of arguments, etc.) in a given execute string will cause the DDE server to ignore the command and proceed to the next square-bracketed command ([...]) in the same execute string. An unknown command (for example, misspelling "Open") will abort execution of the rest of the execute string.
Semantic errors (files not found, malformed DVI files, missing fonts, etc.) will cause the previewer to display message boxes, as if the commands were given on the program item command line, but this will not affect the status value returned to the client. TRUETEX does not support any protocol for returning result information to the DDE client application, other than success (bAppReturnCode = 0) or failure (bAppReturnCode = 0). "Success" merely indicates that the command passed syntactical tests; it does not indicate any semantic success such as a file being successfully opened or printed.

20.3  DDE Service Enabling/Disabling

The Options Expert DDE Server preference item controls whether TRUETEX previewer responds to DDE commands. Disabling the service prevents the previewer from responding, which may be useful in debugging unexpected behaviors.
A DDE client will also receive no response if the TRUETEX previewer is not running. That is, the client or the user, when expecting previewer DDE service, must ensure that the previewer has already been launched, either from the Windows Program Manager or from an application (perhaps the client application itself) via a WinExec() call. Unlike the more advanced OLE servers, the Windows system has no registry of DDE servers to launch when a client requests a given DDE topic.

20.4  DDE Platform Interoperability

Various permutations of the Windows version versus the WIN16 or WIN32 executable versions of the program affect whether DDE execute strings work. In general, DDE will certainly work when the TRUETEX DDE server and the host system both use the same API word-length (WIN16 versus WIN32). That is, DVIGDI32.EXE DDE service always responds on Windows 95 or Windows NT, without regard to whether the DDE client is WIN16 or WIN32; likewise DVIGDI16.EXE DDE service always responds on Windows 3.1. The exceptions are in the following cases: DVIGDI32.EXE on Windows 3.1 does not respond to any DDE clients, WIN16 or WIN32; and DVIGDI16.EXE on Windows 95 does not respond to WIN32 DDE clients, although it does respond to WIN16 DDE clients.
The following table lists all the possible permutations:
Will Host DDE Client TRUETEX
Respond System WIN16/WIN32 DDE Server
Yes Windows 3.1 WIN16 DVIGDI16.EXE
No Windows 3.1 + Win32s WIN16 DVIGDI32.EXE
Yes Windows 3.1 + Win32s WIN32 DVIGDI16.EXE
No Windows 3.1 + Win32s WIN32 DVIGDI32.EXE
Yes Windows 95 WIN16 DVIGDI16.EXE
Yes " WIN16 DVIGDI32.EXE
No " WIN32 DVIGDI16.EXE
Yes " WIN32 DVIGDI32.EXE
Yes Windows NT WIN16 DVIGDI16.EXE
Yes " WIN16 DVIGDI32.EXE
Yes " WIN32 DVIGDI16.EXE
Yes " WIN32 DVIGDI32.EXE

20.5  Programming a DDE Client

Adding DDE client features to your C application requires a small amount of new code: a few extra lines in your message-handling switch, and some short functions. TRUETEX uses "raw DDE" and your DDE client will be most economical in doing likewise, rather than using the Windows DDEML (DDE Management Library DLL) or the "standard DDE" library found on the Microsoft Develeper Network. Raw DDE is appropriate, since DDE execute strings do not involve hot links, Clipboard data passing, or other advanced DDE features.
The paper titled, "Raw DDE" on the Microsoft Developer Network is an excellent reference on this programming subject. The sample application "DDEPOP1" in Petzold's book Programming Windows 3.1 gives a complete example of programming a DDE client. Note that this sample, however, does not provide for the WIN32 API.
Below are code excerpts from ddetst.c, a DDE client test application which compiles with Visual C++ (both WIN16 or WIN32 APIs, via a small amount of conditional compilation). This source code is available on DDETST.ZIP on the TRUETEX Setup disks (you must manually install this), or from our Web page (http://www.truetex.com). The excerpts below give only the code peculiar to raw DDE and omit the "boilerplate" Windows application code.
...
#include <dde.h>
...
HWND hServerWnd;                /* DDE server window                        */
...
/* We maintain a state variable to track the progress of a DDE execute      */
/* string conversation from initiation, to execution, to termination.       */
#define IDLE 1                  /* Idle, awaiting user input                */
#define INITIATING 2            /* Sent initiate, awaiting server ACK       */
#define EXECUTING 3             /* Sent execute, awaiting server ACK        */
#define TERMINATING 4           /* Got server's exec ACK, terminating       */
int ConversationState = IDLE;

    case WM_DDE_ACK:
            /* DDE server response.  The ACK for both the        */
            /* initiate and the execute arrive here, so we       */
            /* must take care to discriminate between them       */
            /* by examining the transaction state.               */

            /* The first ACK we might get is the server's        */
            /* response to our initiation.                       */
            if (ConversationState==INITIATING) {
                ConversationState = EXECUTING;
                hServerWnd = (HWND) wParam;
                DoDDE(
                        "[Open(\\\\kcc\\\\chk\\\\4192.dvi)]"
                        "[Open(\\\\kcc\\\\chk\\\\4196.dvi)]"
                        "[Open(\\\\kcc\\\\chk\\\\4197.dvi)]"
                        "[Open(\\\\kcc\\\\chk\\\\4198.dvi)]"
                    );
                ConversationState = TERMINATING;
                TermDDE();
                ConversationState = IDLE;
                }
            /* Otherwise we have the ACK for the execute;      */
            else if (ConversationState==EXECUTING) {
                /* Here we could examine the return status     */
                }
            /* This case is an error of synchronization        */
            else {
                }
            break;


void
IniDDE(void) {
    /* Initialize conversation with DDE server                 */
    ATOM app, topic;
    app = GlobalAddAtom("TrueTeX");
    topic = GlobalAddAtom("View");
    SendMessage(HWND_BROADCAST,WM_DDE_INITIATE,(WPARAM)hMainWnd,
            MAKELPARAM(app,topic));
    if (app) GlobalDeleteAtom(app);
    if (topic) GlobalDeleteAtom(topic);
    }

BOOL
DoDDE(char *cmds) {
    /* Send DDE commands to DDE server.  Return whether apparently */
    /* successful.                                                 */
    HGLOBAL hCmds;
    char FAR *p;
    if (hServerWnd==NULL) {
        MessageBox(hMainWnd,"Cannot connect to DDE server!",Title,MB_OK);
        return(FALSE);
        }
    hCmds = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE,strlen(cmds)+1);
    if (hCmds==NULL) {
        MessageBox(hMainWnd,"No memory for DDE!",Title,MB_OK);
        return(FALSE);
        }
    p = GlobalLock(hCmds);
    if (p==NULL) {
        GlobalFree(hCmds);
        MessageBox(hMainWnd,"No memory for DDE!",Title,MB_OK);
        return(FALSE);
        }
    lstrcpy(p,cmds);
    GlobalUnlock(hCmds);  p = NULL;
    if (!PostMessage(hServerWnd,WM_DDE_EXECUTE,(WPARAM)hMainWnd,
#if _WIN16
            MAKELPARAM(0,hCmds)
#elif _WIN32
            (LPARAM)hCmds
#endif
            )) {
        GlobalFree(hCmds);
        MessageBox(hMainWnd,"Cannot connect to DDE server!",Title,MB_OK);
        }
    return(TRUE);
    }

void
TermDDE(void) {
    /* Terminate conversation with DDE server                      */
    if (hServerWnd==NULL) return;
    PostMessage(hServerWnd,WM_DDE_TERMINATE,(WPARAM)hMainWnd,0L);
    hServerWnd = NULL;
    }

21  Recursive Directory Searching

(Enhanced in 4.0H.) Expert users can use recursive directory specifications in TRUETEX configuration items. By appending a double backslash to any directory, you indicate that you want TRUETEX to search that directory and any subdirectories thereof. For example, you can specify the TEXINPUTS to include a directory like \truetex\macros\\, meaning you want TRUETEX to look for .tex input files in directory \truetex\macros and any subdirectories. TRUETEX searches the initial directory you specify, and thereafter in the "depth-first" order.
Use caution with this feature. If you specify recursive searching in a large directory tree or across a network, performance may suffer as TRUETEX walks the tree for each file opened. LATEX and many other TEX macros test for non-existent files (such as LATEX .aux files) by attempting a file-open, and this can result in lengthy searches with no apparent progress.

22  Using Multiple Configuration (.INI) Files

(Enhanced in 4.0B.) TRUETEX stores all configuration and preference information for its programs in an initialization file. By default TRUETEX names this file TRUETEX.INI and keeps it in the same directory as the TRUETEX executable programs. If you want to configure TRUETEX for several users or for several preference configurations, you can set up any number of configuration files.
There are two ways for you to specify to TRUETEX where it should take its configuration information: a system-wide change or a per-icon change.
First, you can make a system-wide change by editing the Windows system initialization file, WIN.INI, to add a section "[TrueTeX]" containing an entry "INIFILE=Path", where Path is the name you choose for the .INI file you wish to use.
Second, you can use the "-i" command-line option to specify the .INI file to be used by specific TRUETEX Formatter and previewer icons. This option overrides both the default .INI file and any system-wide file you may have specified in WIN.INI.
To specify an .INI file for an icon, select the icon in the Program Manager and then choose File and then Properties. In the "Command Line" field of the Program Item Properties dialog, append a space and the option "-i Path", where Path is the name you choose for the .INI file you wish to use. (Note that there must be a space between "-i" and "Path".) If you enter a Path which specifies a file that does not yet exist, TRUETEX will create the file with default configuration and preferences the first time you launch the icon.
You can actually specify the Path parameter in several forms:
Example Description
-i c:'134mydir'134myfile.ini A fully qualified path and file name. The file is unambiguously specified. This is the safest option to use.
-i c:'134mydir'134 A directory only, indicated by the ending backslash, and no file name. TRUETEX will use the default name TRUETEX.INI in the directory you thus specify.
-i myfile.ini A file name only. This will use the Windows system directory to find or create the .INI file you have named. Use this form with caution, as it affects the Windows system directory.
-i .'134myfile.ini A relative path and file name. TRUETEX will use the file you have named in a directory relative to the "Working Directory" in the File Manager's "Program Item Properties." Note that the resolution of this path will change if you later change the Working Directory for the icon, so use caution with this method.
If you need help debugging the use of custom .INI files, the Other Show environment menu item in the Formatter and View Show DVI Info item in the previewer will reveal the fully-qualified name of the .INI file used by the respective TRUETEX program.
The extended-DOS version of the Formatter, INITEX3X.EXE, also uses the command-line option -i to locate its .INI file. This allows you to either share or separate usage, as you wish, of the preferences used by the various DOS and Windows TRUETEX programs.

23  Initial Working Directory

(New addition to 4.0B.) When you launch the TRUETEX previewer, it changes the initial working directory to that of the most-recently-used file. The "Working Directory" specified in the Program Manager icon will be used only (1) to locate the .INI file when you have specified a relative Path with the -i command-line option (see table above), and (2) as the default initial working directory if there is no history of viewed files in the .INI file.

24  Quiring

Although an elaborate quiring feature is planned for TRUETEX, for now a simple command-line option allows some primitive quiring. This option allows simple N-up printing for making labels or booklets. Enter command-line options in the form:
-q Xoff Yoff Xitems Yitems
which directs TRUETEX to step-and-repeat the contents of each page in an array of items Xitems wide by Yitems high with a distance between adjacent items of Xoff horizontally and Yoff vertically (distances in inches). You will see the effect both in previews and printed output.
For example, "-q 4.16 3.33 2 3" means to print an 2 by 3 array of the page image, with the array items stepped 4.16 inches horizontally and 3.33 inches vertically. This option corresponds to Avery 5164 self-adhesive label sheets for laser printers.
The print the TRUETEX User's Guide masters, we printed on US legal size paper (8[1/2] inches by 14 inches) in full-duplex, landscape orientation, using TRUETEX option "-q 7 0 2 1". This prints a master book yielding two copies, which are power-cut along the midline of the sheets before binding.
You may specify a negative or zero distance for the quiring offsets to achieve certain effects. However, a zero or negative value for the Xitems or Yitems counts will cause TRUETEX to render all pages blank.
If you need a more general quiring facility, consider Rokicki's dvidvi program, which rearranges the pages in a DVI file into a new DVI file with quired pages. The new DVI file will preview and print appropriately with the TRUETEX previewer.

25  Virtual Fonts

TEX experts now enjoy full support in TRUETEX for virtual fonts, which are a TEX-standardized method of re-encoding and re-composing fonts. Typical applications of virtual fonts include: re-encoding TEX output characters, composing diacritical glyphs from the bare characters plus accents, simulating 8-bit encodings with 7-bit fonts, and mapping exotic glyphs to '134special commands. You will find an explanation of the concepts in "Virtual Fonts: More Fun for Grand Wizards," by Donald Knuth, in TUGboat, Vol. 11, No. 1, April 1990, pages 13-24.
The explanation below assumes you understand the concepts of virtual fonts, as described in the reference above. The details are quite technical, but as we said, it is a feature for TEX experts.
Virtual fonts affect the operation of the previewer as follows (The following convention was modified in Release 4.0R; see above). If there is an "actual" font (that is, a TrueType font) for a font's external name, then the font is treated in the conventional (non-virtual) way, using the TEX or ANSI composite encoding as appropriate for the name. If there is no actual font for a given name, then the previewer expects to find a virtual font file (fontname .vf), and treats the font as a virtual font according to the instructions in the virtual font file. The previewer uses the same directory path for virtual font files as it does for TFM files, so the setting of Options Expert Path for TFM Files determines the directories where TRUETEX expects to find .vf files.
In previous TRUETEX versions which did not implement virtual fonts, all TEX font external names had to have an "actual" realization, which in the case of TRUETEX meant that they had to have a TrueType font with the same external name. With virtual fonts, a font name may refer to a virtual font file which gives instructions for rendering the font in terms of compositions from other fonts. A virtual font may also be recursive: it may refer in turn to other virtual fonts, as long as the chain ultimately leads to a glyph in an actual font.
Note that there are several details of how TRUETEX implements virtual fonts in addition to the TEX standard:
First, virtual fonts are never re-mapped. TRUETEX does not apply composite encoding to virtual fonts themselves or when rendering actual fonts used within virtual fonts. It is assumed that the virtual font mechanism will appropriately re-map the TEX font codes to the proper Windows ANSI codes. This means that if you want to make a virtual font out of several of the Computer Modern fonts, you must incorporate the "ad hoc" re-encoding table (described in the User's Guide) into your virtual font. By not re-encoding the fonts, TRUETEX virtual fonts allow you complete and simplified access to all glyphs in any font. Non-virtual fonts continue to be re-mapped with either the "ad hoc" or Windows ANSI tables; you can think of this behavior as if TRUETEX had a "default" virtual font (consisting of the re-mapping tables) for every top-level non-virtual font.
Second, in the case where both a virtual and actual font exist for a given external name, TRUETEX will give precedence to the virtual font at the top level. In keeping with the virtual font standard, TRUETEX prefers to treat recursive fonts within virtual fonts as actual (that is, TrueType) fonts, and treats them as virtual only if there is no TrueType version. At the top level, this bias is reversed, and TRUETEX attempts to first find a virtual font file for each top-level font in the document.
In this way we can use both a virtual and a TrueType version of a given font, without having to multiply the number of names or change the names of fonts in TEX or in the TrueType font system. For example, virtual font file cmr10.vf might render glyphs in terms of the font with the same name cmr10; TRUETEX would understand that the virtual font file is defining the virtual characters in terms of the TrueType font.
The usual virtual font scheme is to always prefer to treat font names as actual fonts, thereby precluding infinite recursion. The TRUETEX scheme is slightly different: A given font name may have both an actual and virtual realization. That is, the name may match both a TrueType font and a virtual font file, and the recursion rule sorts out which is used and when. This change presents no conflict with the usual virtual font scheme of always prefering the actual font.
We plan to extend the TRUETEX TFM export feature to also export virtual font files to facilitate your use of Windows fonts. The CTAN TEXware packages like vptovf and fontinst are good expert tools for creating virtual fonts which are compatible with TRUETEX.

26  TEX Font Names

In previous releases the previewer had a fixed list of font external names that were to be taken as TEX fonts. Now that list is made at start-up based on patterns in a preference item (Options + Expert + TeX Font Names ¼). You may set this string to a series of patterns which the previewer will match against font names; the previewer will consider any font whose external name matches one of the patterns to be a TEX font using the "TEX ad hoc" encoding; the previewer will apply ANSI encoding to all other fonts. The default value of the string is:
cm*;eu*;lasy*;lcircle*;line*;msam*;msbm*;logo*
which replicates the behavior of the tables built into previous releases. The patterns in the default string refer respectively to: Computer Modern, Euler, LATEX symbols, LATEX circles, LATEX lines, AM S Math Symbols "A" and "B", and the METAFONT logo font. In the patterns, you may use an asterisk (*) as a wild card; the general pattern syntax follows that of the Unix grep and sed programs so that you may indicate more complex patterns. The preference item value is given as TEXFONTNAMES in the .INI file.
Note that you should not specify a Belleek-encoded font, such as the TEX DC fonts (dcr10, etc.) as "TEX fonts" in this regard, since they do not use the TEX ad hoc encoding method.

27  '134special Handler Sources

The C source code in the '134special handler kit has been rearranged to promote sharing of common code between the various handlers. (27 Jan 1995).

28  TEXWAKEUP Preference for initex3x.exe

You may place in the .INI file (or the environment variables) an environment variable TEXWAKEUP, which, if it is set to any non-empty string, will result in the DOS-extended formatter issuing a beep (ASCII 7) code to the standard output whenever TEX is expecting input. This is useful if you run TEX in a Windows iconized MS-DOS session, since you will get an audible signal when TEX is waiting for your input. (Previous editions of initex3x.exe always beeped; this was not always appropriate.) The Windows formatter will restore and activate the window when a TEX error occurs.

29  Programming with the Setup Utility

The TRUETEX Setup program is our own custom application, and should not be confused with the Microsoft Setup Toolkit programs, InstallShield, or other third-party installers. It is a small, quick, and versatile executive for the installation process, and supports font installation, which many install utilities do not. This section is a detailed guide to using Setup and a guide for experts programming Setup for use with other applications.

29.1  How Setup Organizes Distribution Disks

TRUETEX Setup uses a file called manifest on the first Setup disk as a script to guide the installation process. You can examine this text file for details on what happens during installation but is ordinarily hidden from view. You can modify the manifest file to create a custom Setup for networked or site-licensed copies (assuming you have paid the appropriate royalties to us to legally make internal copies of TRUETEX, of course).

29.2  Modifying Setup for Network-Master Installation

You can make a master network copy of the TRUETEX installation resources on any host file server; from this master copy any user on the network could install TRUETEX on a given system. Such a master copy simply consists of all the files on the TRUETEX setup disks, which you copy into a single directory on the file server. Networked users can then run the Setup program from the file server's copy instead of from floppy diskettes. Setup and the manifest file do not depend on any particular arrangement of files on the Setup disks and will automatically adapt to the situation where all the files for installation are located together in a network file server directory.

29.3  Setup command-line syntax

Setup recognizes the following command-line syntax:
setup [opts] Use this form for a "first pass", that is, there are no arguments, and no -u option. After loading the manifest (which is not acted upon in the first pass other than to check syntax and note command-line options), displays a welcome message (unless -s is in effect), invokes an installation destination dialog (unless -f given), copies itself to the destination directory, and launches the "clone" with "second pass" arguments described below. The cloning is necessary because the executable file on the floppy disk (which floppy will possibly be removed and replaced with another during the installation process) cannot be removed during installation. If -u is in the options, the invocation is for an un-installation (see below).
setup [opts] src dest This form is a "second pass," and is usually only used by the first pass to pass information to the "cloned" copy. Installs from files from the src directory to the dest directory using a manifest file (default name is "manifest" or other value from the -m option) relative to src directory. Not a valid form for un-installation (-u).
Command-line options are as follows. Certain options must precede others to take effect. The option arguments may not contain spaces; thus a there is a limitation on WIN32 long file names (they cannot contain spaces).

29.4  Other Setup Programming Considerations

You can create various sub-manifests for components of your application, and invoke Setup with combinations of them for customized installations, with the link `l' manifest action.
Later versions of setup.exe ( TRUETEX releases 4.1E and later) provide a `u' manifest action which will unzip archives using the UNZIP32.DLL library. Formerly, Setup called on self-extracting executable archives to unzip themselves; these were DOS programs and lacked some grace in running under Windows. The new, native unzipping ability in Setup means that the entire process runs in a controlled, 32-bit Windows environment.
Distribution media for use with Setup should contain not only setup.exe and the installation manifest (and possibly sub-manifests called by the starting manifest, depending on your design), but also UNZIP32.DLL if the manifest calls for unzipping (`u') actions. If your manifest uses "x" actions (now obsolete; use unzipping instead), then you must also include execfrom.exe and execfrom.pif. An un-installation manifest is strongly recommended. These recommendations imply that the installation manifest should begin with "c" actions for these auxiliary files (but not setup.exe itself, which Setup must copy itself before the manifest is loaded).

29.5  Examples of Using Setup

a:setup Does an interactive install of TRUETEX.
a:setup -p Blatz -d C:\Blatz Does an interactive install of "Blatz".
a:setup -s -f -d C:\TrueTeX -m manifest Installs to a known directory, silently.
c:\TrueTeX\setup -u -f -d C:\TrueTeX -m uninstal Un-installs from a known directory, C:\TrueTeX.

30  Other Network Issues

(New in 4.0B.) If you purchased a multi-user (network) copy of TRUETEX, you can install just one copy of the TRUETEX programs on a network server and then create program groups and icons on various client machines which launch the applications from the server's .EXE files. You can customize the icons to specify a configuration file (.INI file) for each client system; see the section "Using Multiple Configuration Files" above for details.

31  Character Composition in Exported Font Metrics

The font metric exporter attempts to make exact matches betweeen input and output encodings where possible. For example, the character "A" is usually available in both input and output fonts, and so the virtual font usually contains a simple re-mapping between the associated codes.
A more difficult case is where the exporter must compose characters which are not available in the input fonts. For example, if the output font contains an "A with umlaut accent" (Ä) character, the input fonts may not contain the accented character, although they may contain both an "A" and an "umlaut accent" (\"). In this case the exported virtual font should contain a virtual character packet that sets the letter A with a superimposed umlaut accent.
Composing characters requires that the exporter have some geometric sophistication, since simply overlaying accents often does not yield a visually pleasing result. Typically the bounding boxes of the marks must be aligned according to rules specific to the letter and accent, and correction for italic slant must also be taken into account.
Some compositions do not even fit the letter-plus-accent model. For example we may wish to simulate a ligature "fi" by tucking a dotless "i" closely against an "f".
In order to provide a general and extensible method for composing virtual TEX characters from deficient input fonts, the TRUETEX metric exporter contains an interpreter for a character composition language. This language generally resembles a subset of PostScript operators and stack-oriented semantics.
TRUETEX includes a base composition script that does a fair job of composing characters used by TEX, and this is the default script used to export font metrics (you can write your own scripts to cover new cases or if you want to fine-tune the placement of composed character elements). The base script attempts to compose output characters from input characters in four ways:
When you direct TRUETEX to export font metrics, it will call upon a set of scripts in the character composition language to compose output characters which have no exact matches in the input encodings. These scripts are ASCII files containing the PostScript-like language. TRUETEX runs the script "compose.ps" in the font-encoding-files path preference item. If for some reason you need to disable the composition script, you can rename or move this file so that TRUETEX cannot find it; then TRUETEX will produce a valid metric export file, although you will get a message that TRUETEX could not find the composition script, compose.ps.

31.1  Composition Language for Experts

If you are a real expert in TEX and PostScript, you can modify compose.ps for special purposes.
The language syntax, data types, and operators all closely follow a subset of PostScript. We will describe what this subset is, and refer you then to a PostScript language reference for details on the language.
Remember to exit and restart TRUETEX if you make changes to the composition script, since TRUETEX only reads compose.ps once per instance, when it first exports a metric file.
Here are the pre-defined PostScript-like commands available in the composition language:
add and array begin clear cos count currentdict cvi cvn cvr cvs cvx def dictstack dict div dup end eq exchf exec exit falsef forall getinterval get ge gt idiv ifelse iff index known length le lt mod mul neg not orf pop put readonly roll round sin stack storef string sub tanf truef vpl_literal vpl_set vpl_wd_ht_dp_ic where
(The commands marked "f" are actually macros defined at the beginning of the script compose.ps.)
The built-in commands above have the same effect as their PostScript counterparts. A few commands are specific to the metric exporter, and have the following function:
string     vpl_literal     - Emits literal property-list text for string, indented, followed by new line.
wd ht dp ic     vpl_wd_ht_dp_ic     - Sets width, height, depth, and italic correction of character to be output.
x y code     vpl_set     - Emits property-list text to set input character code preceded by relative motion of (x,y).
Since the task at hand is limited, the non-relevant portions of full PostScript are not implemented, and the function of some operators is restricted. The file scanner is very simple and requires all tokens be separated by white space; for example, procedure delimiters (curly braces) must be separated by white space from the adjacent items. The data types supported are: integer, Boolean (as integer), double, name, procedure, dictionary. There is no Boolean type as in PostScript. Instead, the semantics overload integers for logical (Boolean) values, as in the C language. That is, integer 0 is false, anything else is true. There are also no bitwise operators as in PostScript. PostScript overloads the operators "and", etc., and maintains separate integer/Boolean types; we overload the type and would require separate operators. Integers must start with a digit (subtract from zero to get a negative value), floating point numbers must start with + or -, literal names with slash; anything else will be considered a name. Literal names can be decimal number strings, like "/48", as we illustrate below (in standard PostScript a number cannot be used as a literal name). Certain polymorphisms and coercions provided by PostScript are not supported, notably: dictionaries can only use names as keys; operators like roll that need integer arguments will not coerce floats to integers.
The systemdict, concomitant with the Boolean overloading of integers, contains definitions of "true" as 1 and "false" as 0.
The current implementation does not implement the following data types and operators: bitwise arithmetic, marks, random number functions, packed arrays (unpacked arrays are implemented), virtual memory, files, resources, the "miscellaneous" category of operators in the Adobe PostScript reference, graphics-related operators (graphics state, coordinate system, matrix, path construction, painting, insideness, forms, patterns, device setup and output), character-and-font operators, interpreter parameters, and Display PostScript. The interpreter maintains separate operand, dictionary, execution, and VM stacks as in PostScript.
The TRUETEX metric-exporter is connected to the interpreter such that five phases of execution occur: (1) the exporter exec's the interpreter's start() function (which is analogous to the PostScript start command, but not accessible to the composition script), (2) the exporter loads the composition macro file compose.ps, (3) the exporter does a begin followed by the operators and data to create the font information in the interpreter environment, (4) for each "composable" character, the exporter executes the definition of Compose in the interpreter, pushing the output character name as an argument, and (5) the exporter exec's an end to clear the font information loaded in (3).
The exporter does phases (1) and (2) only once per invocation of the previewer. It does phases (3) through (5) for each font exported. The exporter allocates and frees VM between steps (3) and (5), so that memory is reused between each composition. Exporting a font require several hundred KB of free memory.
A "composable" character is an output character which has no exact match in any of the input fonts' encodings.
In phase (4), the Compose definition can rely on the following two items being defined:
InputFont Dictionary of input font information
OutputFont Dictionary of output font information
Each of these two dictionaries in turn contains the following item(s):
CharCodes (Release 4.0N and later) A dictionary giving, for each character name, the code integer. For example, for the digit zero character at code position 0x30 (decimal 48), CharCodes contains an entry keyed by the name /one with value 48.
CharNames (Release 4.0N and later) A dictionary giving, for each code position (as a name consisting of the decimal representation of the code), the character name. For example, for the digit zero character at code position decimal 48, CharNames contains an entry keyed by the name /48 with value "/one".
    You can see that CharCodes and CharNames are inverse dictionaries. The size of these dictionaries is the count of the encoded characters in the relevant encoding, typically 128 or 256 for TEX encodings, and anywhere from 215 (ANSI) to 400-1700 entries for Windows Unicode fonts.
Encoding (Release 4.0M and prior only) An array giving character names for code numbers. The length of this array gives the encoding size, which is CHARS_IN_FONT, typically 256 or 128. (This table now obsoleted by CharCodes and CharNames.
These tables were upgraded beginning with release 4.0N. Also upgraded were complete search, sort, and hash internals for dictionaries and encoding tables, which make the composition interpreter run much faster.
Furthermore, the input font dictionary also contains:
TeX_Metrics Dictionary yielding for each character name an array:
[ width TFM width of character (integer)
height Likewise height
depth Likewise depth
ic Likewise italic correction
llx Lower-left X of
glyph bounding box (integer)
lly Likewise Y
urx Upper-right X of
glyph bounding box
ury Likewise Y
]
ItalicAngle Angle in degrees counter-clockwise of italic slant (float)

32  COMMDLG.DLL Required

TRUETEX requires that you have the Windows library COMMDLG.DLL installed in your Windows system directory. This has become so common that you almost certainly already have it. If you get a message that Windows cannot locate COMMDLG when running a TRUETEX program, you should install it using the original Microsoft Windows Setup disks.

33  Win32s

Win32s is a Microsoft add-on for Windows 3.1 that allows 32-bit Windows programs like the TRUETEX formatter to run on the 16-bit Windows 3.1 system.
You do not use Win32s on Windows 95 or Windows NT, since these systems have a native ability to run 32-bit programs. In that case, select [Cancel] if the TRUETEX Setup program warns you that Win32s is not installed.
Many users experience problems running Microsoft Win32s with Windows 3.1. If you suspect you are having troubles with Win32s, perhaps because the TRUETEX formatter won't run or runs poorly, you should try running the FreeCell 32-bit program (a game, actually) installed by Microsoft Win32s Setup. If you chose not to install FreeCell during Win32s Setup, you can run that Setup again to do so. FreeCell is not a demanding program like the TRUETEX formatter, but it will test the basic integrity of running 32-bit applications via Win32s on your system.
As a last resort when Win32s won't work, TRUETEX contains a DOS-extended version of TEX, INITEX3X.EXE, in directory \truetex\bin, where TRUETEX Setup also installed the Windows version (INITEX32.EXE) and the rest of the TRUETEX Windows executable programs. You can use this DOS version as a replacement for the Windows version of the formatter, and thereby eliminate entirely the need for Win32s to run TRUETEX, although you will be using a command-line TEX under DOS instead of the windowed style. INITEX3X uses the same capacities and configuration information as the Windows version, so it should work transparently as a replacement.
Note that if you only have the notorious GROWSTUB error trying to run Win32s programs, there is an easy fix described in the TRUETEX User's Guide, indexed there under GROWSTUB.
You can create a batch file to conveniently run the DOS formatter with preloaded macros. For example, you might make a batch file LATEX.BAT somewhere in the PATH containing:
c:\truetex\bin\initex3x &latex %1 %2 %3 %4 %5
and then you can conveniently type "latex myfile" to run LATEX on your document myfile.tex. For the Windows NT console, which considers ampersands (&) as command separators, you should surround the ampersand argument with double quotes:
c:\truetex\bin\initex3x "&latex" %1 %2 %3 %4 %5
The double quotes will confuse DOS, so this only works where it is needed, namely the Windows NT console.
We recommend that you leave the executable files in their original directory (typically c:\truetex\bin) instead of moving them to another directory that might, say, be part of the DOS PATH. Since TRUETEX stores the TRUETEX.INI configuration file in the same directory as the executable file, if you move the INITEX3X.EXE file to another directory, you will have separated the configuration information from the DOS version and the Windows version. That is, you will end up with more than one TRUETEX.INI file, which the formatters and previewer each create in their own respective directories. The next section does, however, explain how you can modify where TRUETEX looks for the TRUETEX.INI file, should you wish to reorganize the program files.
The 32-bit code support of Windows 95 and Windows NT eliminates these Win32s difficulties.

34  Bugs Corrected

Releases 4.1, 4.1A, and 4.1B of the formatter contained a bug which prevented "deep" TEX runs (that is, runs using a lot of TEX memory) from working (certain TEX variables had been improperly translated from Pascal to C, causing them to overflow). Symptoms included bizarre TEX errors or the formatter application hanging. Release 4.1C corrects the problem.
The setup.exe program could possibly be unable to copy items to the target file system, due to an incomplete set of parameters to the file open function of the C run-time library. This bug never manifested with anything but setup32.exe and then on only one reported occasion. Release 4.1B corrects the problem.
The addition of code to the formatter for recursive directory searching caused the reporting of file names on the terminal window and log file to be omitted. Release 4.1 corrects the problem.
Due to an undocumented Microsoft change in Windows NT and Windows 95 PostScript printing (see MS Knowledge Base item Q124135), the WIN32 previewer would not consider PostScript printers to be capable of using EPS graphics, and would always send them preview bit-maps (if available) instead. Release 4.1 corrects the problem.
Occasionally when printing from the DVIGDI32.EXE previewer's print dialog in Windows 95, the result would be no output at all, and possibly an error message that StartDoc returned an error. This was due to a Windows 95 incompatibility described in the Microsoft Knowledge Base item Q135119. The problem does not occur in any other version of Windows or with the 16-bit previewer (DVIGDI16.EXE). Release 4.0S corrects the problem.
TRUETEX would occasionally cancel an in-progress metric export. Release 4.0N corrects the problem.
Release 4.0L corrects an error in liquidation calls that resulted in TRUETEX passing a NULL value for hWnd to '134special handlers. The handle value is now that of the TRUETEX MDI frame window, as stated in the special() documentation. Thus the parameter hWnd should always give a valid TRUETEX MDI-frame-window or document-window handle, suitable for message-passing.
Release 4.0L corrected a problem which caused an application error when a font substitution file in the preference item could not be found.
Release 4.0J corrects a problem where the scroll buttons in the 32-bit previewer would not position properly.
Due to handle leakage, recursive file opens would no longer work after about 65 recursively located files were opened. Release 4.0K corrects the problem.

35  TrueTEX Release Summary

The following tables summarize the TRUETEX releases and their purposes, beginning with the most recent.
TRUETEX 4.5 Release History
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.5P May XX 2004 Postscript (Type 1) fonts now enumerated into font dictionary and given TEX external names based on registry filename values (Windows XP only).
4.5N Oct 1 2003Text menu item "Table of Fonts Installed" replaced by "Font Substitution Rules".
Prefixes "hex:" and "utf-8:" added to .ini syntax.
Added to distribution: fontenum.exe command-line tool to list fonts which Windows enumerates. Also, russian.ini, which gives an example of mapping TeX external names to non-ASCII Windows font full names.
Corrected: Construction of font dictionary: The font dictionary now selects the first font Windows enumerates for a given full name, when Windows reports multiple national-language scripts as being ANSI-encoded (even though not ANSI). This should select the true ANSI-encoded font.
Corrected: Program termination when reconstituted fonts enlarged font dictionary across a multiple of 256 entries. Only occured when font reconstitution was turned on in Preferences+Expert+Font Reconstitution.
4.5M 18 July 2003Expands limits to number of lines in console windows. Corrects ariali and arialbi fonts in WinFonts.map, which had been swapped in PDF output.
4.5K 02 July 2003Adds support for the Euro currency symbol via the LATEX eurosym.sty package, including 6 new TrueType fonts named fey[bm][lor]10. This style, and Times math, are also now supported by pdflatex. Adds file WinFonts.map to pdftex/config, linking Windows system fonts for times.sty PDF output.
4.5J 09 May 2003The encodings of the following cmap 3.0 (symbol) fonts are altered slightly to ensure compatibility across all Windows varieties: cmex{7,8,9}, cmmi{5,6,7,8,9,10,12}, cmmib{5,6,7,8,9}, cmmr10, ms{a,b}m{5,6,7,8,9}. Certain characters in these fonts would not render, or would be mis-mapped, in the previewer or in PDF output, especially in Windows XP.
Fonts lcircle10 and lcirclew10 are now correctly linked to pdftex, which previously could not find them due to a lingering effect of the ancient DOS 8+3 naming problem affecting the files associated with these fonts (being the two fonts in standard TEX having names longer than 8 characters).
TrueType versions of the AMS fonts scaled sizes ms{a,b}m{5,6,7,8,9} of fonts ms{a,b}m10 are provided in diretory TrueTeX/fonts/truetype. This permits their use with pdftex. However, file amssubs.ini still maps these fonts to scaled sizes of ms{a,b}m10 in the TRUETEX previewer. This avoids the TRUETEX installer having to install the 10 new fonts as Windows fonts, which would add to the system footprint.
A PDF LATEX multilingual format file is now provided, pdflatex_ml.fmt. Console templates for multilingual LATEX with PDF output are also now supported. The templates are named LaTeX-PDG, LaTeX-LM-PDG, and LaTeX-LBLM-PDG, analogous to LaTeX-PDF, LaTeX-LM-PDF, and LaTeX-LBLM-PDF described below.
Standard LATEX packages for color (\usepackage{color}) and graphics (\usepackage{graphics}) now self-configure for TRUETEX previewer '134special's or PDF output '134special's as appropriate, depending on whether pdflatex is running or not. You can override this automatic default with options [truetex] or [pdftex].
Distribution file special.zip now contains the source file spepsf.c.
The DC fonts are upgraded to support multilingual LATEX in both pdflatex (&pdflatex_ml format) and the previewer (&latex_ml format).
TRUETEX 4.5 Release History (continued)
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.5H 08 Feb 2003Added pdftex and pdflatex support, which generate PDF file output directly from TEX and LATEX documents using TrueType CM fonts; New standard templates for previewer -x launch include: LaTeX-PDF, LaTeX-LM-PDF, and LaTeX-LBLM-PDF, which are each analogous to the similarly named 1-, 2-, and 3-pass LATEX templates described below.
Added TrueType fonts cmmib{5,6,7,8,9} and cmex{7,8,9} for compatibility with amstex; file amssubs.ini updated accordingly. Added LATEslides fonts lcmss8, lcmssb8, and lcmssi8 to setup manifest fontreg.set, which had been inadvertently omitted. Altered exported font metrics to maintain compatibility with the restricted parsing in the reimplemented omegafonts 2.0 tools, e.g., ovp2ofm (all fixword values are reals, all hex values are uppercase); reversion to omegafonts 1.8 tools are still needed since the grammatically acceptable files still crash ovp2ofm 2.0.
4.5G 18 Jan 2002 Like 4.5D and 4.5E except the full CD is provided.
4.5E 18 Jan 2002 Like 4.5D except formats provided for both INITEX32.EXE and web2c formatters. This distribution is the format files only. See 4.5G for the full CD.
4.5D 18 Jan 2002 LATEX: preloaded format latex_ml.fmt is updated to have US, UK, French, and German hyphenation preloaded. (For web2c formatter only.) This distribution is the format file only. See 4.5G for the full CD.
4.5C 30 Oct 2001 Previewer: Accelerators [Ctrl]+/ and [Ctrl]+* now work on the home area of the keyboard; formerly these worked only on the numeric keypad. LATEX: PSNFSS pre-installed; the distribution files were present in 4.5B but not installed.
4.5B 24 Oct 2001 Incorporates LATEX 01 June 2001 official release. Utility makeindx.exe is replaced by later version makeindex.exe. Utility ovp2ofm.exe is added to support Omega font metric export.
4.5A 15 Sep 2001 The TrueType cmap 3.0 (symbol) encoding of the cmmi fonts is corrected from 0x20 to 0xf020 to maintain compatibility with Windows 2000 and XP. Incorporates LATEX 01 June 2001 pre-release. Spurious times.ovf (etc.) metrics removed from timesopt.dvi documentation directory. Decommissioned fax number removed from About dialog and readme.tex.
4.5 13 Sep 2001 Includes LATEX update (June 2001, still a pre-release consisting of base, graphics, tools, and cyrillic); previous LATEX tree in distribution CD directory Obsolete. Uninstall: read-only files (from BibTEX distribution) changed to read-write. Updates TEX Live 6 executables. Newly includes: Omega support files and release document; RevTEX4 BibTEX (bst) files. Previewer: no change from 4.4E other than marking as release 4.5. Changes to the cmmi fonts (noted in release 4.4 below) are not actually included until this release.
TRUETEX 4.4 Release History
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.4E 30 Aug 2001 Incorporates all changes to date.
4.4D 29 Aug 2001 Previewer: font encoding maps now selectable for 8-bit (TextOutA) or 16-bit (TextOutW) rendering. Any non-Ansi and non-Symbol fonts omitted from font dictionary, correcting an encoding problem seen in Windows 2000 when, for example, viewing timesopt.dvi on a system where Eastern Europe support was also installed. Note: internal release only.
4.4C 19 Jul 2001 Previewer: message displays from special handlers are more guarded. Handler specho truncation increased to 1024 characters. The font dictionary is now dynamic; previously it was limited to 1024 fonts. Accelerator [Ctrl]+0 corrected to select 1:1 zoom (was incorrectly fit-in-window).
4.4B 13 May 2001 TDS tree: Version 2.13 of amsmath, etc., after the amsltx2.zip distribution from ftp://ftp.ams.org current as of 5/11/2001. Added Babel multilingual hyphenation patterns. Previewer: TRUETEX.INI has corrected templates for web2c TEX console executables. Fixed process templates to allow them to be called without arguments. Lambda added to process templates. Fixed -i argument to not default back to module directory default. Added latex_ml.fmt format (preloads T1 encoding via DC fonts, and English/French/German hyphenation via Babel) for web2c TEX console executables. Clarification: multiple files may appear on the previewer command line; options apply only to subsequently named files.
4.4A 8 May 2001 Previewer: Clipboard handling updated to WIN32 GDI model (that is, the previewer places EMF metafiles instead of WMF metafiles on the clipboard when doing Edit+Copy).
4.4 3 May 2001 Previewer: New SPECHO32.DLL '134special handler to echo '134special texts for debugging. When in the list of handlers, this causes the previewer to display '134special texts in a message window whenever a page is rendered. Item LATEX_HELP in section [DVI-GDI] in TRUETEX.INI points to a Windows help file (.hlp) which is listed as "LaTeX Reference" on the Help menu. Fonts cmmi{5,6,7,8,9,10,12}.ttf are updated for the "new delta" style (this change was inadvertently omitted from the distribution until release 4.5 above). Distribution includes various console templates to invoke one or more passes of web2c LATEX, optionally with BibTEX and/or MakeIndex passes. Standard templates for use with -x include: LaTeX-L, LaTeX-LP, LaTeX-LBLP, LaTeX-LMLP, LaTeX-LBLMLP, View, BibTeX, MakeIndex, and Lambda. Multipass invocations are congolomerated by batch files in the executables directory. Substitute T for L, TP for LP, TBTP for LBLP, etc., in the above template names to invoke the multilingual LATEX latex_ml.fmt format instead of standard latex.fmt. TEX Live executables for web2c implementations of LATEX, BibTEX, and MakeIndex are incorporated into the distribution.
TRUETEX 4.3 Release History
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.3E 21 April 2001 Previewer: Window menu had lost child selection ability.
4.3D 13 April 2001 Previewer: Improvements to -x facility: Environment value PREVIEW causes automatic preview window after EXE process finishes (but only when a full-path -x argument is present). Absent EXE value omits the process, and goes directly to PREVIEW (if any). Should be used only for WIN32 console executables, not for 16-bit .EXE's. Environment value ARRANGE may be maximize, minimize, cascade, tilehorizontal, or tilevertical to control the arrangement of MDI children arising from -x processes.
4.3C 09 April 2001 Previewer: Improvements to -x facility. CWD for -x process is implied from the single argument, which must specify an absolute path, as must EXE; this is consistent with the formatter behavior.
4.3B 21 December 2000 Previewer: When font reconstitution is off, the previewer renders characters with 8-bit TextOutA() calls versus 16-bit TextOutW() call, depending on whether the 16-bit character codes have an upper byte of zero; this works around a strange Windows GDI bug that magically re-maps code 0xb7 to 0x2219 in TextOutW(), which goes back to a Microsoft kludge for Microsoft Word under Windows 3.1.
4.3A 05 June 2000 Previewer: Reconstituted fonts now have a unique id in their name tables, consisting of the product name ("TrueTeX") prefixed to the full name, for compliance with an undocumented requirement of Windows 2000. Miscellaneous: Added bin2text, text2bin, and *.tab files to the distribution to support the ttf_edit utility as described in ttf_edit.htm.
4.3 22 Mar 2000 Previewer: File+Export Metrics extended to allow user to choose the TEX external name, to export Omega .ovp, .ovf, and .ofm metric files, to convert Omega metrics with ovp2ofm, and to allow the user to optionally bypass the re-encoding in favor of 1:1 encoding of all characters in the font. Added Web link in Help menu. Window+Tile menu item expanded to Window+Tile Horizontally and Window+Tile Vertically.
TRUETEX 4.2 Release History
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.2F 2 Mar 00 Previewer: Signals -x completion to other processes via a named event. Handles [Ctrl+Break] interrupts in the format tab of console windows. Does not lock up closing a console window when the console executable is missing or otherwise fails to start. Console window titles now show the -x arg, not the expanded command line.
4.2E 29 Feb 00 Previewer: The restored size of an instance launched with command-line option "-d -1 -1 -1 -1" (maximized size) is now the Windows default size rather than a zero size. New "-x console-process" option to launch console processes. New "-1" option to force single-instance behavior. New "-z" option to close the application when the option is encountered; used after -w print requests or to shut down a single-instance mentor; may appear anywhere on the command line, but only takes effect after command line has been processed. Logic for printing from previewer command-lines has changed a bit: The -w (print from command-line) option is modified to apply only to .dvi files appearing subsequently on the command line (which presumably was the only way it was used);
4.2D 24 Feb 00 Previewer: Added console child windows for external console processes via "-x <command line>" option; these will evolve into document-centric tabbed project windows, the separate formatter will become obsolete, and the previewer will become the single TRUETEX application window. View menu item "Show DVI Info" changed to "Toggle DVI Info". Accelerator keys changed to avoid conflicts with typing text into console windows (printing characters changed to Ctrl+key, etc.). "About Author" photo updated to 12/1999.
4.2C 03 Feb 00 Macros: AM S-LATEX 2.0 updated to 2 Feb 2000. Includes LATEX version 1999/12/01.
4.2B 14 Jan 00 Setup: Windows 2000 run-time detection.
Previewer: Windows 2000 run-time detection. Font reconstitution toggle expert preference works correctly.
Macros: Unpacked Babel.
4.2A 16 Dec 99 Formatter: Moved old WIN16 previewer and DLL's to "obsolete" sub-directory.
Macros: includes AM S-LATEX 2.0. LATEX pre-loaded format and font definitions configured for "old DC" fonts.
TRUETEX 4.2 Release History-Continued
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.2 17 Nov 99 Previewer: Extensive reworking and simplification of how TEX external font names are mapped to Windows fonts. Windows fonts are now universally identified by their full names, not their face names and/or styles. The maximum number of characters per font which can be exported as metrics is increased from 2048 to 32768 (certain Asian fonts exceed the old limit). Page selection in the dialog now works correctly when first printing a page range and then printing all pages.
Font loading in the previewer: The previewer now accepts the Omega 1.5 .ofm (font metric level 0) files. It also recognizes, but does not accept, level 1 .ofm files. The older .xfm format is still supported, and TRUETEX tools and fonts are still supplied using that format. When loading font metrics, the previewer will first search for metric files ending in .ofm, then .xfm and finally .tfm. Likewise for virtual fonts, the previewer will search in the order .ovf, then .xvf, and finally .vf.
A bug preventing virtual font packets beyond the first 256 from working was fixed. There have been no such virtual fonts published until now, so this problem has not been apparent.
Belleek fonts: virtual font blmi (blmi.vf and blmi.xvf) is remapped to use higher Unicode codes instead of 0x0-0x20 and 0x7f. TrueType fonts blex.ttf, blsy.ttf, and rblmi.ttf are updated to reflect later standards and marked internally as version 1.1 of the fonts.
Macros: includes LATEX 1999/06/01
TRUETEX 4.1 Release History
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.1L 19 Feb 99 Reorganized the distribution medium for a single volume instead of a collection of floppies concatenated on a single volume. Added 9 Universal Modern fonts. Converted the Times option to be a regular part of the installation. Freshened LATEX distribution. Added all optional LATEX packages from CTAN to distribution (not all packages are unpacked, however, although all of AM S-LATEX, graphics, and the tools set are). Removed the old 16-bit Previewer from the distribution. Added the SliTEX fonts lcmss8, lcmssb8, and lcmssi8. TRUETEX.INI now includes the pattern lcm* as a TEX font name. Previewer: Added "Unknown encoding (8-bit)" to VPL export encodings, which provides a set of hexadecimal names for each character.
4.1K 06 Nov 98 Previewer: Improved missing font handling default preference to display a warning message, instead of showing blue characters; Windows forces certain font substitutions (such as the PostScript 35 names) that are not necessarily in error.
4.1J (Releases I and J were skipped.)
4.1H 29 Oct 97 Previewer: Fixed possibility of crash at start-up when font substitution strings taken from the Windows registry exceeded a total length of 8192 (about 400 or so typical font names).
4.1G 24 Sep 97 Latest versions of plain.tex, testfont.tex, epsf.{sty,tex}. WIN32 makeindx.exe from web2c version. Formatter: increased TEX capacities to "generous" AM S standards (Note: old .fmt formats will be incompatible and must be regenerated); increased maximum length for any one environment string to 1300 characters (5*MAX_PATH); fixed recursive file opening to not be inhibited by paths starting with WIN32 UNC's (same problem in previewer also fixed); fixed Other+Show-environment menu item to not crash for long environment strings. Previewer: corrected file opens to maximize windows if the active child is maximized, or if no active child exists; enlarged font-substitution capacity from 64 KB to 1024 KB; scroll buttons enhanced to scale to zoomed page size.
TRUETEX 4.1 Release History-Continued
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.1E 25 Aug 97 Corrected color-rendering in 24-bit BMP '134special's. Corrected previewer's slight possibility of crash when an unknown font appears in a document. Enhanced previewer's command-line parsing to understand double-quoted arguments. Converted setup.exe to use INFO-ZIP's UNZIP32.DLL instead of PKWARE's self-extracting ZIP archives; added 'u' action for setup manifests; added -q option for un-install quietness.
4.1D 17 Jul 97 Reconfigured installation disks to install all TRUETEX files in fully TDS-compliant directory tree. Added null.tex to the plain macros. Corrected setup.exe to treat blank lines in manifest as comments. Formatter no longer uses environmental paths to search for file names starting with the current directory ("./" or ".\"). Previewer unchanged from 4.1C. Installation program setup.exe upgraded, including an un-install icon in the program group; Windows 3.1 installation no longer supported.
4.1C 16 May 97 Corrected formatter problem which caused TEX errors, or which caused the application to hang, on "deep" TEX runs. Correct previewer problem where long, unknown command-line options could overflow an 80-character buffer. Converted SPTIFF32.DLL and SPEPSF32.DLL to use LIBTIFF.DLL for TIFF graphics, and added LIBTIFF.DLL to the distribution.
4.1B 7 Apr 97 Corrected default rule interior color to be black instead of white. Corrected setup32.exe to send mode parameter to C run-time file open function.
4.1A 27 Jan 97 Enhanced color '134special to affect rules as well as text.
4.1 22 Nov 96 Wide release; floppy distribution grows from three to four 1.44 MB disks. Executables recompiled with Microsoft Visual C++ 4.2. SimSoft Image Library hooked in SPTIFF32.DLL (but not provided in distribution). Corrected: EPS special handler now recognizes PostScript printers under WIN32; formatter no longer omits opened file names from terminal and log file output.
TRUETEX 4.0 Release History
TRUETEX Release Enhancements Embodied
and Date and Bugs Fixed
4.0T 24 Oct 96 Formatter: Any Windows command-line argument starting with `&' will be taken as a format file specification, and overrides any .INI file history, as is the case in the DOS-extended version (use forward slashes for file path separators). Added debugging messages for command-line options when verbose option (-v) is active (you can specify -v as the first option to see the effects of later options). Verbose option -v now toggles if you give it more than once on the command line (allowing you to turn it on while the formatter parses other options, and then turn it off before the previewer starts formatting). Navigating in the Format dialog no longer changes the current directory of any later File+Open dialog. Previewer: PSNFSS Times-text support; Times-styled math fonts. To mark an optional font substitution item (no message issued if not found), begin it with '?'. CRC's for version check of preference table are now (finally) equal between WIN16 and WIN32 previewers, eliminating false-alarms when switching between editions. Corrected unregistered TEX fonts not getting TEX remapping. Corrected kerns in exported TTF metrics being twice their correct values. TIFF '134special handler warns if subsidiary DLL's cannot be loaded (for example, sptiff16.dll). Setup: WIN16 vs. WIN32 discrimination. The utility ttf_edit.
4.0S 18 Oct 96 Non-starting Win95 printing corrected.
4.0R 9 Oct 96 Recursive virtual fonts.
4.0P Unicode virtual fonts; sparse font optimization.
4.0N Omega extensions and AFM metrics for virtual fonts; general .cod encoding selection; 8-bit subset fonts from Unicode fonts; extended support for ATM fonts. Corrected spurious cancelling of metric exports.
4.0M Windows registry for initialization; message windows.
4.0L Memory-mapped '134special texts; '134special-handler messages. Corrected liquidation calls to '134special-handlers. Corrected crash from missing .INI files.
4.0K Font encoding map displays. Corrected handle leakage limiting recursive file opens to 65.
4.0J Previewer: window sizing command-line options; long file names; DDE server. Formatter: stdio window class name to ProgramName, added support for WIN32 long file names. Corrected scroll button positioning in WIN32 previewer.
4.0H TDS-standard recursive directory searching.
4.0D Corrected .INI file handle leakage introduced in 4.0B.
4.0C Corrected preload dialog in the formatter.
4.0B Multiple .INI files; initial working directory; quiring; virtual fonts; TEX font names; '134special-handler sources; TEXWAKEUP; manifest-driven setup; network compatibility; virtual font composition engine; DC fonts.

36  Regarding Copyrights and Other Legal Matters

36.1   Copyright Notice

The principal authors of the project have made their works freely available, but have nevertheless asserted a copyright on LATEX as a means of controlling distribution and avoiding incompatibilities that troubled the old LATEX 2.09. Accordingly, we reproduce the following notice, which applies only to the LATEX macros, and not to TRUETEX itself:
This distribution [of LATEX macros] is Copyright 1993 1994 1995 1996 The LATEX3 Project and the individual authors: Leslie Lamport, Johannes Braams, David Carlisle, Alan Jeffrey, Frank Mittelbach, Chris Rowley, Rainer Schoepf.
TRUETEX provides the genuine LATEX, direct from the authors' distribution, free of any modifications or incompatibilities. The LATEX authors express a valid concern that their work not be published in a modified form, unless the modified files are given new names. This prevents the proliferation of non-standard versions that might be confused with the genuine LATEX autograph. Should you wish to modify any of the LATEX distribution files, you must take care to observe the authors' restrictions on doing so.
TRUETEX does not provide every file for every package and tool available with LATEX, which now totals over 100 megabytes. If you wish to complete the partial distribution provided with TRUETEX, you can copy it from the CTAN FTP archive described above, or if you are unable to do so, request a copy of the current full LATEX distribution from us.

36.2  TIFF Library Copyright Notice

The following notice applies only to the libtiff code, which constitutes a portion of LIBTIFF.DLL, and not to TRUETEX itself:
Copyright © 1988-1996 Sam Leffler
Copyright © 1991-1996 Silicon Graphics, Inc.
Permission to use, copy, modify, distribute, and sell this software [that is, the original libtiff code, which constitutes only a portion of the file LIBTIFF.DLL in TRUETEX] and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics.
THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

36.3  Info-Zip Disclaimer

The TRUETEX Setup program may incorporate UnZip code to uncompress zip archives from the distribution media. Info-ZIP's software (Zip, UnZip and related utilities) is free and can be obtained as source code or executables from various bulletin board services and Internet/WWW sites, including ftp://ftp.cdrom.com/pub/infozip.

37  Technical Support

You can reach TRUETEX technical support from 10 a.m. to 4:30 p.m. Eastern time:
Richard J. Kinch, Ph.D.
6994 Pebble Beach Ct
Lake Worth FL 33467
Tel (561) 966-8400
kinch@truetex.com
http://www.truetex.com
This document was formatted on Nov 25, 2009 .

Footnotes:

1Ooops, nearly all the characters. Unicode has no "polishlcross" component like Computer Modern, although it does contain the target character, "lslash"; and "dotlessj" is also not to be had.
2See the paper "DDE Execute Strings" on the Microsoft Developer Network CD.


File translated from TEX by TTH, version 3.86.
On 25 Nov 2009, 02:45.