TeXtrace -- converts TeX fonts into .pfb files by pts@fazekas.hu at Wed Apr 4 17:46:50 CEST 2001 -- Fri Apr 6 10:28:55 CEST 2001 -- Thu May 31 16:45:14 CEST 2001 TeXtrace is a collection of scripts for UNIX that convert any TeX font into a Type1 .pfb outline font immediately suitable for use with dvips, pdftex, acroread (and any many other programs). The main advantage of using Type1 fonts with TeX is that acroread renders TeX's bitmap fonts ugly on screen, but it renders outline fonts beutifully and fast. Note that gs (Aladdin Ghostscript) <=5.50 renders both pixel and vector fonts ugly on screen; and gv (new version of Ghostview) 3.5.8 renders both pixel and vector fonts acceptably on screen if State/Antialias is turned on; and both pixel and vector fonts look nice when printed. So you won't notice significant difference unless you use acroread (Acrobat Reader) to view the .pdf file or you use extremely small resolution (<=150 DPI) with pdftex and you zoom extremely (10.0) in gv. See examples/vdiffer.pdf in Acrobat Reader (acroread) and read FAQ answer 53 for the difference. FAQ ~~~ 1. I want to know everything about TeXtrace. What to do? """""""""""""""""""""""""""""""""""""""""""""""""""""""" Read this file first. Understand it. Then follow the links from this file. If something is still not clear (which is probable, because not everything is documented about TeXtrace), feel free to view the sources. 2. I don't need the techical stuff. I just want to convert fonts quickly. What to do? """""" 0. The converted fonts might already be available (from Jan 2002) (e.g the TeX EC fonts). Download them from CTAN, and stop. See FAQ answer 39 for more. 1. Follow the download and install instructions in this file. 2. Experiment with traceall.sh. 3. If something goes wrong, read all this file. 4. If the generated font is not satisfactory, read all this file. You'll probably need 3--4 hours of experimenting before you can convert your first font. After that, 11 minutes per font will be enough. (From that 11 minutes, you type the traceall.sh or tracemap.sh command in 30 seconds, and then just wait...) So it is very probable that you have to read this file. Please do it before giving up or contacting the author. (You will need the technical stuff anyway. Installing the .pfb files produced by TeXtrace requires good knowledge of your own TeX or other configuration.) 2b. I don't understand what's going on here, because this file is full of words and terms I've never heard of before. """"""""""""""""""""""""""""""""""""""""""" Read the section `Vocabulary' first in this file. 2c. What are TeXtrace's key features? """"""""""""""""""""""""""""""""""""" TeXtrace's main purpose is to convert _all_ possible TeX fonts into Type1 .pfb format so -- it will be possible to use _all_ TeX fonts (notably the high quality, fast-to-read CM and EC (formerly DC) fonts and all the AMS math fonts) in other environments than TeX -- .pdf files generated by pdftex (and pdflatex) will display fast and look beautiful in Acrobat Reader (acroread) -- .ps and .pdf files generated by dvips or pdftex (and pdflatex) will be scalable by extreme factors TeXtrace is able to this job correctly and in reasonable amount of time (see FAQ answer 2e. about limitations). .pfb files produced by TeXtrace are portable and are compatible with a wide variety of font handling programs, including pdftex. (See more in doc/type1fix.txt.) TeXtrace doesn't have any other `key features'. TeXtrace's intended users are professional and amateur typographers and TeX authors who are suffering from the `EC fonts are ugly and slow in acroread' and similar problems. The TeXtrace program is not required after the .pfb files are created. 2d. What are TeXtrace's alternatives? """"""""""""""""""""""""""""""""""""" 1. (The anti-hacker alternative.) Do not consider `EC fonts are ugly and slow in acroread' as a serious problem. Accept that the world is like this and you cannot change it -- be happy with the artificial limitations. 2. Do not use EC fonts. Use the CM fonts. The .pfb files for the CM fonts are available for a long time (from CTAN, and also in the teTeX distribution) thanks to the company BlueSky -- or Bakoma. (They used essentially the same idea to convert the .mf files to .pfb: render the font in high resoltion, and then trace it. The software they used is unknown to the author of TeXtrace.) Unfortunately, for non-English European languages, to have hyphenation etc., one needs the EC fonts (and the T1 encoding). 3. \usepackage{ae}, \usepackage{aecompl} or \usepackage{ze} in LaTeX. These simulate the EC fonts with the CM fonts using TeX .vf virtual fonts. Unfortunately font metrics are just approximations (so they are _completely_ _bad_ from the pedantic typographer's point of view), not all EC fonts and not all glyphs (notably: /guillemotleft, /guillemotright) are available. So you may have to re-design your whole publication to be ae- (or ze-) -compatible. The author of TeXtrace is not related to the authors mentioned below. -- The `zd' fonts by Constantin Kahn (kahn@math.uni-hannover.de) are virtual T1 encoded Computer Modern fonts based on (OT1) Computer Modern, Times, and Helvetica fonts, intended for simulate `dc' fonts. (Waine Sullivan's `dm' fonts are another approach to the substitution of `dc' fonts by virtual ones.) -- `Because `dc' fonts are now obsolete, I've adapted the Kahn's package to `ec' fonts. The resulting virtual fonts are named according to the ec fonts names, changing `ec' by `ze' (zerm1000.vf simulates ecrm1000, and so on).' [The `ze' fonts (virtual T1 fonts) by Robert Fuster (rfuster\@ mat.upv.es), June 24, 1997] -- Version 0.9 of the AE fonts: [/Lars Engebretsen, , 1997-11-19.] This is a set of virtual fonts building, from the standard CM fonts, a set of almost T1 encoded fonts. The characters missing are mainly: eth, thorn, and the sami letter eng. Sometimes the £ character is also missing. For the typewriter fonts, the situation is worse. My thanks go to Rolf Niepraschk, who contributed ae.sty and helped me track down some bugs, and Jonas Bofjäll, who pointed out a serious error in a previous version of the fonts. 4. Use the .pfb files for the EC fonts _already_ converted by TeXtrace. They might be available from CTAN or http://www.freshmeat.net. At the time of writing this README, they aren't. See FAQ answer 39 for more. 5. Maybe there are some alternatives that I don't know about. Please let me know (). 2e. What are TeXtrace's drawbacks and limitations? """""""""""""""""""""""""""""""""""""""""""""""""" -- autotrace, the vector tracing engine used, is buggy: it cannot trace some glyphs (the author of autotrace knows about the bugs, but hasn't corrected them so far). These glyphs will be blanks (fully white) with their correct width in the generated .pfb files. The density of untracable glyphs is around 0.12\%. However, if you use the modified autotrace shipped with TeXtrace, this ratio drops to 0% (tested with 98304 glyphs in 384 fonts -- 0.12% was bad with the original autotrace, none of them was bad with the modified autotrace). -- TeXtrace is quite slow (see FAQ answer 26). -- You have to clean up some temporary files created by TeXtrace (see FAQ answer 11b). This is no longer a serious issue, you can quickly clean up all the temporary space in 10 seconds. -- .pfb files created by TeXtrace are around 3.15 times larger than the optimum (see FAQ answer 28 and 56b). -- TeXtrace isn't plug&play. You must experience with it for a couple of hours before you can start it to convert your 1st font. -- For non-TeX-hackers, it may be hard to figure out that exactly what went wrong if an error occurs. (In some cases, it is difficult even for TeX hackers... Some TeX fonts created with MetaFont aren't robust enough -- they appear to work for 300 DPI or 600 DPI, but not for much more.) 3. How can I contact the author? """""""""""""""""""""""""""""""" 1. Please read and understand this file first. 2. Please experiment with the program first. 3. Please write to the TeXtrace mailing list first. 4. If all the above fails, e-mail to with subject staring with '[TeXtrace] '. 4. How can I get the latest version? """""""""""""""""""""""""""""""""""" Download http://www.inf.bme.hu/~pts/textrace-latest.tar.gz. There is also a simplistic homepage http://www.inf.bme.hu/~pts/textrace/ 5. What's the current version of TeXtrace? """""""""""""""""""""""""""""""""""""""""" See in the beginning of traceall.sh 5b. What's new in the current version of TeXtrace? """""""""""""""""""""""""""""""""""""""""""""""""" See `ChangeLog' later in this document. 6. What's the license of TeXtrace? """""""""""""""""""""""""""""""""" GNU GPL >=v2.0. 7. What platform does TeXtrace run on? """""""""""""""""""""""""""""""""""""" You'll need a UNIX system (Linux, FreeBSD and Solaris should work OK). It _might_ be possible in Win32 with Cygwin and MikTeX, but it's unsupported. The author never tried it and doesn't plan to try it.) A successive run is: a successive compilation for the bundled textrace-0.27ap, and a binary-successive run of traceall.sh Successive runs (version 0.42) happened on: (at Wed May 30 17:30:24 CEST 2001) -- Debian Slink (very old!) Linux i686 glibc2.0.7 old teTeX from 1998 pdfTeX, Version 3.14159-12 -- Debian Woody (newest) Linux i686 glibc2.4.3 tetex-bin 1.0.7+20001218 tetex-base 1.0.2+20000804 pdftex pdfTeX, Version 3.14159-14f-released-20000525 (Web2C 7.3.1) -- sparc SUNW,Ultra-2 SunOS 2.5.7 teTeX 2000.02.12 pdfTeX, Version 3.14159-13d (Web2C 7.3.1) 7a. Does TeXtrace work on Windows? """""""""""""""""""""""""""""""""" No. Currently none of the Windows platforms is supported by TeXtrace. If you know how to make it work on Windows, please do it and e-mail your achievements to the author. However, the .pfb files created by TeXtrace should work on TeX running on Win32 without modifications. If they don't, it is a bug. 8a. What is the quickest way to try/run TeXtrace? """"""""""""""""""""""""""""""""""""""""""""""""" tar xzvf textrace-?.??.tar.gz cd textrace-?.?? bash compile_autotrace.sh bash compile_rleman.sh # optional bash traceall.sh ecti1000 gcti1000.pfb 444444 8b. What programs do I need before installing TeXtrace? """"""""""""""""""""""""""""""""""""""""""""""""""""""" 1. Perl >=5.004 installed, >=5.6 is also OK. 2. the UNIX teTeX distribution (0.9.981113 or later) installed, with utilities `tex', `mf', `mktextfm', `mktexpk' and `dvips' properly working 3. GNU Bash >=2.0 installed (not any other similar shell!!) 4. Aladdin (Artiflex?) GhostScript >=5.50 installed (start search from http://www.freshmeat.net/) 5. AutoTrace for UNIX installed A special version of AutoTrace is shipped with TeXtrace. You are advised to use this version, and not any other version you have obtained (either as part of your Linux distribution, or downloaded from the net). This version is special, because it is patched to support the `.bps' output format. This output format (invented by the author of TeXtrace) helps to overcome some bugs in the tracer of autotrace. If you use any other version than the one shipped, there will be a 0.12% chance for each glyph that autotrace fails (and the glyph will be totally blank in the .pfb file). With the shipped version, this chance is 0%. AutoTrace is written in C, so you'll need an ANSI C compiler (preferably GCC) to compile it. Only the resulting binary (the executable file named `autotrace') will be needed by TeXtrace. To use the shipped AutoTrace, just run `bash compile_autotrace.sh'. After this succeeds, you can use traceall.sh immediately (see FAQ answer 8a), without altering your $PATH. No external libraries (such as zlib, libpng, libming, libmagick etc.) are required to comile the shipped AutoTrace. To use your own version of AutoTrace instead of the shipped one, read on. You'll need autotrace version >=0.27a, because the previous versions have serious bugs. Get AutoTrace from http://homepages.go.com/~martweb/AutoTrace.htm (went down in May 2001) or http://sourceforge.net/projects/autotrace/ or http://autotrace.sourceforge.net/ or start search from http://www.freshmeat.net/) Unfortunately AutoTrace was temporarily unavailable on the net in May 2001. You'll have to modify your $PATH so when you type `autotrace', the correct version of autotrace should get started. Use `type -p autotrace' to verify this. To check whether you have the shipped version, type the line below (it should print a line): autotrace -list-output-formats 2>&1 | grep '^ *bps' 6. fileutils installed (cp, rm, mv, cat, chmod, date) 9. How to install TeXtrace? """"""""""""""""""""""""""" You can't. You must run it from `source': TeXtrace runs from only its source directory. This is generally not a pain, because you usually use TeXtrace only a couple of times a year, so you are not advised to install it anyway. Maybe someone will write an installable version later... 9a. What should I change in my TeX installation before using TeXtrace? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Nothing. You don't have to change even your default DPI settings. 9b. Do I need special (i.e root) privileges to install TeXtrace? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" No. You can use TeXtrace even from your $HOME directory or /tmp. See also FAQ answer 9. 9c. Do I need special (i.e root) privileges to run TeXtrace? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""" No. You can use TeXtrace even from your $HOME directory or /tmp. 9b. What command should I run? """""""""""""""""""""""""""""" There's no single `TeXtrace' or `textrace' program, but TeXtrace consists of several utilities. The most common utility is traceall.sh which converts one single TeX font to a .pfb file. See FAQ answer 8a for very quick instructions and FAQ answers 10 and 11 for detailed instructions. Read on to figure out which utility you need. You may also examine the beginning of the utility file for comments. There are a couple of useful utilities in the contrib/ directory. Try them! 10. How to run TeXtrace for a single font? """""""""""""""""""""""""""""""""""""""""" 1. Make sure that the correctly working versions of the following programs are on your $PATH: cp rm mv cat bash perl tex dvips gs (autotrace) date. traceall.sh will complain and refuse to run if some of them is missing. 2. Make sure that the TeX fonts you want to convert are installed and working in TeX. traceall.sh will complain if it doesn't, but if you don't trust traceall.sh, you can test the font yourself: you'll need the name of the font (the name before the .tfm extension -- but the .tfm file may not exist until the first time you request the font :-(). Try it with: tex '\font\f=cmr10\f Test text' && dvips texput.dvi tex and dvips should run fine and not complain about missing fonts. 3. Extract the TeXtrace .tar.gz. Run `bash compile_autotrace.sh'. See FAQ answer 8b for more details. 3b. Optially, run `bash compile_rleman.sh'. If it compiles successfully, you'll get somewhat faster execution speed for traceall.sh (it will be 1--2 minutes faster on a Celeron 333Mhz). If it doesn't compile, never mind. 4. Cd to the TeXtrace directory in which traceall.sh resides. 5. Make sure you have 20Mb of free disk space in the current directory. Note that you'll need additional space in your teTeX .pk and .tfm install directory (presumably /var/spool/texmf/pk and /var/spool/texmf/tfm, containing lots of .pk and .tfm files, respectively). See FAQ answer 11b. for more details. 6. Run `bash traceall.sh' with the appropriate arguments. E.g bash traceall.sh ecti0900 my_ecti0900.pfb 4321012 bash traceall.sh ecrm10 my_ecrm10.pfb 4321013 bash traceall.sh bbold8 my_bbold8.pfb 4321014 bash traceall.sh ptmr8t my_ptmr8t.pfb 4321015 7. The desired .pfb file is generated in the current directory. Temporary disk space is used, but execution time is limited by mostly your CPU speed: generation takes around 11 minutes on an Intel Celeron 300 with 128 Mb of RAM. 8. Run `bash clean_tmp.sh' to free around 20Mb of disk space. See FAQ answer 11b for more details. 9. Move (install) the generated .pfb file to its final location. If you plan to use this file with TeX, you'll need a psfonts.map in the appropriate place. See teTeX's fntguide.dvi and DVIPS's .dvi documentation for details. 11. How to run TeXtrace for multiple fonts? """"""""""""""""""""""""""""""""""""""""""" 1. Understand FAQ answer 10. 2. Create a .map file similar to ecpfb.map shipped with TeXtrace. The .map file format is described in the docs of DVIPS. The .map files are used by `dvips' and `pdftex'. 3. You need 20Mb of temporary free disk space, plus around 100kb for each .pfb file you want to be generated. See FAQ answer 11b for more detail. 4. In the TeXtrace dir, run `bash tracemap.sh MY_MAP.map .'. You should run this command with `nice' or `renice' with a low (19) priority. 5. Wait (go to sleep/work, etc.) for days, weeks etc. 6. Examine *.log for failures. Run traceall.sh manually for the failures. See FAQ answer 33c about diagnostics and bug reports. 7. Use `%vvv UniqueID 4444111' notation in the .map files to specify the UniqueID of the next PFB font mentioned in the .map file. If you don't specify UniqueID, you'll get 1 plus the previous one. 8. The PostScript FontName (TeX-*) must be `TeX-' appended to the TeX font name, specified at the very beginning of the line. The .map file is read at tracemap.sh startup. 11b. How many disk space do I need to run TeXtrace? """"""""""""""""""""""""""""""""""""""""""""""""""" Use `df' to display free spaces. Select the line corresponding the current directory. Note that TeXtrace doesn't check for free disk space before starting operation. (So if you run out of disk space while running TeXtrace, the result is undefined (!). You have to summarize it yourself: -- You'll need 20Mb of temporary free disk space in TeXtrace's directory (where traceall.sh resides). Note that 12Mb will be enough most of the time, and the largest requirement the author ever experienced was 14Mb. -- You'll need approximately 86kb in TeXtrace's directory for each .pfb file you want to be generated. A typical .pfb file generated by TeXtrace is between 55kb and 110kb in size. (This is around 3.15 times larger than a typical .pfb file _not_ generated by TeXtrace, see FAQ answers 28 and 56b for more details.) A smaller or larger file size indicates that something is wrong with either TeXtrace or the TeX font you tried to convert. Please run TeXtrace manually and peek for error messages. (To redirect errors to a file, please modify the `>/dev/tty' strings in traceall.sh.)) -- traceall.sh runs `tex' which runs `mktextfm' which creates .tfm files in some system directory (/var/spool/texmf/tfm/ on Debian Linux systems with teTeX). A typical .tfm file is smaller than 4k, and exactly one .tfm file is generated for each font (ecrm1000 and ecrm1440 are two different fonts!). You have to locate and remove and remove these files yourself. (It would be too hard to be detected and removed by traceall.sh, because these files are generated _indirectly_: traceall.sh doesn't even know the filename, and it doesn't open any of these files directly.) -- traceall.sh runs `dvips' which runs `mktexpk' which creates .pk files in some system directory (/var/spool/texmf/tfm/ on Debian Linux systems with teTeX). A typical .pk file is smaller than 100k, but sice TeXtrace renders fonts in high resolutions, a typical .pk file generated while running TeXtrace is between 300kb and 900kb in length, for each font (ecrm1000 and ecrm1440 are two different fonts!). You have to locate and remove and remove these files yourself. (It would be too hard to be detected and removed by traceall.sh, because these files are generated _indirectly_: traceall.sh doesn't even know the filename, and it doesn't open any of these files directly.) -- traceall.sh generates a fail*.pbm file in its directory for each glyph which caused autotrace to fail. A typical fail*.pbm file is 800kb in length. Thes .pbm files can be compressed to 5kb (!) with gzip. You are advised to submit the .pbm.gz files to the author of autotrace as a bug report, so he can improve autotrace. -- A small amount of disk space (<30kb) is occupied by mapfail.log, which is generated by tracemap.sh: it puts an entry to the log file for each glyph autotrace failed on. TeXtrace leaves temporary files in the directory tmp/ after completion. These files can be removed by invoking `bash clean_tmp.sh'. Also have a look at `clean_pk.log', and remove the .pk files generated by mktexpk run by dvips run by traceall.sh. 11c. How can I know that the generated .pfb file is correct? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Completely wrong answer: Trust the author of TeXtrace :-). Good answer: load it in your favourite font editor (see FAQ answer 56) and examine it. (If you're a lucky owner of a good font editor, you should simplify the curves to reduce the file size, and generate hinting information for better rendering in small resolutions -- but don't do it prematurely: bad hinting is worse then no hinting.) On a UNIX system with gs (and possibly gv) installed, for a quick font preview, try contrib/gvfont.pl shipped with TeXtrace. traceall.sh checks each .pfb file it creates: checking is done by loading the font with gs and rendering each glyph in memory. If this fails, an error message is displayed. So the .pfb file is very _unlikely_ to have syntax errors and alike. If you experience such problems, please verify that you've the _exact_ binary copy of the .pfb file traceall.sh has created. 12. TeXtrace failed to create the .pfb file. What to do? """""""""""""""""""""""""""""""""""""""""""""""""""""""" You may work around the error yourself or you may contact the author of TeXtrace. When contacting the author, please send all the files in the TeXtrace dir that caused autotrace to fail (if any). The most common causes for the error: 1. Bad configuration. Your $PATH may be bad, or you don't have the required utilities properly installed. This may be solved by modifying 1--2 lines in the appropriate configuration file. But finding the appropriate place requires good knowledge of your UNIX system, and is very unprobable that the author of TeXtrace can solve it remotely. 2. You don't have enough temporary free disk space. It is advisable that you have 20Mb of free disk space. See FAQ answer 11b for more detail. Use `df' to display free spaces. Select the line corresponding the current directory. Note that TeXtrace doesn't check for free disk space before starting operation. 3. autotrace fails for a glyph, or it goes to an endless loop. This is possible in versions <=0.27. Please send the tmp_char.pbm file with the exact autotrace command line (displayed as `> autotrace ...') to the author of autotrace (see `autotrace -help'), and maybe he can correct the bug. The most common autotrace error is `fatal: zero determinant of C0*C1.'. Ignore this error if traceall.sh goes on with the next glyph. Report the error only if traceall.sh aborts. See FAQ answer This isn't a TeXtrace error. The author of TeXtrace cannot fix it. Write to the author of autotrace to get it fixed. 4. You haven't specified the TeX font name properly. For example, the `European Computer Modern Bold Extended Roman' font must be specified as: ecbx0500, ecbx0600, ecbx0700, ecbx0800, ecbx0900, ecbx1000, ecbx1095, ecbx1200, ecbx1440, ecbx1728, ecbx2074, ecbx2488, ecbx2986 or ecbx3583 -- not bf, ecbf, bx, exbx etc. On the outher hand, the `Computer Modern Text Italic' font must be specified as: cmti7, cmti8, cmti9, cmti10 or cmti12 -- not it, ecit, cmit, sl, ecsl, cmsl, cmti0700 etc. Basicly you should look for '.tfm' files, strip the '.tfm' extension, and try the filename as a font name. If you don't have the '.tfm' file, look for '.mf' files, with numbers in their name. There are two mayor numbering conventions (design size based on 10 and 1000), see above. If you're still in doubt, look at LaTeX's .fd files, and try names after `>' signs, and after `gen' and `genb'. (Unfortunately some Russian font such as lacc1000.pfb have neither .tfm nor .mf file by default -- see the shell script mktexmf in the teTeX distribution for more info.) 5. You don't have the font properly installed so that TeX and DVIPS can see it. You may have to install additional TeX font packages for your (Linux) distribution, or modify dvips's psfonts.map file. You should already know how to install a TeX font, it is not described here (see teTeX's fntguide.dvi and DVIPS's .dvi documentation). After MYFONT got installed, run: tex '\font\f=MYFONT at 100pt\f Test text' && dvips texput.dvi and view texput.ps with gv and gs. 6. There might be a bug or misfeature in TeXtrace. Please find it, try to correct it, and e-mail the result of your examinations to the author. 12b. How does TeXtrace work? """""""""""""""""""""""""""" traceall.sh will be explained. Basicly it renders the font in high resolution (approximately 1000 x 1000 pixels for each glyph), and then converts this raster to vector outline. Details: TeX font source (.mf) OR TeX Type1 font (.pfb) OR TeX TTF font (.ttf) | | mf (Metafont) | OR gsftopk | OR ttf2pk | TeX raster font (.gf, .pk) | | tex | .dvi file, containing only the fontname | | dvips | .ps file, containing the character rasters of the .pk font in Type3 format | | gs -sDEVICE=pbmraw -sOutputFile=- | .pbm files (on STDOUT!), each of them contains one character raster | | rleman.pl | .pbm files (one at a time: tmp_char.pbm) | | autotrace | .eps files, each of them contains one character outline in vectorized format | | gs trace1.ps | .t1d file, containing the Type1 instructions for the outlines in human-readable form | | t1d2gsx.pl | .gsx file, intermediate format, which is almost a Type1 font | | type1fix.pl | .pfb file, a fully conformant, compatible Type1 font file, which can be used with gs, dvips, pdftex, acrodist, ATM (if one generates the .pfm file), Fontographer, Fontlab, xfs (X11 font server), thanks to type1fix.pl. 13. How can I use the generated .pfb font file with ATM? """""""""""""""""""""""""""""""""""""""""""""""""""""""" Basicly you'll have to generate a .pfm file, and then load that .pfm file in ATM. Details: 1. Obtain the afm2pfm distribution from the net. (It was last modified by Christoph Lameter, March 23, 1995 clameter@waterf.org.) It is also included in the TeXtrace distribution. Read its README about its serious limitations (the version shipped with TeXtrace). 2. Run `perl contrib/tfm2kpx.pl FONTNAME' to create the .kpx file. 3. Run `bash contrib/t12afm.sh PFBNAME.pfb FONTNAME.kpx' (shipped with TeXtrace) to create an .afm file from the .pfb file. Or, alternatively, examine and run the pf2afm.ps or printafm.ps shipped with Ghostscript >=5.50. A clue about their location: run gs -dNODISPLAY -c 'LIBPATH === quit' All these methods output the correct AFM file with `C', `WX', `N' and `B' entries, but -- of course -- no kerning, ligature and composite character information. (t12afm.sh is better because the .kpx file contains herning informathon.) 4. If you're unhappy with the encoding vector of the .pfb file (e.g accented characters appear in the wrong place etc.), use type1fix.pl to extract the /Encoding from the .pfb file (to an .enc file), edit the encoding, and put it back to the .pfb with type1fix.pl. (type1fix.pl is shipped with TeXtrace). Commands: perl -x type1fix.pl FONT.pfb gsf: ignored.gsf --outencfile COPY.enc vi FONT.enc # or use any other text editor perl -x type1fix.pl FONT.pfb pfb: COPY2.pfb --inencfile COPY.enc rm FONT.pfb # to reduce confusion Or, if you have an AFM with the correct encoding, and a PFB file with an incorrect encoding, you can extract .enc from the AFM file with the afm2enc.pl utility shipped with TeXtrace: perl -x contrib/afm2enc.pl COPY.enc If you don't like type1fix.pl, you may try to edit the .pfb file by hand. Note that if you change the length of the file near /Encoding, you must modify bytes 3,4,5 and 6 which represent the length of the 1st portion of the .pfb file. This is quite error-prone, so please use type1fix.pl. You must also swap the characters in the previously generated .afm file. Use contrib/afmreenc.pl to do this automatically: perl -x contrib/afmreenc.pl FONT.afm COPY.afm COPY.enc rm FONT.afm # to reduce confusion 5. The /space (32) character of the .pfb file is very probably wrong (contains a visible space). You may have to run perl -x type1fix.pl --clear-glyph=/space COPY2.pfb pfb: COPY3.pfb 6. Run `afm2pfm AFMNAME.afm PFMNAME.pfm' to create the .pfm file. 7. Copy the .pfm and .pfb files to the machine you run ATM on. (For Macintosh, you may have to convert them, but I don't know how.) 8. In ATM (atmfm.exe), choose `add new fonts' (or similar), locate the .pfm file, view the sample screen, and add the font. 9. If you discover that you're unhappy with the encoding vector, re-start from step 1. 14. How can I create a .pfm file for the generated .pfb file? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" See FAQ answer 13. 15. How can I create an .afm file for the generated .pfb file? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" See FAQ answer 13. 16. How can I convert a PFB file to a PFA file? (How can I create a .pfa file from the generated .pfb file?) """""""""""""""""""""""""""""" For the most safety, use type1fix.pl shipped with TeXtrace: perl -x type1fix.pl PFBNAME.pfb pfa: PFANAME.pfa If you suspect that type1fix.pl misunderstands your PFB file, use perl -x contrib/pfb2pfa.pl PFANAME.pfa , or, equivalently and much faster, use teTeX's `pfb2pfa' utility: perl -x contrib/pfb2pfa.pl PFBNAME.pfb PFANAME.pfa 16b. How can I convert a PFA file to a PFB file? """""""""""""""""""""""""""""""""""""""""""""""" For the most safety, use type1fix.pl shipped with TeXtrace: perl -x type1fix.pl PFANAME.pfa pfb: PFBNAME.pfb If you suspect that type1fix.pl misunderstands your PFA file, try perl -x contrib/pfa2pfb.pl PFBNAME.pfb 17. What is that type1fix.pl shipped with TeXtrace? """"""""""""""""""""""""""""""""""""""""""""""""""" type1fix.pl is a Perl script that converts and fixes various glitches in PostScript Type1 fonts (PFA/PFB/GSF). It reads and writes PFA, PFB and GSF formats. It's compatible with Fontgrapher, Fontlab, ATM, dvips, latex, pdflatex, acrodist, acroread and X11. GSF output is human-readable, editable, post-processable and re-convertable. PFB output is usable with ATM and other quirky font renderers even if the original font wasn't. The most common use of type1fix.pl is that you draw/edit your font in Fontographer or Fontlab, export the PFB, PFM _and_ AFM files, run type1fix.pl on the PFB file, and install the new font with ATM Deluxe's atmfm.exe. Without type1fix.pl you probably wouldn't be able to use the font in ATM, because there are quirks in both Fontographer and ATM. type1fix.pl fixes font files to avoid these quirks. See doc/type1fix.txt for more documentation. 18. How can I use the generated .pfb file with TeX and DVIPS? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" See FAQ answer 11 for .map files first. You have to insert a line describing your .pfb file into a .map file which dvips reads. dvips reads psfonts.map (either in the current directory or its appropriate TeX directory), plus the .map files you specify in config.ps or $HOME/.dvipsrc with p +MY_MAP.map When running dvips, it should print the name of your .pfb file between '<' and '>'. If you want it, you may install your .pfb file (as root!) into a directory like /usr/lib/texmf/fonts/type1/WHATEVER/FILE.pfb . Don't forget to run `mktexlsr' after that. If you want to try your font quickly without any config file modification, do: echo 'MYFONT TeX-MYFONT MY_MAP.map echo 'p +MY_MAP.map' >.dvipsrc env HOME=. dvips ... 18b. I've used (la)tex, dvips and ps2pdf with my brand new, beautiful .pfb file, but the .pdf file is still ugly. """""""""""""""""""""""""""""""""""""" ps2pdf calls `gs -sDEVICE=pdfwrite' to create the .pdf file. gs versions <=5.99 create ugly and large .pdf files even if you have the beautiful and small .pfb's. So upgrade to gs >=6.0 or use pdf(la)tex to create the .pdf file. 19. How can I use the generated .pfb file with pdf(la)tex? """""""""""""""""""""""""""""""""""""""""""""""""""""""""" See FAQ answer 11 for .map files first. See also FAQ answer 18b. You have to insert a line describing your .pfb file into a .map file which pdf(la)tex reads. You should modify pdftex.cfg (either in the current directory or its appropriate installed location), and add the line map +MY_MAP.map If you want to try your font quickly without any config file modification, do: echo 'MYFONT TeX-MYFONT xypic.map 20. How can I use the generated .pfb file with acroread? """""""""""""""""""""""""""""""""""""""""""""""""""""""" Bad question (you can't). .pdf files already have some (Type1, Type3 etc.) font _embedded_ inside them, and acroread always uses those embedded fonts. So the already existing .pdf files cannot be fixed: they will be ugly and they'll be rendered slowly forever. On the other hand, if you have the sources, you can re-generate your old .pdf files with pdf(la)tex. See FAQ answer 19. 20b. I have a slow and ugly .pdf file. How to fix it? """"""""""""""""""""""""""""""""""""""""""""""""""""" (You can't.) See FAQ answer 20. 21. How can I use the generated .pfb file with acrodist? """""""""""""""""""""""""""""""""""""""""""""""""""""""" Just copy your .pfb file to the directory where the other .pfb files reside (usually C:\PSFONTS on Win32). 22. Does TeXtrace convert font metrics (and kerning) information? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Not by default, but using the utilities shipped with TeXtrace (notably contrib/tfm2kpx.pl), it is possible. When you work with TeX, for most of the cases you don't need metrics and kerning information, because character positioning is already completed by the time dvips or pdf(la)tex reads the .pfb file. So whatever metrics information is in the .pfb file, it is completely ignored. (Well, this isn't exactly true, but all the metrics information that is not ignored, is correctly generated by TeXtrace). Font metrics information consists of: -- glyph bounding boxes: not supported by the Type1 format -- font bounding box: correctly generated by TeXtrace -- glyph (logical) widths (\wd): correctly generated by TeXtrace -- glyph vertical widths: unsupported by TeX and TeXtrace (they are zeroed) -- glyph (logical) heights (\ht): not supported by the Type1 format -- glyph (logical) depths (\dp): not supported by the Type1 format -- kerning pairs: not supported by the Type1 format, but supported in the AFM format. To generate the corresponding AFM files with proper kerning information, see FAQ answer 13. -- ligatures: not supported by the Type1 format, not even the AFM format. -- composite glyphs: composite glyphs are correctly generated by TeXtrace, but TeXtrace de-composes them, so the font file will get somewhat bigger. 23. Does TeXtrace support TeX virtual fonts as input? """"""""""""""""""""""""""""""""""""""""""""""""""""" Yes, completely. That's because TeXtrace doesn't know whether the font is virtual or not: if dvips is able to produce a correct .ps file from it, the font is OK. 24. Does TeXtrace support TeX Type1 fonts as input? """"""""""""""""""""""""""""""""""""""""""""""""""" Yes, completely. That's because TeXtrace doesn't know whether the font is Type1 or not: if dvips is able to produce a correct .ps file from it, the font is OK. 25. Does TeXtrace support TeX TrueType fonts as input? """""""""""""""""""""""""""""""""""""""""""""""""""""" Yes, completely. That's because TeXtrace doesn't know whether the font is TrueType or not: if dvips is able to produce a correct .ps file from it, the font is OK. 25b. Does TeXtrace support TeX OpenType fonts as input? """"""""""""""""""""""""""""""""""""""""""""""""""""""" Very probably no. That's because moth TeX distributions cannot read .otf fonts, and dvips cannot embed glyphs from .otf fonts into the .ps file. So the problem is with TeX distributions, not TeXtrace. As soon TeX distributions begin to support .otf, already released TeXtrace versions will also support it. 26. Can I use TeXtrace to convert any TrueType font to Type1? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Yes, but you probably shouldn't. First, TeXtrace can convert only 256 glyphs a time (and it's especially hard to convert kerning pairs between different 256-sets). Second, you have to create a correct .tfm file for the TrueType font (with ttf2tfm), and then you must install the font so that TeX will find it. Third, TeXtrace is somewhat lossy: because it renders and traces the glyphs while converting. 27. Can I use TeXtrace to convert any Type1 font to TrueType? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" No. TeXtrace's output is always a Type1 font in .pfb format. To convert a Type1 font to TrueType, obtain a font editor (see FAQ answer 56), and do the job visually. Remember that TrueType has a much better hinting mechanism, so the resultant Type1 will look somewhat worse on screen. Also remember that TrueType curve model is worse thatn Type1, so TrueType font files are generally bigger than Type1. 27b. Can TeXtrace produce OpenType as output? """"""""""""""""""""""""""""""""""""""""""""" No. TeXtrace's output is always a Type1 font in .pfb format. 27b. Can TeXtrace produce mf (MetaFont) as output? """""""""""""""""""""""""""""""""""""""""""""""""" No. TeXtrace's output is always a Type1 font in .pfb format. 28. The .pfb files generated by TeXtrace are too large for me. Why? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Bluesky's cmr10.pfb is approximately 27000 bytes. The same font converted with TeXtrace is approximately 85000 bytes. It is generally true that TeXtrace generates fonts sizes around 3.15 times larger than the absolute minimum. That's because autotrace builds the glyph outlines from too many control points. The same quality font would be possible to be expressed with fewer control points. If this bothers you, please consult the author of autotrace. (Setting the `-filter-iterations' or `-error-threshold' switches of autotrace to a higher level risks losing quality.) If you have a good font editor (see FAQ answer 56 and 56b), load the generated .pfb files, and simplify the outlines. In my opinion, such a `large' font file as generated by TeXtrace can be tolerated. The greatest problem with large font sizes is that your PDF files gets big. The author of TeXtrace has currently no fix for that: autotrace must be re-written to make outlines shorter. 29. TeXtrace is too slow for me. Why? """"""""""""""""""""""""""""""""""""" Most of the time is spent running `autotrace', but that's not the only reason because TeXtrace is quite slow. With an enormous effort, approximately 200 man-hours of work, TeXtrace could be made twice as fast. The author thinks that this time isn't worth, so TeXtrace will quite surely remain that slow. 30. Fonts generated by TeXtrace look bad in small point sizes. Why? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" TeXtrace doesn't generate any hinting information which is essential for the good quality small resolution rendering of the font. Hinting information is almost impossible for TeXtrace to generate, because most TeX fonts (.mf) don't even have such information. The author has tried the fonts generated by TeXtrace at 10pt size with acroread and ATM, and found it good enough for his needs. If that (questionably) poor quality bothers you, load the resulting .pfb files in a font editor (see FAQ answer 56), and try its autohinting facility. Do this with great care: bad hinting is worse than no hinting. Hinting of professional fonts are created by humans, glyph-by-glyph. If you'd like to reach the quality, you'll have to work for it yourself. 31. Why does TeXtrace use the BMP image file format internally? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" (This question is obsolete because we don't use BMP anymore. See FAQ answer 31b.) We used to use the .bmp format because -- -sDEVICE=bmpmono is always available on all GhostScripts (not true for gs 4.03, 1996 -- but pbm is available!) -- --input-format .bmp is always available in autotrace -- it is a common file format for GhostScript and autotrace -- reading-writing bmp files does not require additional libraries (like libjpg, libpng, libtiff, libz), which might be missing, old, badly configured, patent-restricted etc. -- BMP is easily viewable in Win32 (that's the only advantage against .pbm) -- BMP is easy to manipulate in Win32 Paint Disadvantages of BMP: -- lame format (so as .pbm) -- originally Win32 format -- huge file size So, with the choice of .bmp, TeXtrace _works_ on all configurations, but occupies quite much temporary disk space. 32. Why does TeXtrace use the PBM image file format internally? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" PBM is netPBM's (formerly pbmplus) image format for representing rectangular black/white raster data. It is a very simple file format, documented in pbm(5) (grab the netpbm package). It is available from 1991, and is well supported by both gs (even version 4.03 in 1996!) and autotrace. The PBM file format doesn't support compression, so 256 PBM files would eat around 350Mb of disk space. This is too much, so the author of TeXtrace decided to use a simple run-length compression. Now we have exactly 1 tmp/tmp_chrs.rea file (managed by rleman.pl) of 5Mb size instead of 256 separate PBM files. Using rleman.pl means +150s user time on a 333Mhz Intel Celeron for each font. (Those who are interested in writing simplistic run-length compression algorighms in perl in one line, should have a look at rleman.pl.) 32. What encoding vector do the generated Type1 font files have? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Always tex256.enc (almost LaTeX's T1Encoding), regardless what encoding TeX uses to typeset the font. (So we don't care about PostScript glyph names -- they are somewhat fake, but they work as is.) The author chose tex256.enc because all glyphs in tex256.enc have different names, so we have 256 different glyph names for our 256 very different characters. (Of course, the author could have invented another encoding with glyph names like /g0 /g1 ... /g255.) You don't need tex256.enc to use .pfb files generated by TeXtrace with TeX. You shouldn't mention tex256.enc in your .map files. See FAQ answer 34. 33. What files are part of the TeXtrace distribution? """"""""""""""""""""""""""""""""""""""""""""""""""""" See the file `files'. 33b. What are those *.log files? """""""""""""""""""""""""""""""" -- clean_pk.log: The name of the .pk files possibly generated by mktexpk invoked by dvips invoked by traceall.sh. It is safe to remove these .pk files any time, because they are huge, so probably you won't need them for normal TeX-ing, and if you needed them, they would be re-generated by mktexpk. -- mapfail.log: multiple whatfail.log's collected by tracemap.sh -- metafont.log: multiple logfiles produced by mf invoked by mktexpk -- mymisfnt.log: multiple logfiles produced by dvips -- whatfail.log: some logs about autotrace invoked by traceall.sh 33c. How to submit a bug report? """""""""""""""""""""""""""""""" 0. Make sure you convert the correct _source_ fonts. For maximum safety, remove all previous or incorrect versions of the _source_ fonts from your texmf tree. Also remove all *pk and *gf files. Make sure your psfonts.map, ttfonts.map and other .map files refer to the correct source fonts. To test this, rename the source fonts, verify that traceall.sh fails, and than rename back the source fonts. This item cannot be over-emphasized. Do not send a bug report unless you are absolutely sure that the _original_, _source_ fonts are all right, and _only_ the fonts generated by TeXtrace are bad. 1. `rm -f *.log' 2. `bash ./traceall.sh ecrm1728 output.pfb 4444444 >traceall.log 2>&1' (Of course, substitute ecrm1728 with the TeX font name you have problems with.) Also try bash ./traceall.sh ecrm1728 output.pfb 4444444 '' --old Also try (with the exact filenames): bash ./traceall.sh ecti1000 gcti1000.pfb 4444445 '' and bash ./traceall.sh ecti1000 gcti1000.pfb 4444446 '' --old 3. Read FAQ answer 33b, read *.log. 4. Examine output.pfb with `perl contrib/gvfont.pl output.pfb'. 5. Create a document with the font created by TeXtrace (output.pfb) and with the original TeX font. Explain the difference. 6. Use rleman.pl to extract .pbm files from tmp/tmp_chrs.rea. Examine those .pbm files and determine whether they are correct. Examples: perl rleman.pl tmp/tmp_chrs.rea 0 tmp.pbm; xv tmp.pbm perl rleman.pl tmp/tmp_chrs.rea 65 tmp.pbm; xv tmp.pbm perl rleman.pl tmp/tmp_chrs.rea 255 tmp.pbm; xv tmp.pbm 7. Send your explanations to the TeXtrace mailing list (see FAQ answer 3) with *.log and the two documents attached. (If more than 100k, send only an URL.) Include the versions of all software used (including TeXtrace, tex, pdftex, dvips, acroread, operating system, architecture etc.). 34. Should I put a `ReEncodeFont' entry to my .map file for fonts generated by TeXtrace? """""""""""" No. The characters are in their appropriate place, since we've generated them to the place where they were orinally. See also FAQ answer 32. 35. I plan to draw my own font. What utilities do you recommend? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Drawing a beautiful font is a hard a time-consuming task. For a professional type founder (i.e one whose profession is font drawing), it takes more than 1 year (!) to produce a high quality font in 4 styles (normal, italic, bold and bold italic), in one design size (mostly 10pt). See the Usenet Font FAQ for more details. The author of TeXtrace is not a type founder, so he cannot give you the best advice how to design and draw your own fonts, what programs to use etc. Before drawing your first font, read Donald E. Knuth's Metafontbook (mfbook.tex -- it has some trivial anti-compile tricks). He explains how to construct fonts mathematically, with mf (Metafont), in a non-WYSIWYG way. If you dislike this approach, you should take a look at Fontlab Fontlab 3.1 (http://www.fontlab.com/) and Macromedia Fontographer 4.1 (http://www.macromedia.com/). Both of them are for Win32. You have to pay for both of them, and they are not `professional' enough -- but unless you're a professional, this wouldn't matter. 36. I want to modify an existing font beacuse it has a few quirks. What utilities do you recommend? """"""""""""""""""""""""""" If you dislike the following approach, you should take a look at Fontlab Fontlab 3.1 (http://www.fontlab.com/) and Macromedia Fontographer 4.1 (http://www.macromedia.com/). Both of them are for Win32. You have to pay for both of them. You will have a lot of problems with encodings (i.e putting the glyphs back to the same encoding position), PFM files (required by Adobe Type Manager for Windows) and hinting. These problems are because of the `usual quirks' of computer programs. After a few days of experimentation, you should be able to overcome them. Use the type1fix.pl (see FAQ answer 17) shipped with TeXtrace to automatically fix common quirks of Type1 font programs (generated by your font editor, see FAQ answer 56). It's rather easy to use type1fix.pl under Win32 too, see doc/type1fix.txt for more details. Alternatively, if you need only simple Type1 font modifications, you can do it with type1fix.pl by itself. Just convert your font to a human-readable text file with: perl -x type1fix.pl YOURFONT.pfb gsf: HUMAN.gsx --gsf-human The most interesting parts of the file HUMAN.gsx are: the /Encoding array and the /CharStrings and /Subrs dictionaries. Download t1_spec.pdf from Adobe (http://www.adobe.com/) for details about the dictionaries. You should also download PLRM.pdf (PostScript Language Reference Manual) from the same site. Convert it back with: perl -x type1fix.pl HUMAN.gsx pfb: YOURFON2.pfb Use the contrib/gvfont.pl utility (shipped with TeXtrace) to quickly visually test YOURFON2.pfb. 37. I want to generate low-quality Type1 fonts algorithmically (automatically). What utilities do you recommend? """"""""""""""""""""""""""""""""""""""""""""""""" Give t1d2gsx.pl (shipped with TeXtrace) a try. Use type1fix.pl (see FAQ answer 36) to convert the .gsx file to .pfb. See squares.t1d shipped with TeXtrace for an example. Perhaps the are much better utilites exist, but the author of TeXtrace doesn't know them. 37. I want to convert a TeX font to non-Type1. Can TeXtrace help? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Maybe. You will have to glue it together with a couple of days of programming. 1. Download t1_spec.pdf from Adobe (http://www.adobe.com/) for details. You should also download PLRM.pdf (PostScript Language Reference Manual) from the same site. Read them to get a good understanding of Type1 fonts. You won't use Type1 fonts, but you need the knowledge to understand a Type1 font and to be able to convert it to your favourite file format. 2. Run traceall.sh on the font. 3. Examine tmp/tmp_gen1.t1d. See also t1d2gsx.pl in TeXtrace's directory. After a couple of hours of experimentation, you should know how to convert tmp/tmp_gen1.t1d to your favourite format. Implement the converter. Please let the author of TeXtrace know about your success. (Send a e-mail to the TeXtrace mailing list, see FAQ answer 3.) 38. What is Justlib (mentioned in the beginning of TeXtrace's .pl files)? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Justlib is a Perl extension which helps you develop standalone Perl scripts which do not require any external .pm file (not even from /usr/lib/perl5) to run. Justlib was written by the author of TeXtrace. Justlib isn't shipped with TeXtrace -- only some files _generated_ by Justlib are shipped. Justlib cannot be downloaded from the net right now. Please write to pts@fazekas.hu to urge this. 39. What TeX fonts are already available as .pfb? """"""""""""""""""""""""""""""""""""""""""""""""" The CM-Super package contains Type 1 fonts converted from METAFONT fonts and covers entire EC/TC, ECC and LH fonts (Computer Modern font families). All European and Cyrillic writings are covered. Each Type 1 font program contains ALL glyphs from the following standard LaTeX font encodings: T1, TS1, T2A, T2B, T2C, X2, and also Adobe StandardEncoding (585 glyphs per non-SC font and 468 glyphs per SC font), and could be reencoded to any of these encodings using standard dvips or pdftex facilities (the corresponding support files are also included). Daniel Richard G. has reported: If I could ask a small favor: Could you update doc/textrace.txt and the TeXtrace home page to reflect availability of the cm-super font set? Because I didn't know about it, I thought that I would have had to wait for Tt2001 to stabilize (and show up on CTAN) in order to be able to use Type 1 EC fonts. Surely other folks are in a similar situation, and would be very happy to learn about cm-super. I would suggest adding a link to the cm-super file list, as no proper home page seems to exist for it: http://www.ctan.org/tex-archive/fonts/ps-type1/cm-super/ Tanakori Uchiyama has reported: By the way, there is a musixps-unix.tar.gz at CTAN. fonts/musixtex/ps-type1/musixps-unix.tar.gz I think that it is easy to get and use it. Note: Tt2001 is obsolete now, users are recommended to use CM-Super instead. `Tt2001' is a TeX .pfb font collection, converted to .pfb in 2001 by the author of TeXtrace, using TeXtrace. It contains _all_ the EC (European Computer Modern) and TC (Text Companion) fonts in all possible design sizes, _all_ the AMS fonts in all possible design sizes, plus some more. Currently it may be available from the net: http://www.inf.bme.hu/~pts/textrace/ See also FAQ answer 54. Quoting subsubsection 5.4.1 of dvips.dvi: Commercial versions of the Computer Modern fonts are available from Blue Sky; public domain versions are available from CTAN sites (for CTAN info, see section ``unixtex.ftp'' in Kpathsea) in: fonts/postscript/bakoma fonts/postscript/paradissa You may need to modify these fonts; see http:///xxx.lanl.gov/faq/bakoma.html Knuth's original CM (Computer Modern) fonts (_not_ including European accentend letters) were converted to .pfb by Bluesky in 1991. These Bluesky .pfb fonts (such as cmr10.pfb) are part of the standard teTeX distribution, and are available from CTAN since years ago. Some auxilary fonts (such as the MetaFont logo and the Wasy fonts) were converted to .pfb by Taco Hoekwater, 1998. Some fonts, such as Times, Helvetica and Charter were _originally_ in PFB format, so they need no conversion. Many of them are part of the standard teTeX distribution, and also from CTAN. Below you'll be presented a list of font families. They are available as: -- [T]: .mf (MetaFont), .pk files in teTeX, .pfb file in Tt2001 -- [B]: .mf (MetaFont), .pk files in teTeX, .pfb file in Bluesky in teTeX -- [H]: .mf (MetaFont), .pk files in teTeX, .pfb file in Hoekwater in teTeX -- [2]: .mf (MetaFont), .pk files in teTeX, .pfb file in non-Bluesky, non-Hoekwater in teTeX -- [P]: original .pfb file in teTeX -- [-]: obsolete, not available anymore The fonts: -- [B]+[T] Knuth's original CM (Computer Modern) fonts Knuth's original CM fonts converted by Bluesky are: cmb10 cmbsy10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10 cmbxti10 cmcsc10 cmdunh10 cmex10 cmex9 cmff10 cmfi10 cmfib8 cmitt10 cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 cmr10 cmr12 cmr17 cmr5 cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8 cmsl9 cmsltt10 cmss10 cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10 cmssi12 cmssi17 cmssi8 cmssi9 cmssq8 cmssqi8 cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 cmtcsc10 cmtex10 cmtex8 cmtex9 cmti10 cmti12 cmti7 cmti8 cmti9 cmtt10 cmtt12 cmtt8 cmtt9 cmu10 cmvtt10 Missing from Bluesky CM, included in Tt2001: cmex9 -- [T] all AMS fonts (AMS A, AMS B, other math fonts, Euler fraktur, cyrillic etc.) Most of them are available from [B]. AMS fonts as Bluesky .pfb's, converted in automn 1992: (below). Since then a lot of AMS fonts were drawn, so these are not enough: cmbsy5 cmbsy7 cmmib5 cmmib7 euex10 eufb10 eufb5 eufb7 eufm10 eufm5 eufm7 eurb10 eurb5 eurb7 eurm10 eurm5 eurm7 eusb10 eusb5 eusb7 eusm10 eusm5 eusm7 msam10 msam5 msam7 msbm10 msbm5 msbm7 wncyb10 wncyi10 wncyr10 wncysc10 wncyss10 Tt2001 contains all AMS fonts (including those above): cmbsy5 cmbsy6 cmbsy7 cmbsy8 cmbsy9 cmcsc8 cmcsc9 cmex7 cmex8 cmmib5 cmmib6 cmmib7 cmmib8 cmmib9 wncyb10 wncyb5 wncyb6 wncyb7 wncyb8 wncyb9 wncyi10 wncyi5 wncyi6 wncyi7 wncyi8 wncyi9 wncyr10 wncyr5 wncyr6 wncyr7 wncyr8 wncyr9 wncysc10 wncyss10 wncyss8 wncyss9 euex10 euex7 euex8 euex9 eufb10 eufb5 eufb6 eufb7 eufb8 eufb9 eufm10 eufm5 eufm6 eufm7 eufm8 eufm9 eurb10 eurb5 eurb6 eurb7 eurb8 eurb9 eurm10 eurm5 eurm6 eurm7 eurm8 eurm9 eusb10 eusb5 eusb6 eusb7 eusb8 eusb9 eusm10 eusm5 eusm6 eusm7 eusm8 eusm9 msam10 msam5 msam6 msam7 msam8 msam9 msbm10 msbm5 msbm6 msbm7 msbm8 msbm9 -- [-] DC fonts: early European Computer Modern fonts, obsolted by the EC fonts -- [T] EC (European Computer Modern) fonts (drawn by J"org Knappen and Norbert Schwarz), LaTeX \usepackage{t1enc} -- [T] TC (Text Companion) fonts (drawn by J"org Knappen and Norbert Schwarz) -- [T] Knuth's original Concrete fonts (the font family of the book Concrete Mathematics) -- [B] some LaTeX picture drawing etc. fonts. Bluesky .pfb's, converted in automn 1992: lasy10 lasy5 lasy6 lasy7 lasy8 lasy9 lasyb10 lcircle10 lcirclew10 lcmss8 lcmssb8 lcmssi8 line10 linew10 -- [T] some LaTeX picture drawing etc. fonts. Converted in May 2001: icmcsc10 icmex10 icmmi8 icmsy8 icmtt8 ilasy8 ilcmss8 ilcmssb8 ilcmssi8 -- [H] all the MetaFont logo and MetaFont-related fonts: logo10 logo8 logo9 logobf10 logod10 logosl10 logosl8 logosl9 manfnt -- [H] all rsfs: Formal Script Math Symbols (some calligraphic uppercase letters): rsfs10 rsfs5 rsfs7 -- [H] all stmary: StMary's Road symbol fonts: contain a number of mathematical characters which are not present in the standard TeX and AMS symbol fonts: stmary5 stmary6 stmary7 stmary8 stmary9 stmary10 -- [H] all wasy: misc math symbols and other signs (featuring Mr Smiley and Mr Frownie), upward compatible with the lasy fonts (by Leslie Lamport, included in [B]), wasy5 wasy6 wasy7 wasy8 wasy9 wasy10 wasyb10 -- [T] all xypic: LaTeX picture drawing [2] contains some, but not all xypic: xyatip10 xybsql10 xybtip10 xycirc10 xycmat10 xycmbt10 xydash10 xyeuat10 xyeubt10 [T] contains all xypic, except for xymisc10 (for which dvips failed): xyatip10 xybsql10 xybtip10 xycirc10 xycmat10 xycmbt10 xydash10 xyeuat10 xyeubt10 xyline10 xyqc10 -- [P] Martin Vogels Symbole (designed by Martin Vogel, converted to Type1 by Thomas Henlich ): misc small symbols, like scissors, moon, bat, woman face. LaTeX \usepackage{marvosym}. marvosym.pfb -- [P] Omega Serif fonts, requires Omega, useless in normal TeX: omsea1 omsea1b omsea2 omsea2b omsea3 omsea3b omseco omsecob omsecobi omsecoi omsecx omsecy omsegr omsegrb omsegrbi omsegri omseha omsehe omseip omsela omselab omselabi omselai omseti -- [P] Adobe Utopia (`the' freely available font from Adobe), LaTeX \usepackage{utopia} putb8a putbi8a putr8a putri8a -- [P] Bitstream Charter (a thin main text font, for free), LaTeX \usepackage{charter} bchb8a bchi8a bchr8a bchri8a -- [P] the Lucida text font family (Lucida Sans, Lucida Fax etc.), free. LaTeX \usepackage{lucbmath}, \usepackage{lucidabr}, \usepackage{lucidbrb}, \usepackage{lucidbry}, \usepackage{lucmin}, \usepackage{lucmtime} lbc lbd lbdi lbh lbi lbl lbma lbme lbmi lbmo lbms lbr lbsl lfd lfdi lfi lfr lsd lsdi lsi lsr lstb lstbo lsto lstr Note that the .pfb fonts are somehow missing from Debian Slink's teTeX, but the LaTeX .sys files are available. -- [P] the free, URW-remake of the Adobe standard 35 (mostly text) fonts. This is a superset of the Adobe standard 14 PDF fonts. LaTeX \usepackage{times} (best!), \usepackage{helvet}, \usepackage{palatcm}, \usepackage{palatino}, \usepackage{avant}, \usepackage{bookman}, \usepackage{courier}, \usepackage{ncntrsbk}, \usepackage{zapfchan}: /AvantGarde-Book /AvantGarde-BookOblique /AvantGarde-Demi /AvantGarde-DemiOblique /Bookman-Demi /Bookman-DemiItalic /Bookman-Light /Bookman-LightItalic /Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique /Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique /Helvetica-Narrow /Helvetica-Narrow-Oblique /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique /NewCenturySchlbk-Roman /NewCenturySchlbk-Italic /NewCenturySchlbk-Bold /NewCenturySchlbk-BoldItalic /Palatino-Roman /Palatino-Italic /Palatino-Bold /Palatino-BoldItalic /Symbol /Times-Roman /Times-Italic /Times-Bold /Times-BoldItalic /ZapfChancery-MediumItalic /ZapfDingbats TeX font names: pagd8a pagdo8a pagk8a pagko8a pbkd8a pbkdi8a pbkl8a pbkli8a pcrb8a pcrbo8a pcrr8a pcrro8a phvb8a phvbn8a phvbo8a phvbon8a phvr8a phvrn8a phvro8a phvron8a pncb8a pncbi8a pncr8a pncri8a pplb8a pplbi8a pplr8a pplri8a psyr ptmb8a ptmbi8a ptmr8a ptmri8a pzcmi8a pzdr -- [T] yandy mathtime fonts: mtcmmi mtcmsy The following common teTeX .mf fonts are not available in .pfb yet: -- jknappen/sauter/* -- lh/*/* (many!) -- public/*/* (too many!) 40. How should I change from [la]tex to pdf[la]tex? """"""""""""""""""""""""""""""""""""""""""""""""""" Preparing a PDF document requires a bit more work than just printing a document using latex+dvips. Just changing the command from latex to pdflatex won't solve your problems. -- read the .pdf documentation of pdftex 1st -- ensure that you've read the documentation for the version of pdftex that you use (pdftex tends to have incompatible changes time to time) -- ensure \pdfcompresslevel=9 -- ensure correct \pdfpageheight and \pdfpagewidth -- ensure \pdfpageattr={/CropBox [0 0 200 200]} with correct dimens (bp) -- ensure `pdf12_compliant 1' in pdftex.cfg of newer pdftex to give a chance for PDF displayers do display your publication -- ensure that a lot of <... .pfb> (and few <... pk>) appear in pdf[la]tex's screen output; this means that pdf[la]tex found and used vector fonts -- use \pdfimage instead of \usepackage{graphics} or \usepackage{graphicx} to get full control over your images (note that the syntax of \pdfimage has changed between pdftex versions 12 and 13): \ifx\pdftexversion\undeffffined\else% \ifnum\pdftexversion<13% older, Debian Slink \def\pdfimagecompat#1#2{\pdfimage#1 #2 \relax}% \else% newer, SuSE 6.2 \def\pdfimagecompat#1#2{\pdfimage#1 {#2}}% \fi% \fi% 41. I don't have the shell `bash', but I have traditional UNIX `sh' (such as Solaris /bin/sh). Would TeXtrace work? """""""""""""""""""""""""""""""""""""" Very probably not. Traditional UNIX `sh' is stupid, quirky and unreliable, and almost impossible to program without sed. If you don't believe this, see Perl's `Configure' script. 41b. I don't have the shell `bash', but I have `zsh' (>=3.0). Would TeXtrace work? """""""""""""""""""" Yes. TeXtrace has builtin Zsh support from version 0.43. Just run `zsh tracemap.sh' or `zsh traceall.sh'. Everything should work fine. (Zsh support was dropped in because some MacOS X systems don't have Bash, but have Zsh.) 42. Is TeXtrace deterministic? Does traceall.sh produce binary-identical .pfb files if run later with the same command? """""""""""""""""""""""""""""""""""""""""""""" If you run it on the same computer without upgrading teTeX and fonts, the answer is yes. Otherwise, the answer is very probably no. But the generated PFB fonts should not differ visually, so they can be used not only on the computer on which they were generated. The reason behind this is not an inconsistency of TeXtrace, but the difference between the several versions of the software (like dvips, TeX fonts etc.) TeXtrace uses. 42b. Is TeXtrace thread-safe? """"""""""""""""""""""""""""" Bad question (yes). TeXtrace doesn't use threads. The TeXtrace utilities (such as traceall.sh and tracemap.sh) run in separate UNIX processes. 42c. Is TeXtrace reentrant? Can I run multiple TeXtrace's from the same directory in the same time? """"""""""""""""""""""""""" No. If you want to run multiple TeXtrace utilities in the same time, please make a copy of the whole TeXtrace directory for each instance. However, the destination font directory of tracemap.sh's may be the same. 42d. Is TeXtrace Y2K-compliant? """"""""""""""""""""""""""""""" TeXtrace doesn't use time (neither absolute nor relative). So it is Y2K-compliant if the underlying operating systems and utilitites (e.g perl, bash) are. 43. Will TeXtrace work with math, symbol, music or any non-latin fonts? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Yes, completely. TeXtrace has nothing to do with the `meaning' or `encoding' of the font. TeXtrace is also language independent. The only limitation is that TeXtrace handles pure, traditional TeX fonts only. These fonts may have up to 256 glyphs. TeXtrace doesn't handle Omege Unicode fonts or fonts with more than 256 gylphs. 44. I get `dvips font generation failed'. Help! """"""""""""""""""""""""""""""""""""""""""""""" This is mostly caused by some .mf (metafont) fonts, which fail to compile at too high resolutions. (A typical resolution for a metafont font is between 300 DPI and 600 DPI, but TeXtrace operates typically at 7227 DPI.) And -- of course -- TeXtrace must work in high resolutions to generate statisfactory output. Currenty I have no generic fix for this. Experiment with the .mf file yourself... -- msbm10, msbm*: In xbbold.mf, the line if pixels_per_inch*designsize < 1500: must be replaced by if 3 < 2: to avoid arithmetic overflow. -- xyatip10, xy????10: dvips uses the .pfb by default and not the .pk, so I had to disable it temporarily in global psfonts.map. -- xymisc10: hopeless, DPI is too large for the font. Not converted. -- musictex fonts (e.g musix11, musix13) shipped with Debian Slink do not compile (even without TeXtrace). Please download the newest musixtex .mf fonts, they should work OK. Very probably they are already converted to .pfb (thanks to Bob Tennent). -- ecit2986, ecit3583: Some internal Metafont inconsistency. Partially fixed by temporarily replacing the `if ...;' to `if true;' above 'caused strange path errors' in /usr/bin/mktexpk. The Metafont error message was: ERROR: `ogonek' iteration hasn't converged! Final values: x_down=... (should be ...) y_right=... (should be ...) ! Probably, you have to change somehow the boundary values. -- eccc0600, eccc0800: tons of `strange path' errors. Fixed the same way as ecit2986. -- ecsc0600, ecsc0800: tons of `strange path' errors. Fixed the same way as ecit2986. 45. Why are common TeX font design sizes so strange: 5, 7, 10, 10.95, 12, 14.4, 17.28, 20.74, 24.88, 29.86, 35.83? """""""""""""""""""""""""""""""""""""""" They can be calculated with the following formula: 10*(1.2^i) pt. i design size LaTeX\documentclass{article} -4 4.82253086419753 pt -- 5 pt \tiny -3 5.78703703703704 pt -- 6 pt -- -2 6.94444444444445 pt -- 7 pt \scriptsize 8 pt \footnotesize -1 8.33333333333333 pt -- 9 pt \small 0 10 pt \normalsize 0.5 1.09544511501033 pt `10.95' -- 1 12 pt \large 2 14.4 pt \Large 3 17.28 pt \LARGE 4 20.736 pt `20.74' \huge 5 24.8832 pt `24.88' \Huge 6 29.85984 pt `29.86' -- 7 35.831808 pt `35.83' -- So font design sizes constitute a geometrical sequence (rather than a sequence with equal e.g 1 pt increments), just like the frequencies of the adjacent keys on the piano. Human senses use a logarithmical scale, so a geometrical sequence is appropriate in both cases. The EC fonts are available in the following design sizes (pt): 5, 6, 7, 8, 9, 10, 10.95, 12, 14.4, 17.28, 20.74, 24.88, 29.86, 35.83. This differs from the geometrical sequence for small sizes (<10pt) only. 46. How can I set the font size in LaTeX? """"""""""""""""""""""""""""""""""""""""" Read FAQ answer 46b first about why you shouldn't set the font size. Read fntguide.dvi, shipped with teTeX first. For the most common sizes, use \large etc., described in FAQ answer 45. For an arbitrary size, use \fontsize{}{}\selectfont Both of them are measured in `pt' (which may be specified or omitted in both parameters). The baselineskip is usualy 1.2*fontsize. Example: \fontsize{17.28pt}{20.74pt}\selectfont Also note that LaTeX will very probably complain about an invalid font size unless you specify a standard EC size mentioned in FAQ answer 45. That's because the wrong .fd files in somewhere near /usr/lib/texmf/tex/latex/*/*.fd, for example: /usr/lib/texmf/tex/latex/base/t1cmr.fd. Copy the appropriate .fd file into the current directory, and change <5><6><7><8><9><10><10.95><12><14.4> <17.28><20.74><24.88><29.86><35.83>.... to <-6>????0500 <6-7>????0600 <7-8>????0700 <8-9>????0800 <9-10>????0900 <10-10.95>????1000 <10.95-12>????1095 <12-14.4>????1200 <14.4-17.28>????1440 <17.28-20.74>????2748 <20.74-24.88>????20.74 <24.88-29.86>????2488 <29.86-35.83>????2986 <35.83->????3583 where ???? is the 4-character .mf fontname. 46b. Why shouldn't I set the font size in (La)TeX? """""""""""""""""""""""""""""""""""""""""""""""""" That's because LaTeX isn't a desktop publishing system (like QuarkXPress or Adobe PageMaker or Microsoft Publisher), but it's a document preparation system. A strong emphasis is on separating document structure and visual appearence. Examples: document structure visual appearance \section \bigskip\noindent\large\bf \emph \sl \url \tt Font size changing belongs to the `visual appearance' and shouldn't be part of the document. It should be part of the documentclass (.cls) or one of the styles (.sty). An other reason against ad-hoc font size changing is that it ruins the consitency and readability of the document. You are probably using TeX because you want your final, printed document be of professional typographic quality. Don't be lame to use font size changes beyond reasonable limit. 47. What is an UniqueID and what should I set it to? """""""""""""""""""""""""""""""""""""""""""""""""""" A UniqueID is a 32 bit unsigned integer. Not two Type1 fonts can have the same UniqueID in the same system. Free (locally assignable) UniqueID's are in 4000000 ... 4999999. Officially you have to register your fonts at Adobe to get your own, fixed UniqueID. 48. How to print the sample differ.tex on a PostScript printer? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" The main purpose for printing differ.tex on a PostScript printer is for diagnosing whether the examples/fcrm1000.pfb file generated by TeXtrace is compatible with a specific PostScript printer. (Any other .pfb file can also be tested by copying it to examples/, editing psfonts.map and changing the filename (fcrm1000) in differ.tex.) Also note that you should print examples/vdiffer.pdf, which has nothing to do with examples/differ.tex, if you want to get a quick visual experience about TeXtrace's capabilities and the reason behind TeXtrace. See FAQ answer 53 for more. Thus: -- examples/vdiffer.pdf is for getting a quick visual experience -- examples/differ.tex and examples/differ.* are for testing PostScript printers A. Back up the directory examples/ B. Test whether the distributed examples/vdiffer.pdf prints B1. Print the file examples/vdiffer.pdf in any way you wish. Examples: acroread, pdf2ps, gs, lpr. B2. After that, delete examples/differ.pdf and examples/differ.ps to reduce confusion. C. Re-generate examples/fcrm1000.pfb C1. bash traceall.sh ecrm1000 examples/fcrm1000.pfb 4444444 D. Re-generate differ.pdf, and see whether it prints D1. cd examples D2. pdftex differ.tex D3. Print the file examples/differ.pdf in any way you wish. Examples: acroread, pdf2ps, gs, lpr. D4. After that, delete examples/differ.pdf and examples/differ.ps to reduce confusion. E. Re-generate differ.ps, and see whether it prints E1. cd examples E2. rm -f differ.pdf differ.ps E3. tex differ.tex E4. dvips differ.dvi -o differ.ps E5. lpr differ.ps # or whatever that prints onto the PostScript printer Please do _not_ use the following utilities for printing differ.ps: -- ps2pdf -- pdf2ps -- ps2ps -- gs -- ghostview -- gv -- ggv -- gsview That's because all of these utilities above use Ghostscript as the PostScript engine (there was and there shuould be no problems with Ghostscript). We do not want to test Ghostscript, we want to test the PostScript printer itself. Also make sure that your UNIX configuration doesn't call Ghostscript behind the scenes. To check this, print contrib/product.ps (the same way you've printed examples/differ.ps). The word `Ghostscript' mustn't appear on the printed page. F. Report your activity If something goes wrong, please mail it to the TeXtrace mailing list (see FAQ answer 3) with the following details: -- what version of TeXtrace are you using (>= 0.44) -- what version of dvips are you using -- what kind of printer (manufacturer, exact model) do you print on -- what error message do you get? -- what output do you get? (one page? two page? which page is bad? which page is good?) 49. What EC fontnames correspond to the CM fontnames? """"""""""""""""""""""""""""""""""""""""""""""""""""" Some of them: CM EC cmr10 ecrm1000 cmbx9 ecbx0900 cmbx12 ecbx1200 cmtt10 ectt1000 50. (asked by Werner Lemberg) Autotrace and gs are called repeatedly. Both gs and autotrace come with libraries which contain all functionality -- wouldn't it make sense to write a small wrapper program to avoid these repeated calls, using those libraries directly in a program? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Yes. This would result in faster execution. Drawbacks: -- raise compatibility issues (shared libraries, libtool etc.) -- not much faster for gs (for me, gs runs in 0.1s for each glyph) -- not much faster for autotrace (autotrace spends most of the time working, and only very few time initialising) -- time to implement I think there are more drawbacks than benefits, so I don't implement it. 51. (asked by Werner Lemberg) Have you checked how FreeType's type1 parser works? It uses pattern matching instead of a state machine -- maybe this approach is suitable to Perl also. """"""""""""""""""""""""""""""""""""""" type1fix.pl used by TeXtrace doesn't use a state machine. It uses an embedded language interpreter (the language is a subset of PostScript). See doc/type1fix.txt for more detail. type1fix.pl is for correcting Type1 font files to be widely portable. Using a simplified parser (such as in FreeType, t1tools, dvips, pdftex, Type Manager, X servers) does the opposite thing: creates incompatibilities. There is no `standard' way to parse Type1 fonts, because Adobe hasn't defined the way. So most Type1 utilities (including those mentioned above) use a different, nonstandard reader (invented by the `common sense' of the programmer), most of them having tons of quirks. type1fix.pl is for eliminating the quirks, not creating them. So type1fix.pl tries to be as accurate as possible. That's why it interprets the PostScript code literally (exactly), instead of reading them in an ad-hoc way. 52. The fonts produced by TeXtrace are ugly for me. Why? """""""""""""""""""""""""""""""""""""""""""""""""""""""" See the Vocabulary entry `hinting information' first. It is true that TeXtrace doesn't produce Type1 font hinting information (Type1 CharStrings instructions hstem, hstem3, vstem, vstem3), so the font may look bad in small (10pt) sizes in small (100 DPI) resolutions. But, in fact, nobody has reported this (i.e that the any font looks bad), and the author of TeXtrace is also statisfied with the quality of the fonts -- empirically. If you find a specific font ugly in a specific environment, please report this to the author of TeXtrace. If you're curious how (the absence of) hinting affects the un-antialiased displaying of a Type1 font, see FAQ answer 52b. 52b. I have a Type1 font with hinting information. How can I see how hinting information affects the rendering quality of the font? """""""""""""""""""""""""""""""""""""""""""""""""""""" You'll need: -- a Type1 font with hinting information in .pfa or .pfb format -- X11R5 or X11R6 environment running (with access to the X server) -- the xset, xfontsel utilities -- type1fix.pl from the TeXtrace (>=0.45) distribution On the X server, create a temporary directory: /tmp/hinttest. Create a .pfb file from your font: perl -x type1fix.pl YOURFONT.FILE pfb: /tmp/hinttest/hinted.pfb Create a .pfb file without hinting information: perl -x type1fix.pl YOURFONT.FILE pfb: /tmp/hinttest/nohint.pfb --kill-hints Create /tmp/hinttest/fonts.dir: 2 hinted.pfb -test-hinted-medium-r-normal--0-0-0-0-m-0-iso8859-1 nohint.pfb -test-nohint-medium-r-normal--0-0-0-0-m-0-iso8859-1 Run xset -fp /tmp/hinttest xset +fp /tmp/hinttest Run xfontsel -pattern '-test-*' Zoom and spot the differences. 53. How to view examples/differ.pdf and examples/vdiffer.pdf? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" These files are sample PDF files that contain sample text from the same font (Computer Modern Roman, 10pt) in various font formats so that the reader can easily see the difference between those formats. examples/differ.pdf is the old sample PDF file. It is removed from the distribution since 0.45 to reduce confusion, because it is replaced and extended by examples/vdiffer.pdf. But differ.pdf is simpler to build from source (examples/differ.tex) than vdiffer.pdf. For now, we can completely ignore it, because all its fonts are included in examples/vdiffer.pdf. (See FAQ answer 48 for more details about examples/differ.*) You should open vdiffer.pdf in Acrobat Reader before reading on, so you can verify the explanations here with your own eyes. (If you have gv installed on your UNIX machine, you should also open vdiffer.pdf with `gv -antialias vdiffer.pdf'). vdiffer.pdf contains four pages, each with a different font format: 1. cmr10.pfb: a vector font, available from Bluesky since 1992. Contains hinting information. 2. wcmr10.pfb: derived from Bluesky's cmr10.pfb by just removing hinting information. 3. ecrm1000.600pk: the EC font from Jörg Knappen, in bitmap format (600 DPI), MetaFont's output. 4. fcrm1000.*pk: the vectorized version of ecrm1000.600pk, converted from Jörg Knappen's font with TeXtrace. The pages of vdiffer.pdf represent four different solutions for the `EC fonts are ugly and slow in acroread' problem: 3. This is the ugly and slow font. That's why the demand on TeXtrace was born. 4. This is TeXtrace's solution for the problem: the font looks nice, can be read quickly and -- after zooming -- no difference can be seen between (3.) and (4.). This font doesn't contain hinting information, so it may look bad on some PDF displayers -- but it looks surprisingly nice in Acrobat Reader. 1. This font is a trick: it simulates the EC font with a CM font (using TeX .vf virtual fonts). The reason behind the simulation is that most CM fonts were converted to vector (nice and fast) format by Bluesky in 1992: so if we get the best from both worlds: accents and correct hyphenation (thanks to EC), nice and fast printing (thanks to Bluesky CM). For more information, see LaTeX \usepackage{ae}. Drawbacks: some glyphs are missing from the CM fonts, font metrics are different (!), not all font sizes are avaliable from Bluesky, not all fonts are available from Bluesky. 2. This is just a small modification of (1.): hinting information is removed from (1.). So one expects that it looks worse and it is less readable than (1). To try it, switch off antialiasing with Acrobat Reader/File/Preferences/General/Smooth text and... Surprisingly there is almost no difference between (1.) and (2.). So we can conclude that hinting information doesn't improve readability very much in Acrobat Reader, but antialiasing imroves very much. 54. What are the most common and famous font families (like EC, CM)? """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" See also FAQ answer 39. CM: Computer Modern, originally designed by Donald E. Knuth EC: European Computer Modern, designed by Jörg Knappen DC: old, deprecated European Computer Modern, designed by Jörg Knappen, use EC fonts instead TC: Text Companion (dingbats), designed by Jörg Knappen LA, LB, LC, LH, RX, WN: Computer Modern Cyrillic (Russian), designed by O. Lapko LA: T2A encoding LB: T2B encoding LC: T2C encoding LH: LCY encoding RX: X2 encoding WN: OT2 encoding 55. Where has the file examples/differ.pdf gone in 0.45? """""""""""""""""""""""""""""""""""""""""""""""""""""""" Short answer: use examples/vdiffer.pdf instead. Long answer: see FAQ answer 53 for details. 56. Where can I get a WYSIWYG font editor? """""""""""""""""""""""""""""""""""""""""" You can download a very impressive free font editor from http://pfaedit.sourceforge.net/ You'll need a UNIX system with X11 to run PfaEdit. The two most useful commercial font editors are Macromedia Fontographer (4.1) and Fontlab (3.1). They are proprietary: you have to pay for them. Visit www.macromedia.com or www.fontlab.com for details. Both of them support PFB and TTF fonts. Fontlab 3.1 is better in Unicode and international encoding handling. Fontlab 3.0 does not handle encodings well. Fontographer 4.1 does not handle encodings well. If you'd like to use PFB fonts on Windows, you'll need Adobe Type Manager (ATM, >=4.0). It comes in different editions, some of them is freely available. Also look at the new OpenType font format by Adobe and Microsoft appeared in 2000! Unfortunately there is no good documentation about it, and it is very different from Type1 so type1fix.pl will probably never support it. 56b. How can I use PfaEdit to make fonts generated by TeXtrace smaller? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Someone reported that PfaEdit cannot load fonts generated by TeXtrace. I use pfaedit_src-010624.tgz, and it works absolutely perfectly. 1. Download, compile and install PfaEdit. 2. Start `PfaEdit' with the .pfb filename as parameter. Example: pfaedit fcrm1000.pfb 3. Select all gylphs by pressing CTRL-A. 4. Simplify the selected glyphs by pressing CTRL-SHIFT-M. This may take long. 5. Press CTRL-SHIFT-G to open the `Generate postscript font' window. Type in the new .pfb filename (example: fcrm1000_beta.pfb). Untick `Output AFM' and `Output PFM'. Select `PS Type 1 (Binary)' and `No Bitmap Fonts'. Click on `Save'. 6. Use type1fix.pl shipped with TeXtrace to post-process the generated .pfb: perl -x type1fix.pl fcrm1000_beta.pfb pfb: fcrm1000_gamma.pfb --pack --dump-spaces=no --debug-warnings --chk-insize=no 7. Use the file obtained from the last step (fcrm1000_gamma.pfb). This should be 30% smaller than the original. 56b. How do I save a .pfb file with a file name _I_ specify in Fontlab or Fontographer? """"""""""""" (reported by Takanori Uchiyama) Note that this isn't a TeXtrace problem, but a problem related to specific, commercial font editors. Soultion 1. You save it, and then rename the generated files (both PFB and PFM). Note that this does not work for the Macintosh because its stupid property/resource system. Solution 2. In Fontographer, you change the top two text fields in Element/Font Info (in Fontlab, there is a similar dialog box). The second should be empty, the first should be the /FontName you expect. Adobe has some strange rules about generating the filename from the /FontName. Explore these rules, and invent the appropriate /FontName for your expected filename. Generate the PFB file. Solution 3. Hack traceall.sh to generate a different /FontName. Search for `FontName' in traceall.sh. 57. When I use my Type1 font in TeX, some glyph heights and depths are slightly different from the original """""""""""""""""""""""""""""""""""" That's beacuse TeX stores font metrics information (including glyph heights, widths, depths and italic corrections) in the TFM file. The DVI documentation for the utility `tftopl' (ripped from tftopl.ch) says: Since it is quite common for many characters to have the same height, depth, or italic correction, the TFM format imposes a limit of 16 different heights, 16 different depoths, and 64 different italic corrections. So it is possible that some heights and depths (and italic corrections) have to be rounded. This rounding is done by the `afm2tfm' utilitity (shipped with dvips shipped with teTeX) automatically. 58. dump256.tex should set \hsize and \vsize in dump256.tex to avoid premature page breaks. """""""""""""""""""""" It isn't necessary, because we use \shipout to write pages to the DVI files, and \vsize doesn't affect the \vbox created in dump256.tex. \hsize is set explicitly to be correct. 59. Some (error?) messages `fatal: zero determinant of C0*C1.' appear when traceall.sh runs autotrace. What to do? """"""""""""""""""""""""""""""""""""""" (reported by Werner Lemberg) Example message: > gs -d_n=252 -dNODISPLAY -q tmp/gstderr.ps trace2.ps > autotrace tmp/tmp_char.pbm -filter-iterations 9 -background-color FFFFFF fatal: zero determinant of C0*C1. > autotrace tmp/tmp_char.pbm -filter-iterations 0 -background-color FFFFFF fatal: zero determinant of C0*C1. > autotrace tmp/tmp_char.pbm -filter-iterations 9 -output-format bps Please ignore autotrace errors above. Everything is OK. The `Please ignore...' messages indicates that although there were some errors, traceall.sh managed to work around them. So everything is OK, and the generated font will be absolutely correct. If the `Please ignore...' message doesn't appear, then autotrace failed for the glyph, and a blank glyph is inserted into the .pfb file. See whatfail.log and mapfail.log for details. 60. Is TeXtrace Y2K compatible? """"""""""""""""""""""""""""""" Yes, it is. That's because it doesn't operate on dates and time. 61. Is TeXtrace byte order (endianness) independent? """""""""""""""""""""""""""""""""""""""""""""""""""" Yes, it has been run on both endians: IBM PC and PowerPC, SPARC Ultra-2 62. Does TeXtrace produce the same fonts on all machines? """"""""""""""""""""""""""""""""""""""""""""""""""""""""" No, but it produces very similar output. That's because: -- different machines can have different versions of the original fonts installed -- different versions of Ghostscript render the same .ps file differently -- Ghostscript uses floating point arithmetic, which is architecture-dependent There should only be _small_ numeric differences in the files tmp/tmp_gen1.gsx when running on different machines. If these files are very different, please report it as a bug. Vocabulary ~~~~~~~~~~ -- character: any small and capital letter, numeral, punctuation symbol, other symbol, accent, accented letter (etc.) used in written, printed text. Most characters are available on typewriters and computer keyboards. -- glyph: the visible representation of a character. E.g the small letter `a' can be written in very different ways (look at `Times' and `Arial' for the difference). So a character can have multiple glyph representations. From now on, we'll be a little sloppy: we'll use the words `character' and `glyph' interchangebly, with the meaning of `glyph'. -- TeX: a computer typesetting system, designed by Donald Ervin Knuth, before 1978 (it has been extended alot, but not changed since then!). See http://www.ctan.org and texbook.tex for more details. -- typeface, font: a collection of glyphs with the same stylistic features. A latin font usually contains the 26 capital and 26 small letters, the 10 numerals, the symbols of the ASCII (code range 33..126) character set, plus some accented letters, plus some other symbols. Examples: `Times Italic', `Computer Modern Sans Serif Bold Extended'. -- font family: a collection of very similar fonts. These fonts are close variants of each other, they differ mainly in weight (e.g medium, demibold, bold), slantedness (e.g normal, slanted==oblique, italic) condensedness (e.g normal, condensed, extended), design size (see later, e.g 5pt, 10pt, 35.83pt) etc. Examples: `Times', `Arial' (also called as: `Helvectia', `Swiss', `Schwitzerland'), `Courier', `Computer Modern Roman', `Bodoni', `Garamond'. -- Metafont (MF): a declarative font creating prongram based on mathematical equations, by Donald Ervin Knuth. See http://www.ctan.org and mfbook.tex for more details. Most of the fonts used in TeX are are created with Metafont (e.g Computer Modern Roman, European Computer Modern Typewriter). -- raster image, bitmap image: a two-dimensional array of squares of equal size. Each square can have its own color. If the squares are small enough, the human eye cannot distinguish them, and sees a continous image. However, when the image is scaled to a large size, it becomes `squarey' and ugly. A raster image can be displayed quickly on a computer screen. -- vector image, vector outline, outline, outline image: a image composed of regions bounded by straight lines and curves (mostly splines and Bezier-curves). The outlines can be freely scaled without making them uglier. A vector outline must be converted to a raster image before displaying on a computer screen (this is called rendering). The outline of simple shapes (polygons, ellipses, glyphs, pie charts, other graphs, maps) need fewer bytes to store than their raster equivalents. Unfortunately, rendering the outline in very small pixel sizes (e.g lines 1--2 pixels wide), such as fonts on a computer monitor (but not on paper!) may produce ugly output. -- glyph raster: the raster representation of a glyph. Some font formats contain the glyphs as glyph raster (e.g .pk), rendered in a specific size (or sizes). -- glyph outline: the outline (visual) representation of a glyph. Most modern font formats (e.g .mf, .pfa, .pfb, .ttf, .otf) contain the glyphs as glyph outlines. -- to display, to render: to show on screen or to print (onto paper or a to a raster image) -- to scale a font with a factor: to make to glyphs of the font larger or smaller by the specified 1-dimension multiplication factor -- inch, in: 2.54 centimeters -- centimeter, cm: 1/2.54 inches -- point, pt: 1/72.27 inches == 2.54/72.27 centimeters -- big point, bp, PostScript point: 1/72 inches -- dot, pixel: the smallest rectangular area whose color can be changed independently of other pixels on the screen, paper or image. -- DPI: dots (pixels) per inch (as a rendering resolution). -- design size: each font has a design size (measured in pt; 72.27pt==1in, 2.54cm==1in). The font is designed to look best when displayed at its design size. Of course most fonts can be scaled -- so they can be displayed in any size, but the scaled versions may be unreadable in small sizes, and may be ugly (e.g too thick) in large sizes. So professional font designers draw the same set of glyphs in multiple design sizes -- or write font programs which generate the font in multiple desing sizes. (That's what Knuth did when he drew the Computer Modern font families: the (font designed at 5pt) scaled to 10pt is wider than the (font designed at 10pt).) Common design sizes used in TeX: 5pt, 6pt, 7pt, 8pt, 9pt, 10pt, 10.95pt, 14.40pt, 17.28pt, 20.74pt, 24.88pt, 29.86pt, 35.83pt. Common design sizes used in 2001's common other (WYSIWYG) word processors: only 10pt (!). -- Unicode: a list of 65536 characters (not glyphs!), containing all the characters used in the world (main excaptions: Chinese, Japanese, Korean). Normal TeX doesn't support Unicode, but the Unicode-extended TeX, called Omega, is available from CTAN. TeXtrace doesn't support Unicode or Omega. -- Unicode font: a font with Unicode-encoded glyphs. Of course not all the 65536 possible glyphs must be present. A typical latin Unicode font contains 250 glyphs (such as most free fonts shipped with teTex), and a typical very rich, professional typographic latin Unicode font contains 1200 glyphs (some very expensive, commercial fonts). Common Unicode font formats: .ttf, .otf. TeX doesn't suppurt Unicode fonts directly. TeXtrace doesn't support Unicode fonts at all. -- encoding, encoding vector: an arbitrary list of 256 characters. The encoding vector selects 256 glyphs of a font. In TeX, only those glyphs can be used that are available in the encoding. Of course it is possible to use the same font file with multiple encodings, but TeX will treat these 2 selections as two completely different fonts. (So an explicit control sequence (\...) is needed to switch between them, words intermixing the 2 fonts cannot be automatically hyphenated, kerning pairs and ligatures are not found etc.) TeXtrace doesn't have to deal with encodings, because it converts only outlines: every glyph is left in its original position, so the .tex files using the fonts produced by TeXtrace will work exactly the same way as .tex files using the original version of the font. -- hinting: a mechanism for displaying glyphs in small resolution. `Small resolution' means 5--20 pixels for each glyph (typically: 10pt fonts on a 72 DPI monitor). Hinting doesn't effect printing, because printing occurs mostly in large resolutions (300--1200 DPI). Hinting greatly effects screen displaying of glyphs, because a typical computer screen has a resolution of 72--100 DPI. So when a font looks ugly and unreadable on screen, it might print beautifully. -- hinting information: additional techical information along the glyph outline which helps rendering that glyph in small resolution. Visually pleasing hinting is almost impossible without proper hinting information. Fonts converted by TeXtrace don't contain any hinting information. That's because that information is not available in the original fonts, so TeXtrace would have to *guess* it. *Guessing* the hinting information is an especially difficult task, and requires good mathematical theory knowledge and practice in 2-dimensional outline processing, which the author of TeXtrace doesn't possess. It seems that the lack of hinting information isn't as serious as it is thought to be. In fact, there is no significant difference in Acrobat Reader when hinting is removed from cmr10. See FAQ answer 52. -- antialising: using multiple shades (of black) to smooth color boundaries when displaying an outline in a small resolution. Antialiasing makes the 10pt fonts readable on screen even without hinting. Antialiasing can be done blindly, no additional `antialiasing information' is needed. xdvi, gv (with State/Antialias), gs 6.50, acroread, Flash Player, NT 4.0 font renderer and ATM support antialiasing. Web browsers, XFree86 and gs <=6.50 don't. -- outline rendering: converting a vector outline to a raster image. The larger resolution of the raster image, the better it approximates approximates the original. -- tracing: converting a raster image to a vector outline. The larger the resolution of the raster image, the better the vector outline approximates the original. Tracing is especially hard when the input is not 2-colored or noisy (e.g medieval codexes, books printed in Gutenberg's age (1400--1500 AD)). In such cases, traces cannot be automated, so each shape is traced manually, with months of human work. For correctly tracing old fonts, having a copy of a printed book (with thousands copies of the glyphs) is not enough: scientific, historical and artistic knowledge is needed about the age the font was designed in. Such tracing problems don't occur with TeXtrace, because TeXtrace renders the fonts in a size large enough for faithful, automated tracing. -- PostScript: a human-readable and writable, interpreted programming language developed by Adobe near 1985 for representing characters, 2-dimensional vector outlines and raster images (in color!) in an exact, unambigious and platform-independent form. A PostScript program typically runs on a smart printer (not on a personal computer! -- except for gs, Acrobat Distiller and some others), and the result of the PostScript program is the pages the printer outputs. The same PostScript program should produce visually same output when run on different printers. PostScript programs are typically not written by hand, but produced by other utilites (e.g dvips, vector drawing utilities (such as CorelDRAW!), Windows PostScript printer drivers). Extension is .ps. When running PostScript programs, tons of compatibility problems and printer memory problems (<512Kb!) may arise. -- PostScript interpreter: the program that interprets (runs) a PostScript program -- PDF: a compact, binary, often compressed file format which describes what and how to print to the page. PDF and PostScript are equivalent in displaying capabilities. The main difference between PostScript and PDF is that there is no programming support in PDF. Most .pdf files can be displayed by e.g gs and gv, all .pdf files can be displayed by acroread (running on Win32, Mac, Linux and some other Unices). PDF files can be generated by e.g gs, acrodist, pdftex, pdflatex. PDF files have much less compatibility problems than PostScript program files. PDF files are usually compressed by default, so they shouldn't be .zip-ped. -- PostScript font: a font that a PostScript interpreter understands, and can make available for PostScript programs. Most .pfa, .pfb, .gsf, .ttf font files are OK, but it depends on the actual interpreter. -- PostScript Type1 font: a special PostScript font format. The Type1 font file is a PostScript program itself, directly executable by *any* PostScript interpreter (because the format is defined in one of the earliest PostScript standards by Adobe). The structure and the allowed instructions in Type1 fonts is documented in Adobe's t1_spec.pdf, available from www.adobe.com. The Type1 font format the greatest common denominator of of PostScript fonts, because it is understood by every PostScript interpereter. A Type1 font can contain only glyph outlines, not glyph rasters. -- PostScript Type3 font: a freestyle PostScript font format. The Type3 glyphs can contain anything that is possible in PostScript itself. The main disadvantage is that hinting isn't supported, and acroread displays Type3 fonts ugly. dvips and pdftex generates Type3 fonts by default when the font is available only in .pk format. (Of course when it's available in Type1, that Type1 representation is used.) -- ATM, Adobe Type Manager: a utility for displaying and using Type1 fonts under Windows and Mac. -- bounding box of an outline: the coordinates of the smallest rectangle into which the outline fits -- font bounding box: the smallest rectangle all glyph outlines fit into -- kerning pair: a pair of glyphs and a horizontal distance: when these two glyphs are typeset in front of each other, they must be put nearer or farther. Examples: capital letter P and comma. -- ligature: ... see texbook.tex -- composite glyph: a glyph composed of other glyphs. E.g /aacute (the latin small letter `a' with `acute' accent) is composed of /a and /acute, with /acute correctly shifted into its appropriate place. -- UniqueID: see FAQ answer 47. -- boundary character: (by Werner Lemberg) a dummy character used as a placeholder in TFM ligature rules to symbolize a word boundary. See mfbook.tex for details. In TeX, use \noboundary to suppress this ligature. Technical stuff ~~~~~~~~~~~~~~~ autotrace: 0 0 0 0 k % white 0 0 0 1 k % black for N in fail*.pbm.gz; do convert "$N" -flip ti.pbm; convert "$N" -flop \ to.pbm; autotrace -background-color ffffff ti.pbm >ti.ps || autotrace \ -background-color ffffff to.pbm >to.ps || echo "$N"; done # ^^^ only fail12.pbm Perl script that corrects autotrace's .eps output: 0. Call autotrace without `-background-color ffffff'. (This will be much slower??) 1. Remember '%%BoundingBox: ' 2. Ignore everything up to '%%EndSetup'. 3. Ensure that white (0 0 0 0) was chosen as background. 4. Remove the 1st rectangle that paints the whole canvas as white. 5. Remove 'u*', 'f', 'U*'. 6. Err out on 'K', 'S'. (what's list.open in autotrace's output-eps.c??) 7. Err out on 'F'. (Really. It's not produced by autotrace. Examined output-eps.c) 8. A sub-path is started by 'X Y m'. A sub-path is finished by 'f'. Reversing a subpath is a little tricky: involves 'm', 'l' and 'c'. 10. Remember last color (0 0 0 0 k: white, 0 0 0 1 k: black, other: err out). 11. Make black sub-paths counter-clockwise, make white sub-paths clockwise (this is (mostly exactly) what Adobe's t1_spec.pdf, section 3.5 says). (Corresponding to Adobe's `non-zero winding number' rule, as used by the PostScript /fill operator and Type1 fonts -- contrary to PostScript /eofill operator.) 12. Drop subpaths involving only one or only a few pixels. (These subpaths cause all the bugs of `-background-color ffffff'??) Drop subpath having less than 3 points. 13. autotrace always produces non-self-intersecting sub-paths. How to determine that a non-self-intersectung sub-path with >=3 points is clockwise or not? -> Get one of the upmost points (T) and T's follower point (U). The path is clockwise iff U is to the right (and possibly down) from T. --- ./type1fix.pl change.pfb pfb: change2.pfb --set-glyph='/g{0 500 hsbw 0 0 rmoveto 500 hlineto 500 vlineto -500 hlineto closepath endchar}' ./type1fix.pl change.pfb pfb: change2.pfb --set-glyph='103{0 500 hsbw 0 0 rmoveto 500 hlineto 500 vlineto -500 hlineto closepath endchar}105{0 500 hsbw 0 0 rmoveto 500 hlineto 500 vlineto -500 hlineto closepath endchar}' --gsf-human --pack ./type1fix.pl change.pfb gsf: change2.gsf --gsf-human --pack Additional utilities: -- convert PFB to PFA -- convert PFA to PFB -- extract /Encoding in PFA/PFB (into ENC): use type1fix.pl --outencfile -- extract /Encoding in AFM (into ENC): use afm2enc.pl -- change/override /Encoding of PFA/PFB according to ENC: use type1fixpl --inencfile -- change/override /Encoding of AFM according to ENC: use afm2enc.pl Thanks ~~~~~~ Werner Lemberg -- reported BUG12, requested xdelta, reported minor bugs Bob Tennent -- musixtex developer, reported many bugs, BUG13 (Laserjet 5M and a 4050TN), BUG03 Robin Fairbairns -- CTAN maintainer, reported BUG11 Lionel Fourquaux -- added Win32 support for afm2pfm, implemented rleman.pl in C. Berthold Crysmann -- reported BUG13 (HP 8000 PS) Sherlock Holmes (Gerben) -- requested zsh support, maintains a teTeX-pdftex-gs distribution for Mac OS X, in contact with Thomas Esser Apostolos Syropoulos -- reported a variant of BUG11 and possible fixes, reported BUG17. ChangeLog for TeXtrace ~~~~~~~~~~~~~~~~~~~~~~ This ChangeLog is in decreasing-time order. So more recent releases come first. 0.48 """" small bugs fixed Tue Dec 4 16:43:46 MET 2001 Fixed bugs: BUG20. (reported by Gerben Wierda) DPI settings were not correctly detected (do_finddpi) 0.47 """" small buglets fixed Mon Sep 17 17:26:19 CEST 2001 0.46 """" Tue Jun 26 18:14:26 CEST 2001 Mon Aug 13 10:36:12 CEST 2001 Useful addons: -- added option --debug-warnings to type1fix.pl, (traceall.sh makes use of this) -- added options --inencfile to type1fix.pl -- added utilities contrib/pfa2pfb.pl, contrib/pfb2pfa.pl. Updated FAQ answers 13, 16, 16b. -- added utilities contrib/afm2enc.pl, contrib/afmreenc.pl. Updated FAQ answers 13. Technical changes: -- (requested by Berthold Crysmann, Takanori Uchiyama) added `--em N' switch to traceall.sh to set tracing resolution. Default: N==1000. N==500 means: 72270 -> 36135 xrevscale 0.002 yrevscale 0.002 This is just like the method described by Takanori Uchiyama. -- added option --set-uniqueid to type1fix.pl -- added option --kill-unenc to type1fix.pl -- type1fix.pl's version number is now 0.06. -- improved contrib/t12afm.sh (now makes FontName correct in AFM) -- added `Please ignore autotrace errors above. Everything is OK.' to traceall.sh. -- (by Werner Lemberg) added \noboundary to dump256.tex. The fontchart.tex file distributed with e.g. teTeX suffers the same problem. testfont.tex works, though. -- added option --chk-insize to type1fix.pl; traceall.sh uses this option. Unfixed bugs: BUG16. (reported by Berthold Crysmann) Your font naming scheme (renaming ec* to fc*) conflicts with already existing TeX fonts, namely Jörg Knappen's fc fonts for type setting African languages. It might be better to stick with the original name, to avoid confusion. BUG18. (reported by Berthold Crysmann) Some people have problem when running dvips with large fonts when font subsetting is switched on (dvips -j). The solution: use `dvips -j0'. This is most likely a dvips problem, not a TeXtrace problem, but since TeXtrace's author wasn't able to reproduce it yet, he cannot fix it. Werner Lemberg says that any dvips >=5.80 should work with both -j and -j0. 5.78, 5.76d is known to be broken. BUG19. (reported by Berthold Crysmann) I've just noticed a bug in textrace 0.45 which you might want to fix before the next release. With slanted or italic font shapes, some characters get truncated, in particular j, f, fi,ffl etc. What happens is that the serif at the bottom (the little "dot") gets chopped off at the left. This bug does not appear to affect characters like y, where the descender does not protrude. The author of TeXtrace examined fcti1000.pfb and fcsl1000.pfb, and found all the glyphs j, fi, fi, ffl and y correct. So the bug doesn't seem to exist. 0.45 """" Sat Jun 16 15:38:37 CEST 2001 Fri Jun 22 20:38:04 CEST 2001 Technical changes: -- added homepage (see FAQ answer 4) -- doc cleanups, addons, 5 more FAQ answers -- added contrib/product.ps -- added option `--kill-hints' to type1fix.pl: it removes hinting information from the input file. -- added option `--dump-spaces' to type1fix.pl: specifies whether to dump spaces at line beginnings (default: yes, traceall.sh: no) -- added Russian (lh, Computer Modern Cyrillic) fonts to contrib/lhpfb.map -- TeXtrace now produces somewhat compacter fonts because type1fix.pl omits the spaces at line beginnings -- added examples/vdiffer.tex, examples/vdiffer.pdf, see FAQ answer 53. -- removed examples/differ.pdf to reduce confusion, see FAQ answer 55. Missing features: -- (requested by Werner Lemberg) in spite of the fact that the encoding vector isn't important, it doesn't look nice to have a completely incorrect encoding vector. For example, I've just converted the Cyrillic font lacc1000 which has T2A encoding, and I would like to use the real glyph names. What about an option for traceall.sh to speciy an encoding vector? Fixed bugs: BUG10. (This bug was related to musixtex, but it isn't really a TeXtrace bug, so it got moved to FAQ answer 44.) BUG13. .pfb files generated by TeXtrace don't print in HP4050 PostScript mode. This is reported to be fixed for many HP printers. The author of TeXtrace confirmed that it now works with HP4050 since 0.44. BUG16. (reported by Werner Lemberg) compile_autotrace.sh should abort if the configure script fails, but it didn't. Now it does. BUG09. musix16.mf of MusicTeX gets prematurely cropped (reported by Bob Tennent). This shouldn't happen with the new bounding-box algorithm, which is the default since 0.43, but it didn't. In fact, the problem was that negative llx of the bounding box got cropped to zero, so the left side of some glyphs got chopped. This got corrected in (finally?) in 0.45. BUG15. (reported by Werner Lemberg) Please convert the font lacc1000 (a Russian font) and look at inverted double accent and ogonek glyph -- the code clips the glyphs at the left side of metric box (as specified within the TFM) which is incorrect. The reason is the same as for BUG09. BUG17. (reported by Apostolos Syropoulos) You must definetely add to type1fix.pl: 0 1 255 {1 index exch /.notdef put} for The specification says that this must be included! (I suppose that this is the Type1 specification...) Added. 0.44 """" Tue Jun 12 12:52:36 CEST 2001 2001.06.14. Fixed bugs: BUG11. Now works correctly with dvips+acrodist[34]. (Added glitch-elimination into type1fix.pl.) BUG12. Glitch (unwanted feature) on the top of letter `o' (111) in ecrm1000. The reason was: integer rounding errors added up while walking thru the subpath. Solution: round the absolute coordinates, not their relative distances! Bug reported by Werner Lemberg. BUG14. Now works correctly in gs 6.50 (no more /invalidaccess errors). Technical changes: -- rearranged directory structure -- Applied patches from Lionel Fourquaux : added Win32 support for afm2pfm, implemented rleman.pl in C. -- made afm2pfm more portable -- but useless, see `Limitations' in its README. -- tracemap.sh is now an alias to `traceall.sh --map'. -- added compile_rleman.sh, now traceall.sh autodetects compiled rleman, and prefers it to the slow rleman.pl -- added compile_afm2pfm.sh -- misc technical fixes and improvements in traceall.sh: --map, --version, --product -- improved recovery from PostScript errors -- forced `ljfour' and 600 DPI in .dvipsrc. This isn't much important, because TeXtrace is DPI-independent in the sense that it generates visually _very_ similar (and equal quality) .pfb output with any DPI setting. But forcing a specific printer and resolution would make .pfb files _exactly_ the same between installations. 0.43 """" Thu May 31 16:23:10 CEST 2001 Mon Jun 4 14:10:29 CEST 2001 -- Faster operation, a speedup of a factor of 2.75, thanks to the new bounding-box scanner routine which produces images as large as they need to be. Comparisons on a Celeron 333Mhz, 128Mb RAM: old: ecrm1000 810s user 83874 bytes new: ecrm1000 293s user 83906 bytes -- Better temporary file handling. Temporary files are now put into the directory tmp. Also created directories doc/ and contrib/ and moved some files there. The script `clean_tmp.sh' is provided to remove the contents of tmp/. The file `clean_pk.log' is generated to remove .pk files generated by mktexpk run by dvips. -- tracemap.sh now accepts `%vvv UniqueID=4321000' lines in .map files. -- more docs Fixed bugs: BUG07. Removed ./xypic.map to reduce confusion. BUG08. Redirecting STDERR to a file didn't work, because the program echoed directly to /dev/tty. Now STDERR can be safely redirected. 0.42 """" misc bugfixes, more docs, testing Wed May 30 17:08:48 CEST 2001 Added: -- compile_autotrace.sh to automatically `configure' and compile the bundled autotrace-0.27ap, out of the box -- more cross-platform compatibility -- examples/pdftex.map to make examples/differ.tex compile out of the box -- Some small documentation fixes -- ChangeLog into README -- more categories on Freshmeat Fixed bugs: BUG01. Removed dependency of autofig from autotrace-0.27ap/Makefile BUG02. Changed `dvips' to `dvips -o' in various places of traceall.sh BUG03. Worked around Perl5.6 bug (changed 32766>65534 -> 32700) in rleman.pl BUG04. Worked around Perl5.6 warning in `Pts::File::find() called too early to check prototype at type1fix.pl line 3648' BUG05. Forcibly disabled zlib, libmagick, libpng and libming support in autotrace-0.27ap/configure, because of weird compilation problems in various system with missing/bad libs. (This increased TeXtrace's out-of-the-box portability and didn't decrease its functionality.) BUG06. Removed ./psfonts.map to reduce confusion. 0.41 """" misc small bugfixes Wed May 30 14:00:00 CEST 2001 0.40 """" initial Freshmeat announcement 28-May-2001 TODO for TeXtrace ~~~~~~~~~~~~~~~~~ These are technical TODO notes for the author. Others (non-TeXtrace-developers) are not expected to fully understand these. `Imp:' means: to be done `OK: ' means: already done Imp: disable font size check in type1fix Imp: allow arbitrary FontName in .map Imp: CTAN Imp: predel .pfb Imp: add /ZZZencoding [ .. ] def to .enc files Imp: prevent concurrent running of traceall.sh Imp: write EuroTeX 2001 article Imp: create EuroTeX 2001 presentation Imp: compare TeXtrace with others Imp: add mailing list at sourceforge Imp: add CVS Imp: add xdelta Imp: final Tt2001 Imp: multiple resoultion rendering (especially for musix11 and musix13) Imp: re-implement afm2pfm.c in Perl Imp: re-implement fgatm.pas in Perl Imp: more docs Imp: add musixtex fonts to contrib/ecpfb.map Imp: write a pfa -> pfb converter OK : warn if unknown glyph in /Encoding in type1fix.pl (Mon Jun 25 12:05:11 CEST 2001) OK : --set-uniqueid= to type1fix.pl (Mon Jun 25 12:05:19 CEST 2001) OK : re-implement FAQ answer 48 OK : add `thanks' etc. (Tue Jun 19 16:13:57 CEST 2001) OK : update examples/fcrm1000.pfb for 0.45 OK : path directions in autotrace's output-eps.c (Mon Jun 4 14:39:30 CEST 2001) OK : allow zsh instead of bash; for MacOS X (Sun Jun 3 13:47:47 CEST 2001) OK : fix UniqueID creation (Thu May 31 18:22:15 CEST 2001) OK : document pdftex.cfg `pdf12_compliant 1' \pdf...-be OK : update type1fix.pl on host winter: OK : ensure that Pts::T1cs::zeroer works in type1fix.pl (multiple rmoveto is OK in tmp/tmp_post.t1d, but not ok in .pfb) OK : verify contrib/mkdist.sh and files OK : fixed generated .pfb to be readable by buggy 3.14159-14f-released-20000525 in type1fix.pl OK : type1fix.pl internal poss sloooww??? ~/tex/t1ae/tf2ras/type1fix.pl --infile=tir_____.pfb --outfile=tir.gsf -ofmt=gsf OK : path directions (OK without `-output-format bps') OK : hwsb suxx for empty glyphs OK : auto bbox OK : remove negative hsbw from empty chars OK : ability remove temporary files after processing (Mon Jun 4 14:39:40 CEST 2001) OK : don't depend on fileutils, do everything with Perl OK : err out if utils missing from path OK : ship afm2pfm with TeXtrace (Sun May 27 12:04:21 CEST 2001) OK : ship autotrace with TeXtrace (Sun May 27 12:02:34 CEST 2001) OK : implement tfm2afm (with contrib/tfm2kpx.pl and contrib/t12afm.sh) OK : avoid autotrace bugs (but there are bugs that are impossible to avoid!) OK : hacked /usr/bin/mktexpk to generate bad fonts, too end of README.