ÿWPC1& ûÿ2ûBUR Z§ú3|ETimesHelvTymes Roman (Bold) (Glyphix)Helvenica (Bold) (Glyphix)Courier 10 pitchàGLYPHIX HP LJ II [paul]GLX.PRS.PRSô]i÷PÇE,ððh0“T»ôPŸÐÐÐÐX°` ¸ hÀpÈ xÐ (#€%Ø'0*ˆ,à.81�3è5@8˜:ðE!/ S”gòãyÂ!ûÿ2!!/&"â„ÿÿ¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿLÿÿÿÿÿÿ^pKO±u¶¶8YYu¿8K8=uuuuuuuuuuAA¿¿¿påšš£­šŒ±¶]u±•Û­¶‘¶¨‡‘¨‘Ò£•šbubéu8u~g~gKpƒFK~FɃu~ybbOƒk•pkguuuéÏuuuuuuuu~šušušušu•uÛ££gšgšgšgšg]F]F]F]F­ƒ¶u¶u¶u¶u¨ƒ¨ƒ¨ƒ¨ƒ•kšu­~¶u¶u•k‘~šušušu£u£ušušušu±u±u±u¶ƒ¶ƒu~u~uuu•u•F¶ub‡u‘u¨ƒ¨ƒ¨ƒÒ••ušg*NŸ8uuKpyyu•uY»»uK¿¿Œ»KppuéKK¶uu¿¶Ÿ¿ŒÉÒŒŒà8péOßééÛ¿ƒ¶¶¿ÍÍ¿ÍÍÍÍ¿ÍÛÍÍÍÛ££ÍÍé¿ÍÍÍÍ£¶£¶¿ÍÛ¿¶¿¶¶¶é¨¿¿éÒéééééééé¿u8]‡ššééééééééé¿ééééééééééééuéééÍéééééééé騃šé¨éé¶¶¶¶¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿é¿ébÍéÍééééééééééééuéééééÍÍééééééééÛéÛéééééÐ °°HH ÐÐ °°HH ÐÙÙÕHÈôóÁ`�$bÁCopyright ÀÀ 1990 by Paul M. Friedman ƒHÕThis file is copyrighted. You may use this file or a hard copy of it for any non©commercial purpose. If you add or change anything (even my errors), please note your changes. (It's bad enough to be responsible for my own mistakes.) If you want to use this commercially, you are not only showing a severe lack of judgement (À ÀI paid money for THAT?ÀÀ), but also remember the copyright. Please obtain my permission first. Fonts used in this file have been kept at a minimum to reduce the required reformatting. Fonts used are: ÁììÁTimes Roman 10 point Ô rVx ÔÁììÁà ÃTimes Roman 10 point BoldÄ Ä Ô  j@ ÔÁììÁÑ#¼ƒi÷PÇE?Þ¼P#Ñà ÃTimes Roman 14 Point BoldÄ Ä Ô rVJ Ô¤ììÂÑ#ô] ¦SPzE÷ôP#ÑHelvetica 10 pointÆ�$ìÆ Ô –2 ÔÁììÁÑ#ôx Œ @ɧÍÇ;"X@#ÑCourier 10 CPIÑ#ô]i÷PÇE)ÚôP#Ñ I've even turned kerning off (shudder) for the same reason. The only symbols used not found in the ASCII symbol set are typographic quotation marks and the copyright symbol. Also please note that the header includes a À Àpage x of yÀÀ type page number. You should either regenerate the reference (ALT©F5,G,G) or delete the header prior to printing this document. One final formatting note. The document (after this introductory page) is formatted in newspaper columns. If your printer does an imitation of cold molasses when printing columns (The DeskJet, for example), you might want to delete the [Col On] code. Enjoy, Paul Friedman× ENDIT × National Benefit Resources CI$ 76424,1252Ôr-p+p+HHÔ Ô  j ÔÕÈÕÕ�Ê/¨ðÔ rX ÔÁ`À�$bÁÑ#ô] ¦SPzE÷ôP#ÑSoft ÃÃÄÄFonts & WordPerfect page  of × ENDIT9 ׃�ÕÓ  ÓÁà‚ ì3Áà ÃÑ#¼ƒi÷PÇE?Þ¼P#ÑA Short Course on WordPerfect and Soft FontsÑ#ô]i÷PÇE)ÚôP#ÑÄ Äƒ ÒÆH¾�$ÆÒ‡This note is written for the Hewlett Packard LaserJet II (and clones). Most of what follows will be equally true for the LaserJet Plus. The Plus does have a few more limitations, though. (Number of fonts per page is an example.) The LaserJet IIP can do a few extra things that the II can't (like rotate portrait fonts to landscape), but everything that follows should work for the IIP. I think everything here should work for the III, but I haven't had a chance to find out. If you would like to contribute a III, I'll be happy to test it out and let you know. Some of the informa¬tion may be useful for the DeskJet or other types of printers, but be careful. Also be warned that I'm by no means an expert on this subject. Most of what follows comes from empirical evidence. That's a nice way of saying trial and error or I pusha da button and see what happens. All fonts (soft, cartridge, and internal) are controlled by PCL. That's HP's Printer Control Language. It also is how you control everything else related to the LaserJet. You'll need to know a little about this language to understand how you get the LaserJet to print the char­acter you want in the font you want. You'll also need to know some of WordPerfect Printer Definition Lan­šguage (WPDL) to learn how to get WordPerfect (or PlanPerfect) to get PCL to do your bidding. That can wait. Right now, we are just talking about PCL. To use a soft font, there are two steps: 1)¤ììÂDownload the font from your hard disk to the printer's memory. 2)¤��ÂTell the printer to select the soft font.Æ�Æ PCL has one command to download and gives you three ways to select the font. It's almost time to get to the techie stuff, so let's get a few conventions straight right now. Ô rXJ ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]Ñ#ô]i÷PÇE)ÚôP#Ñ means ASCII character 27 and Ñ#ô] ¦SPzE÷ôP#Ñ[123]Ñ#ô]i÷PÇE)ÚôP#Ñ means šASCII character 123, etc. Certain characters can not be en¬štered directly from the keyboard, so that's how I'll Ô rX¤" Ôrepresent them. Ñ#ô] ¦SPzE÷ôP#Ñ[27]Ñ#ô]i÷PÇE)ÚôP#Ñ by the way is ESCAPE. You'll use that one a lot. # means a variable. It is usually a num­šber, but not always. It is always one character in length. ## means a variable of variable length. I'll make the length clear in the text (he said). Most importantly: Ô rVŽ& Ôà ÃCase counts. H means H. h means h. Watch out for l (el) and 1 (one) and 0 (zero) and O (oh). Ignore this at Ô rV( Ôyour own peril.Ä ÄÔ(-n+n+ÚÚÔ Ô rVÒ Ôà ÃDownloadingÄ Ä Ô rXš ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]*c##DÑ#ô]i÷PÇE)ÚôP#ÑÂ쪪_Â## is Font ID Number. It can be any number from 1 through 32,767. The soft font itself immedi¬ately follows. If you have previously downloaded a font with ID Number 666 (for ex­šample), you had better not download another soft font with ID Number 666. If you do the first one will be deleted from the printer's memory. Æ�$ªÆ Ô rVl Ôà ÃMaking a Soft Font PermanentÄ Ä Ô rX4 ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]*c##FÑ#ô]i÷PÇE)ÚôP#ÑÂ쪪_Â## is the Font ID Number. Soft fonts are treated as Temporary until and unless you issue this command subse­quent to downloading the soft font. Permanent really isn't permanent, by the way. (See, isn't this easy?) I sug­šgest you always make any and all soft fonts permanent unless you have a special reason for doing otherwise. If you have such a reason, you under­šstand this nonsense a lot better than I do, so WHY ARE YOU READING THIS? Æ�$ªÆ Ô rV& Ôà ÃDeleting a Soft FontÄ Ä Ô rXî ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]*c##d2FÑ#ô]i÷PÇE)ÚôP#ÑÂ쪪_Â## is the ever popular Font ID Num­šber. Æ�$ªÆ Ô rVH Ôà ÃDelete all Soft FontsÄ Ä Ô rV ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]*c0FÑ#ô]i÷PÇE)ÚôP#Ñ Ô rX  ÔÁà§aÁà ÃSelecting the FontÄ Äƒ Ô rVj Ôà ÃSelecting by ID (primary font)Ä Ä Ô rX2 ÔÑ#ô] ¦SPzE÷ôP#Ñ[27](##XÑ#ô]i÷PÇE)ÚôP#ÑÂHYÂRemember (hey, it's just a few lines up!), when a soft font is downloaded you as­šsigned it an ID Number. The ## is simply that ID number. Æ�$Æ Ô rV! Ôà ÃSelecting by ID (secondary font)Ä Ä Ô rXä! ÔÑ#ô] ¦SPzE÷ôP#Ñ[27])##XÑ#ô]i÷PÇE)ÚôP#ÑÂHYÂThe only difference is À À)ÀÀ rather than À À(ÀÀ. Now that you know that, you can ignore secondary fonts. But watch out for a pop quiz. If you really want to play with primary and secondary fonts, once you've select a font as secondary you can tell the printer to use it by sending it the simple command: Ô rX^' ÔÑ#ô] ¦SPzE÷ôP#Ñ[14]Ñ#ô]i÷PÇE)ÚôP#Ñ and reselect the primary font with Ñ#ô] ¦SPzE÷ôP#Ñ[15].Ñ#ô]i÷PÇE)ÚôP#ÑÔ8^'-n+n+ÚÚæ(1Ò0n+n+ÚÚ8Ô Ô rV Ôà ÃSelecting by DescriptionÄ ÄÆ�Æ Each soft font contains a À ÀheaderÀÀ which the LaserJet reads to determine certain information. These are, in priority order (high to low): ÁììÁOrientation ÁììÁSymbol Set ÁììÁSpacing ÁììÁPitch ÁììÁHeight ÁììÁStyle ÁììÁWeight ÁììÁTypeface If the printer finds more than one font which matches the description, it uses another priority list to make the selection. Again, from highest to lowest priority: ÁììÁLowest Soft Font ID ÁììÁ... ÁììÁHighest Soft Font ID ÁììÁLeft Cartridge ÁììÁRight Cartridge ÁììÁInternal In theory, all you need to do is describe the font in sufficient detail to make it unique and the printer will pick the right font. Also, in theory, you only need to tell the printer the differences between the font you want and the currently selected font. For example, let's say the currently selected font is Portrait and its symbol set is ASCII. Only one currently downloaded font has a Roman8 symbol set. All you need to do is tell the print­šer that you want the Roman8 symbol set. The problem with this is that you no only need to know the current font's description, but also that for all other currently downloaded fonts and all cartridge fonts and all inter­šnal fonts. For this reason, it makes sense to always issue the full description. OK, its time to define all of those header items. Ô rVè Ôà ÃOrientationÄ Ä Â¤ììÂUsually just two choices Portrait and Landscape. The III might also be able to handle Reverse Portrait and Reverse Landscape. I don't know. My offer still stands. Buy one for me and I'll be happy to provide you with all sorts of important information.ÆìÆ Ô rV`" Ôà ÃSymbol SetÄ Ä Â¤ììÂThis describes the characters contained in the font. ASCII is basically the characters you can get directly from your keyboard. PC©8 is the ASCII set plus the characters you can get by holding down the ALT key and entering numbers on the key pad. There are all sorts of symbol sets. There are at least 40 symbol sets defined by Hewlett Packard. But you are not limited to these. You can (and font makers have) freely add to this list. There are certain symbol sets which the Plus canÔ0*-n+n+ÚÚÔ not handle. It has trouble with characters located in À Àindex positionsÀÀ in a font. These are 0©32 and 128©159.Æ�$bÆ Ô rVX Ôà ÃSpacingÄ Ä Â¤bbSÂOnly two choices. Proportional and fixed. Propor­štionally spaced fonts assign different widths to different characters. The narrowest alphabetical character is usually À ÀiÀÀ and the widest is fre­šquently À ÀMÀÀ. A fixed space font have the same amount of space for each character and therefore sometimes called monospaced.Æ�$bÆ Ô rV˜ Ôà ÃPitchÄ Ä Â¤bbSÂThis is used for fixed space fonts only. It is the number of characters per inch (CPI). So 10 pitch means exactly the same as 10 CPI. Since propor­štionally spaced fonts have, by definition, a differ­ent number of CPI depending on the characters printed, this part of the description is simply šskipped for proportional fonts. OK, POP QUIZ TIME: What happens if you call for a font and assign it propor¬tional spacing and a pitch? A) you feel dumb. B) a proportional font is chosen. C) a monospaced font is chosen D) your printer blows up. The answer is B (and maybe A). Why? Be­šcause of the priorities assigned to each type of description. (See above & PAY ATTENTION) Spacing has a higher priority than Pitch. So once you ask for a proportional font, assigning a pitch has no effect (assuming you have at least one proportional font in the requested Symbol Set and Orientation. Got it? Good.Æ�$bÆ Ô rV8 Ôà ÃHeightÄ Ä Â¤bbSÂThe height of the font in points. There's about 72 points per inch. By the way, the printer will find the closest match for both Pitch and Height. Re­šquesting a 14.2 point font when only a 14 and 15 point font is available will get you the 14 point one.Æ�$bÆ Ô rV° Ôà ÃStyleÄ Ä Â¤bbSÂAs far as I know, there are only two choices here: Upright and Italic. Slanted and Oblique count as Italic, by the way.Æ�$bÆ Ô rVÐ Ôà ÃWeightÄ Ä Â¤bbSÂThe heavier the font the larger the number. Nor­šmal Weight is 0. I don't know what the absolute limits are, but the lightest I've seen is ©7 and the heaviest is 7. That gives you 15 Weights to choose from, which should be enough.Æ�$bÆ Ô rV€% Ôà ÃTypefaceÄ Ä Â¤bbSÂWhat the font looks like. Times Roman, Courier, Goudy Old Style, etc. Many people use the word À ÀfontÀÀ when they mean Typeface. As you can see, your printer considers this the least important part of the font description. To sound with it, say face rather than typeface.Æ�$bÆÔ80*-n+n+ÚÚø*ii3n+n+ÚÚ8ÔŒ™Now, how do you tell the LaserJet about all those things. With PCL, of course. Details follow: Ô rVX Ôà ÃOrientationÄ ÄÁ44ÁÑ#ô] ¦SPzE÷ôP#Ñ[27]&l#OÑ#ô]i÷PÇE)ÚôP#Ñ That's a small l not the number and a capi¬tal O, not the number. Portrait is 0 (the number) and Land¬scape Ô rX° Ôis 1 (also the num¬šber). So Portrait is šÑ#ô] ¦SPzE÷ôP#Ñ[27]&l0OÑ#ô]i÷PÇE)ÚôP#Ñ and Ô rXz ÔLandscape is Ñ#ô] ¦SPzE÷ôP#Ñš[27]&l1OÑ#ô]i÷PÇE)ÚôP#Ñ. Ô rV  Ôà ÃSymbol SetÄ ÄÁ44ÁÑ#ô] ¦SPzE÷ôP#Ñ[27](##Ñ#ô]i÷PÇE)ÚôP#Ñ This is the only part of the description which does not have a trailing character. OK, OK, You've found a mistake. If you use secondary fonts (for reasons best known to you) the command is [27]). If you take a look at the way you call primary and secondary fonts, you'll see this actually makes some sense. The symbol set is always two or three characters long; 1 or 2 numbers, fol¬lowed by one letter. So of the more common symbol sets and their corresponding ID's are: ÁììÁASCIIÁ@X4Á0Uƒ ÁììÁMath©8Á@D4Á0Mƒ ÁììÁECMA94Á@b4Á0Nƒ ÁììÁLegalÁ@X4Á1Uƒ ÁììÁRoman8Á@X4Á8Uƒ ÁììÁPC©8Á@a�Á10Uƒ Ô rVT Ôà ÃSpacingÄ ÄÁ��ÁÑ#ô] ¦SPzE÷ôP#Ñ[27](s#PÑ#ô]i÷PÇE)ÚôP#Ñ 0 (zero) is fixed 1 (one) is proportional I refuse to tell you how to do this for second¬šary fonts. If you can't figure it out, you should be follow by suggest and not using them. I'm going to ignore secondary fonts from now on. (thank heavens says the gen¬štle reader). Think P for proportional. Ô rV” Ôà ÃPitchÄ ÄÁ��ÁÑ#ô] ¦SPzE÷ôP#Ñ[27](s##HÑ#ô]i÷PÇE)ÚôP#Ñ ## is an variable length number. An embedded deci­Ô rX$ Ômal point is allowed. Ñ#ô] ¦SPzE÷ôP#Ñ[27](s16.66HÑ#ô]i÷PÇE)ÚôP#Ñ gets you a font with 16.66 characters per inch. That, by the way, is the pitch of one of the world's ugli¬šest fonts, the šLaserJets inter­nal Line Printer font. Think H for hori¬šzontal size Ô rV Ôà ÃHeightÄ ÄÁ��ÁÑ#ô] ¦SPzE÷ôP#Ñ[27](s##V Ô pXÖ ÔÑ#ô]i÷PÇE)ÚôP#Ñ## is an variable length number. An embedded deci­šmal point is allowed. This number is simply the point size. So [27](s8V is 8 points and š[27](s150.66V is big. Think V for vertical size. Have you noticed that the only difference be¬štween the chara¬šcter stream for Pitch and the one for Height is the trailing character. The same is true for all descriptive ele¬šments except Orienta­štion and Symbol Set. Check Spacing above if you don't believe me.Ô'-n+n+ÚÚÔ Ô rV Ôà ÃStyleÄ ÄÁbbSÁÑ#ô] ¦SPzE÷ôP#Ñ[27](s#S Ô pXÈ ÔÑ#ô]i÷PÇE)ÚôP#Ñ# is 0 (zero) for upright or normal and 1 (one) for Ô rX� ÔItalic. Therefor Ñ#ô] ¦SPzE÷ôP#Ñ[27](s0SÑ#ô]i÷PÇE)ÚôP#Ñ is normal and šÑ#ô] ¦SPzE÷ôP#Ñ[27](s1S Ñ#ô]i÷PÇE)ÚôP#Ñis Italic. Think S for Style (Sorry it was the best I could do.) Ô rV² Ôà ÃWeightÄ ÄÁYÁÑ#ô] ¦SPzE÷ôP#Ñ[27](s#B Ô rXz ÔÑ#ô]i÷PÇE)ÚôP#Ñ# is a number from ©7 to 7. Ñ#ô] ¦SPzE÷ôP#Ñ[27](s3BÑ#ô]i÷PÇE)ÚôP#Ñ is bold. Think B for bold. Ô rVÔ Ôà ÃTypefaceÄ ÄÁYÁÑ#ô] ¦SPzE÷ôP#Ñ[27](s##T Ô pXœ ÔÑ#ô]i÷PÇE)ÚôP#Ñ## is a number from 0 to 255 (That's one byte for the bit©crunchers out šthere.) The IIP and the III can handle two byte num¬šbers (0 to 32767) just in case you need more than 256 typefaces. šHewlett Packard has assigned certain numbers to certain typefaces, but be warned that many font suppliers (particu¬larly public domain) Ô rXL Ôignore this fact. In case you are interested Ñ#ô] ¦SPzE÷ôP#Ñ[27](s5TÑ#ô]i÷PÇE)ÚôP#Ñ asks for Times Roman. Think T for Typeface. Now here's a trick to reduce the number of ESCAPEs Ô rXn ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]Ñ#ô]i÷PÇE)ÚôP#Ñ you need to send. Remember I pointed out that from the Spacing on down all the descriptive elements ended in a capital letter. Change this to a minuscule (That means small, but as we are become font jockeys, we'll pretend we know typography also.) and you don't Ô rXX Ôneed to send the next Ñ#ô] ¦SPzE÷ôP#Ñ[27](sÑ#ô]i÷PÇE)ÚôP#Ñ. You need to end the command string with a Capital letter to let the printer know that you done and what follows is not part of the command. Here we go: Portrait ASCII Proportional 12 point Upright Bold Times Roman Ô rVÒ ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]&l0O[27](0U[27](s1P[27](s12V[27](s0S[27](s3B Ô rXš Ô[27](s5TÑ#ô]i÷PÇE)ÚôP#Ñ or Ñ#ô] ¦SPzE÷ôP#Ñ[27]&l0O[27](0U[27](s1p12v0s3b5TÑ#ô]i÷PÇE)ÚôP#Ñ Ô rXd ÔWOW! Wasn't that easy? Notice that the first Ñ#ô] ¦SPzE÷ôP#Ñ[27](sÑ#ô]i÷PÇE)ÚôP#Ñ is re¬quired. If you use a capital rather than a minuscule letter in the middle the printer will never know about the remainder of the descriptive elements. It will think you're just sending it normal characters. Now you and your printer speak flawless PCL but I don't think most of your correspondents will understand something like 0b5T. Be careful. PCL doesn't take kindly to errors. Take a deep breath, relax (don't worry, be happy). Now that you speak PCL, we are going to make you trilingual by learning WPDL. That's WordPerfect Print­šer Definition Language in case you forgot. With this and a little knowledge of how to move around an ALL file inside PTR (WPCorp's program for changing or creating ALL files), we'll have you just dying to grab some soft fonts and install them in WP. Ô8v)-n+n+ÚÚÞ'� kn+n+ÚÚ8Ô Ô rX ÔÁà 1 %Áà ÃUtilitiesÄ Äƒ Before we do that, however, a short detour. You have the lovely soft font and have memorized all the useless information I've shoved at you. There are three pieces of information that you need before you can proceed: ¤ììÂA listing of which character is in where in the soft font is the first. Each font has 256 possible slots (numbered 0 through 255). I'll refer to these as index numbers.ÆìÆ Â¤ììÂA listing of the information in the font header. That's all that descriptor junk you just read about.ÆìÆ Â¤ììÂA listing of the widths of each character in the font. Unless, of course, you are working with a monospaced font. But they are so ugly, why both­er? I mean you spent a totally ridiculous amount of money and now you've read this boring docu­šment just to learn how to upload a font which looks like what comes out of an IBM Selectric?ÆìÆ Several utilities are available to assist you in obtaining this information. I recommend šWIDSCR.ARC which can be found in LIB 14 on WPSGA on good old šCompuserv for the spacing tables. Also on Compuserv, but over on the HP SIG (go HP©1) is a file named LISTFO.ARC which gives you both a nice printout of the characters and a listing of the font header informa­štion. There are other utilities which you might prefer. All that I ask is that if you download and use a share­ware utility, you pay for it! Ô rXÊ ÔÁàŽ 1 (Áà ÃPTRÄ Äƒ OK, here we go. You have the proportional spacing table; you have the font header informa¬tion; you have a lovely printout showing what character is at what index number. Time to load up WordPerfect's PTR program. The version of PTR which comes with 5.1 can only be used with 5.1©type ALL files; same for the version which came with WP 5.0. There are differences in the two programs, but except for Font Libraries we don't need to worry about these. If you are interested in learning more about the workings of this beast and WPDL, WPCorp sells a nice PTR manual for $20. Unfortun­šately, the 5.1 version isn't available at this time (April, 1990). The best way to learn how to add your own font defini­štions is to take a look a one already defined. So find an ALL file which has some soft fonts included. In many cases, there are various ways to accomplish the same thing. So the information in your ALL file may notÔ4*-n+n+ÚÚÔ exactly match what I'm going to be demonstrating. You should have no trouble following though. I assume you have PTR.EXE in the same directory that contains your ALL files (or have the directory which contains PTR.EXE on your DOS path. If so go to the directory which contains your ALL files. ¤bbSÂBackup your ALL file.Æ�$bÆ Â¤bbSÂMake sure you backup your ALL fileÆ�$bÆ Â¤bbSÂType PTR myfile.all Replace myfile.all with the name of the ALL file.Æ�$bÆ You'll see a listing of one or more printers. Cursor to the one you want and . You'll see a menu of 13 items. The only one we are going deal with is Fonts. Ô rX¸ ÔCursor to à ÃFontsÄ Ä and ¤bbSÂIf this is 5.1, you'll see a listing of Font Libraries. Pick the Soft Font library to which you want to add the soft font description.Æ�$bÆ You'll now see a list of fonts. Pick one (if this is 5.0, make sure you pick a soft font). You'll see a 10 item menu. We don't need to Ô rXú Ôworry about à ÃGroupsÄ Ä, à ÃAutomatic Font Changes or Sub­Ô rXÄ Ôšstitute FontsÄ Ä. For general information, you should know that if you mark even one AFC in the ALL, WP will not create any AFC's on its own. The same might be true for Substitute Fonts. I've never tried it or looked it up. Ô rXv Ôà ÃTypefaceÄ Ä You'll see a menu of seven items. WP uses the infor­mation contained in these categories for three purpos­es. It uses this information to make Automatic Font Change (AFC) choices. Secondly, it uses the same information to decide what šscreen font to use in Print View (SHIFT©F7,V). Lastly, it uses one item (some­times) to properly place diacritcals over Italic fonts. If you don't understand that last sentence, it means you don't need to worry about it. There are two strategies you can use. The obvious one is to mark the most appropriate choices. the one I use is to make each typeface different šenough to reduce the cross©typeface AFCs. WP goes out of its way to find AFCs for each Size and Attribute (e.g., Bold, Outline). I'd rather have no AFC than an AFC to a font with another typeface. It's your choice. I'll give a few hints on what to mark for some of the less obvious cate­šgories, but leave most of it to you. You can (and proba­bly should) review and remark the AFCs WP makes, anyway. Also, WP's Print View is too primitive to really show difference between šGoudy and Bodoni, for exam­ple, so I'd not worry too much about that either. The two most impor¬štant categories are Attributes andÔ88*-n+n+ÚÚü*ØØ¢n+n+ÚÚ8Ô šWeight. Her we go. Oh, one (more) note: You can mark more than one item in each category and you can leave some categories unmarked Note that to À ÀmarkÀÀ a category, you use the šasterisk À À*ÀÀ and to unmark use š. As always, F7 backs you up one screen. Ô rV@ Ôà ÃAppearance/StyleÄ Ä Casual ¤ììÂThe most common face which fits into this cate­šgory is Dom CasualÆìÆ Connected Letters ¤ììÂObviousÆìÆ Decorative ¤ììÂBroadway is an exampleÆìÆ Formal ¤ììÂThe most frequent choice. Times Roman, šGoudy, Gara¬mond, CenturyÆìÆ Futuristic ¤ììÂA font which looks like the display on your poc­šket calculator or the coding on your checks.ÆìÆ Old Style ¤ììÂPoor choice of name. Old English is an example of what WPCorp thinks belongs here.ÆìÆ Script or Calligraphic ¤ììÂOverlaps Connected Let¬šters. Use this for À ÀprettyÀÀ fonts.ÆìÆ Ô rV¨ Ôà ÃAttributesÄ Ä Ô rXp Ô¤ììÂà ÃNote:Ä Ä These you should try to mark cor¬šrectlyÆìÆ These are fairly obvious. Small Caps means that there are not minuscule letters in the font. Rather the small letters are simply smaller versions of the Capital letters. Ô rXZ Ôà ÃSerifsÄ Ä ÂH��ÂDon't worry too much about these. If you are installing a sans serif face, just don't mark any. Some of my guesses of what belongs were follow.Æ�Æ Cupped ¤ììÂGaramond or Goudy. The serifs are curved, not made from straight lines.ÆìÆ Exaggerated ¤ììÂUsually found in Old Style, Decora¬štive, or Script fonts.ÆìÆ Hairline ¤ììÂUniversity or Bodoni. Very thin serifs.ÆìÆ Slab ¤ììÂRockford or Courier. Rectangular, heavy serifs.ÆìÆ Slanted ¤ììÂUniversity. Serifs look like triangles.ÆìÆ Transitional ¤ììÂTimes Caslon. The serifs are attached to the body of the letter on an angle.ÆìÆ TriangularÔ4*-n+n+ÚÚԌ¤bbSÂUniversity (I'm using this one a lot, aren't I?). Sharp angled connection on the serif to the body.Æ�$bÆ Ball ¤bbSÂCentury. Rounded serifsÆ�$bÆ Ô rXè Ôà ÃShapeÄ ÄÂHYÂThe general shape of the main body of the character.Æ�$Æ Curved of Bowed ¤bbSÂDom Casual.Æ�$bÆ Nonconnecting Enclosures ¤bbSÂNot very common. An example would be the middle arm of the capital B does not touch the verti¬šcal stem.Æ�$bÆ Round ¤bbSÂFutura or Avant Garde. An example would be a minuscule a as you would print it š(kinda like a À ÀdÀÀ with the ascender missing).Æ�$bÆ Â¤bbSÂSquare:ÂHªª_ÂMetro.Æ�$ªÆ Ô rXÚ Ôà ÃStressÄ ÄÂHYÂVariations in line weightÆ�$Æ Angular ¤bbSÂGaramond. The curved lines (like the À ÀOÀÀ very in thickness.Æ�$bÆ Exaggerated ¤bbSÂBodoni. Exaggerated differences in line weight.Æ�$bÆ Â¤bbSÂUniform:ÂHªª_ÂHelvetica, Dom Casual.Æ�$ªÆ Ô rX Ôà ÃWeightÄ ÄÂHYÂà ÃNote:Ä Ä Try to get this one right to assist WP in making the correct Bold AFC choice. There are only five choices, while šPCL provides 15.Æ�$Æ Ô rX Ôà ÃProportionsÄ ÄÂ쪪_ÂDon't get hung up on these. (My definitions are not technically correct, but they will give you a good idea of what is expected.)Æ�$ªÆ Capital Height ¤bbSÂThe height of a Capital A di¬švided by (height of Capital A plus the distance from the bot¬štom of the Capital A to the bottom of a minus¬cule p). 80% will be close for a normal type¬šface.Æ�$bÆ Descender Height ¤bbSÂSubtract the Capital šHeight from 1. 20% is a normal guess.Æ�$bÆ Lowercase x Height ¤bbSÂThe height of a minuscule x divided by (height of Capital A plus the dis¬štance from the bot¬štom of the Capital A to the bot¬štom of a minuscule p). Times Roman would be about 60%Æ�$bÆ Lowercase t Height ¤bbSÂThe height of a minuscule t divided by (height of Capital A plus the dis¬t¬šance from the bot¬štom of the Capital A to the bot¬štom of a minuscule p). 80% is a usual number.Æ�$bÆ Maximum Ascender HeightÔ88*-n+n+ÚÚü*Ún+n+ÚÚ8Ԍ¤ììÂThe height of a minuscule t divided by (height of Capital A plus the dis¬štance from the bottom of the Capital A to the bot¬štom of a minus¬šcule p)ÆìÆ ÔX-n+n+ÚÚÔ Slant Adjustment ¤bbSÂI gotta quote from the PTR Manual for this one: À ÀThe slant adjust is the tangent of the angle of the slant.ÀÀ Got it now? Leave this a 0%. If you enter a positive number, WP šmight pick this font as the Italic AFC for some other font. Think about changing this if, and only if, you will be using diactrical marks in combination with the letters in this font (like Character Set 2)Æ�$bÆ Ô rXÐ Ôà ÃOrientationÄ ÄÂ쪪_ÂThis one's easy. Any questions?Æ�$ªÆ Ô rXb Ôà ÃCharacter MapÄ ÄÂ쪪_ÂHit and you'll see a listing of all the Character Maps already defined. A lot of cute things can be done here. This includes using PCL graphic commands to make symbols and combining letters (sometimes from two different fonts). If you are trying to do something like that, enjoy. I'm not going to explain it here. A hint: take a look at the various sets of variables.Æ�$ªÆ In normal use you simple map the font index number (remember that?) to the proper place in the WP Char­šacter Sets. For example, if you want to use the charac­ter in index number 244 as the large round bullet, enter [244] in the 4,0 slot. If you are installing a normal font, you can usually use an already existing Character Map. If not, you can often use an existing Character Map as a starting point. To do this, cursor to the Map you want and hit 4. šEnter a new name and make the changes. Much easier than starting from scratch. One more hint. You can tell WP to use font index 65 either by entering [65] or "A". A is nor¬šmally index number 65. these follow Character Set 0. If you need to create your own Character map or edit an existing one, you now see why you need the printout of the font showing the index num¬šber for each charac­šter. Also note that WP will quite happily accept a single character in multiple places in a Character Map. Char­šacters 0,65 and 8,0 is an example of character you might want to À Àdouble mapÀÀ this way. (Actually you might want to triple map this one by including 10,0, also.) Ô8L&-n+n+ÚÚ Cn+n+ÚÚ8Ô Ô rV Ôà ÃSize and Spacing InformationÄ Ä Â¤ììÂThis screen is slightly different on 5.0 than on 5.1. Don't be overly concerned with this informa¬štion. Well, some of it anyway.ÆìÆ Ô rXè ÔFor à Ãproportionally spaced fontsÄ Ä, the items are: Point Size ¤ììÂThe point size and is rather impor¬štant.ÆìÆ Font Cell Height ¤ììÂThe maximum height a charac¬šter in the font may have. It is fre¬quently šsomewhat smaller than the Point Size. Don't worry about this one.ÆìÆ Leading Adjust ¤ììÂThe amount of extra leading you want WP to insert. Leading (pro¬nounced ledding) is the white space between lines of type. WP 5.1 always adds 2 points between lines of propor¬štional fonts. If you want only 1 point, you could enter ©1 here, but usually this is a positive number or zero. The 5.0 screen asks for Default leading, not extra leading. Got the differ¬šence?ÆìÆ PS Table Width Adjust ¤ììÂAlmost always 1. Don't even consider changing it.ÆìÆ Character Cell Adjust and Baseline Bias Factor ¤ììÂCan be safely ignored.ÆìÆ Horizontal Spacing Units and Vertical Spacing Units�¤ììÂAlways 1/300 for LaserJets.ÆìÆ Resource Quantity Used ¤ììÂThe size of the font file in kilobytes. Round up.ÆìÆ Proportional Spacing Table ¤ììÂThe name of the table which contains the charac­ter šwidths.ÆìÆ The other information is just that, information, and can not be changed on this screen. Ô rXZ ÔFor à Ãmonospaced fontsÄ Ä, there is no PS Table Width Scaling Factor and Proportional Spacing Table should be: None selected. There are two additional items: Pitch ¤ììÂCharacters per inch (just like the descriptive ele­ment in PCL)ÆìÆ Font Width ¤ììÂThis is the reciprocal of Pitch ex¬pressed as a fraction of an inch with 300 as the denomin¬ator. Font Width's Numerator = 300 / Pitch. Why, you ask, is this needed? Well, if you are your fellow WP©ites always used šmono¬spaced fonts as they were designed to be used, it won't be. By making this number smaller, you can squeeze the charac­ters of a mono¬spaced font together; or spread them out my enlarging this number. If you do this with a font which contains line šdrawing charac­ters, you'll get just what you deserve.ÆìÆ Ô4*-n+n+ÚÚÔŒÔ rX ÔCursor down to the à ÃProportional Spacing TableÄ Ä. š You'll see a list of the Proportional Spacing Table (surprised?). If you are playing with a proportional font, the cursor will be on the one selected for the font. Aha, clever of WPCorp. You are now looking at the Proportional Spacing Table itself. Note that the listing is in WP Character Map order, not Index Number order. Remember that! Want to move around and have a look? OK. You can wander around with the Up and Down arrows. For faster movement, PgDn takes you to the beginning of the next Character Map. I'll let you guess what PgUp does. Control©Home is the GoTo Key. Hit it. You'll see a list of the various Character Maps. Hit 3 and you'll be at Character 3,0. Control©Home again, hit 8,30 and you'll be at Character 8,30. Kinda like CONTROL©V (Compose) in WP. Want a copy of the entire Proportional Spacing Table? No problem. Control©F5 is Text In/Text Out. Hit it. PTR suggests a name for the file. Accept it of choose your own. A nice neat WP document is created. It is also displayed on the screen. Hit F7 to exit this. This is where you will enter the information from your font width printout. A couple of point, here. Your font width printout is in index number order. You need to translate this into Character Set order. Also, if you À Àdouble mappedÀÀ any characters as mentioned above under Character Map, you need to enter the spacing information for each WP character. Ô rXÊ ÔChoose à ÃLoad and Select stringÄ Ä Ô rX” ÔChoose à ÃLoad FontÄ Ä. Hit CONTROL© You'll see something like: Ô rV& Ô¤bbSÂÑ#ô] ¦SPzE÷ôP#Ñ[27]"*c"ASCII(FNTNUM+2000)"D" Ô rVî ÔšDOWNLOAD("ch090rpn.usp")[27]"*c5F"Ñ#ô]i÷PÇE)ÚôP#ÑÆ�$bÆ Ô rX¶ Ôthe Ñ#ô] ¦SPzE÷ôP#Ñ"ch090rpn.usp"Ñ#ô]i÷PÇE)ÚôP#Ñ will vary as this is the font file name. A lot of the rest will look familiar if you remem­šber the first part of this witty, but so informative, tutor­šial. Let's break it down. Ô rX ! ÔÑ#ô] ¦SPzE÷ôP#Ñ[27]"*c"Ñ#ô]i÷PÇE)ÚôP#Ñ looks very much like the start of the PCL downloading string. WPCorp use square brackets for ascii characters, just like I've done (pretty cleaver, huh?). The neutral quotes surround characters which are to sent to the printer unchanged. Ô rXŠ% ÔÑ#ô] ¦SPzE÷ôP#ÑASCIIÑ#ô]i÷PÇE)ÚôP#Ñ (and all such all©capital words) is a predefined Ô rXT& Ôvari¬able. Ñ#ô] ¦SPzE÷ôP#ÑASCIIÑ#ô]i÷PÇE)ÚôP#Ñ sends the value of the argument which fol¬lows [that's techie©twaddle for the stuff between À À(ÀÀ and À À)ÀÀ]. Ô8®(-n+n+ÚÚü*{yEn+n+ÚÚ8Ô Ô rX ÔÑ#ô] ¦SPzE÷ôP#ÑFNTNUMÑ#ô]i÷PÇE)ÚôP#Ñ is the number assigned to each font. It repre­sents the position of the font in the PRS file (not the ALL file and the physical order, not the alphabeti¬šcal order). The first font is 0. In my example, 2000 is added Ô rX" Ôto the value of Ñ#ô] ¦SPzE÷ôP#ÑFNTNUMÑ#ô]i÷PÇE)ÚôP#Ñ. Notice that this šmethod assures that each font will have a unique ID number, which you will recall, makes sure that a newly down­loaded soft font doesn't overwrite one that already exists in the printer's memory. Ô rX  ÔÑ#ô] ¦SPzE÷ôP#Ñ"D"Ñ#ô]i÷PÇE)ÚôP#Ñ is D. So if this is the 667th font definition in the PRS file, to download it, WP sends the following command to the Ô rX. Ôprinter: Ñ#ô] ¦SPzE÷ôP#Ñ[27]*c666DÑ#ô]i÷PÇE)ÚôP#Ñ Look familiar? DOWNLOAD sends the file named in the argument to the printer. Note that path names are not allowed here, just the file name. Ñ#ô] ¦SPzE÷ôP#Ñ Ô rX Ô[27]"*c5F"Ñ#ô]i÷PÇE)ÚôP#Ñ tells the printer that this is a permanent font. Hit F7 Ô rX: ÔTake a look at the à ÃUnload Font stringÄ Ä. It will look something like: Ô rVÌ Ô¤ììÂÑ#ô] ¦SPzE÷ôP#Ñ[27]"*c"ASCII(FNTNUM+2000)"d2F"ÆìÆ Ô pX” ÔÑ#ô]i÷PÇE)ÚôP#ÑJust like the Delete font command, right? Ô rX$ ÔChoose à ÃSelect FontÄ Ä. Hit CONTROL© Things get tricky here. You might see something like: Ô rXF ÔšÑ#ô] ¦SPzE÷ôP#Ñ[27]"("ASCII(FNTNUM+2000)"X"Ñ#ô]i÷PÇE)ÚôP#Ñ which selects the font by font number. You might see something like: Ô rXh ÔšÑ#ô] ¦SPzE÷ôP#Ñ[27]&l0O[27](0U[27](s1p12v0s3b5TÑ#ô]i÷PÇE)ÚôP#Ñ which selects the font by description. Which method should you use? The select by number has the obvious advantage of simplicity. Despite that fact I recommend the descriptive method. There are several reasons for this, but I'll just give you one. šChoosing soft fonts by description makes using šBackLoader2 easier. If you use soft fonts to any great extent and don't use BackLoader2, you're nuts. It's published by Roxxolid whose president, Peter Mierau (CIS #76340,1121) spends quite a bit of time on šCompuserv. I own no Roxxolid stock, nor am I an employee. Get it anyway. Hit F7 until you are back at the menu which includes Load and Select Strings. If you see the list of fonts, you went too far. Hit . Ôz) -n+n+ÚÚÔŒBreak time. How, you ask, are you supposed to remem­šber all this? There are five ways to do this: 1)¤bbSÂTake a memory course.Æ�$bÆ 2)¤bbSÂBuy the PTR manual from WPCorp.Æ�$bÆ 3)¤bbSÂDownload from CompuServ the file called šPTRHP.ZIP and unpack and print it. It should be over on WPSGA, LIBRARY 2 (unless the Forum Manager decided not to accept the upload or change the name). It is an extract of the PTR 5.1 Help File.Æ�$bÆ 4)¤bbSÂHelp File? What Help File? Hit F3, you'll see a Function Key template. Hit F3 again and you might see some text. If the PTR item your cursor was rested on is indexed in PTR.HLP, it'll be there. If not, tough luck. Space bar returns you to the PTR from whence you came.Æ�$bÆ 5)¤bbSÂDo all the above.Æ�$bÆ OK, F7 until you are back at the menu containing Typeface and all those other choices. You're almost done. Ô rX0 ÔChoose à ÃQualityÄ Ä Â¤bbSÂMark all three choices. That was easy. F7Æ�$bÆ Ô rXŠ ÔChoose à ÃMiscellaneous QuestionsÄ Ä There are several here you might consider marking. Ô rV Ôà ÃUse Font Only for Automatic Font Changes or Substi­Ô rVä Ôštute FontsÄ Ä Â¤bbSÂI mark this for the majority of the fonts I use. I even mark the LaserJet's internal Courier Bold and Line Draw this way. Why? I like a clean, simple Base Font list (Control©F8). So I mark all Bold, Bold©Italic, Italic, Outline, etc., fonts this way. That way they don't show up on the Base Font list. I just select the normal variety of the font and hit F6 for Bold (or whatever) and let WP's vaunted AFCs do the work. I also mark all special use fonts (Math symbols, Greek, etc.) this way. I access these symbol only through šCOMPOSE and again let WP's AFCs select the font. The downside of this is simply that you need to check to make sure WP made the proper AFC and Substitute Font selections.Æ�$bÆ Ô8,# -n+n+ÚÚB* ² ª}n+n+ÚÚ8Ô Ô rV Ôà ÃDiacriticals Positioned (Vertically) for Uppercase Char­Ô rVÈ ÔšactersÄ Ä Â¤ììÂIf you won't be using diacriticals with the font you are installing, it's a moot point. If you are, worry. If the diacriticals are included in the characters in the font, don't worry. If they are not, worry. If the diacriticals are included in the font, but are at separate index numbers from the main char­šacters: Mark if the diacriticals are set up to over­šprint properly for Uppercase characters, other­šwise leave unmarked.ÆìÆ Ô rV˜ Ôà ÃDiacriticals Are Not Already Adjusted (Horizontally) in Ô rV` ÔItalic FontsÄ Ä Â¤ììÂRemember the Slant item in Typeface? Here's where it is used. If this is an italic font and if the diacritcals are in their own index numbers (or in a different font, if you are being tricky), and they are not correctly positioned to overstrike the main character, mark this. Otherwise, leave it alone.ÆìÆ Ã Ã Ô rVh ÔInclude in PRS fileÄ Ä Â¤ììÂMark if you want to force this font to be included in the PRS file even it is not marked by the user at PRS creation time. ÆìÆ Â¤ììÂWhy would you do this? ÆìÆ Â¤ììÂa)¤��ÂThe user is dumb.Æ�Æ Â¤ììÂb)¤��ÂThe font contains COMPOSE characters and the user might not know he needs this font to access those characters.Æ�Æ Â¤ììÂc)¤��ÂYou are power mad.Æ�Æ Â¤ììÂIf you do mark this, make sure the soft font exists and resides in the directory the user tells WP about at PRS creation time.ÆìÆ That's all you need to know to start popping in your own font definitions. Oh, you want to know how to save the altered ALL file? Hit F7 until you are back at the opening PTR screen (that's where you see the names of the printer(s). Hit F7 one more time. You are asked if you want to save. Hit Y. You are given the current name of the file as a default. Do NOT accept it unless you have a backup (preferably two) of the unscrewed up ALL file. Give it a new name. Then save it. Better yet, read the next paragraph for a better way. Usually, you only need one of the printer definitions out of the several that are included in most ALL files. If you get rid of the others and delete other extra bag­šgage, the ALL file will be considerably smaller. If you add a lot of soft font definitions to the ALL file, this can be important (folks have been known to have been unable to load an ALL file in PTR due to insufficient memory). Simply deleting the unused printer definitions does very little to reduce the size. But if you COPY it to a new file name, the unused typefaces, proportionalÔ0* -n+n+ÚÚÔ sizing table, etc. are not transferred. This can greatly reduce the size of the ALL file. Just delete the šunneeded printer names at the opening screen. I also delete unused sheet feeders and unused cartridge šand/or soft font definitions (Font Libraries in 5.1, too). Then, at the opening PTR screen, I rename the printer (to prevent confusion when adding a new printer defini­štion in WP), CONTROL©F4,name the sucker and š. The printer name you use can by anything that fits, it doesn't need to include the actual name of the printer. I have ones named: ¤bbSÂGlyphix3.1 and Math SymbolsÆ�$bÆ Â¤bbSÂLynda's (my wife's name)Æ�$bÆ Â¤bbSÂCorrespondenceÆ�$bÆ Â¤bbSÂ25©1 & Goudy/Bodoni (The 25©in©One Cartridge plus some soft fonts)Æ�$bÆ There is only a downside to this slash and burn Copy technique. (Ain't there always?) As mentioned pre­šviously, it is often easier to start off with an existing Typeface, Character Map, sometimes even a Propor­štional Spacing Table than it is to create one from šscratch. Copying is likely to get rid of some useful templates. Is there anything else to learn about PCL and WPDL? Sure there is. Some PCL items not covered: ¤bbSÂGraphic CommandsÆ�$bÆ Â¤bbSÂPage ControlÆ�$bÆ Â¤bbSÂMacrosÆ�$bÆ Â¤bbSÂCursor MovementÆ�$bÆ Â¤bbSÂJob ControlÆ�$bÆ Â¤bbSÂUnderliningÆ�$bÆ Some WPDL and PTR items not covered: ¤bbSÂVariables (several types)Æ�$bÆ Â¤bbSÂComposite charactersÆ�$bÆ Â¤bbSÂUsing different fonts in one Character MapÆ�$bÆ Â¤bbSÂKerningÆ�$bÆ Â¤bbSÂReducing a PTR or ALL file's size (there are other ways)Æ�$bÆ Â¤bbSÂSetting up Typeface/font information to improve WP chosen AFCsÆ�$bÆ If there is sufficient interest, I'll be happy to put togeth­er a note similar to this one. Let me know what you think. Also, please let me know what errors you find in this beast. I would very much appreciate that. If you have information on fonts or some other subject (Mac­šros, Styles, whatever) why not upload it on WPSGA? In fact, why not consider this file HelpWare? If it helps you, share you knowledge and help others. (Boy, could I use help!)Ô8Ø' -n+n+ÚÚø* ê ç´n+n+ÚÚ8Ô One last item: Translating width information and character maps can be a real pain. I use a spreadsheet template to make it easier. It looks something like: Ñ#ôx Œ @ɧÍÇ;"X@#Ñ À ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ À À À A À À B À À C À À D À À ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ À ÀChar SetÀ À CharÀ À Width À À IndexÀ À ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ À À À À À À À À À À À ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ À Ñ#ô]i÷PÇE)ÚôP#Ñ After entering the information, then sort on Column A (primary) and Column B (secondary). That way I have the information sorted in WP Character order which makes life much easier. You can do the same thing in WP Tables (and probably parallel columns), but we're talking slow. If there's interest, I'd be happy to upload it. I have it Lotus (all versions but 2.2), SuperCalc 5, Quattro Pro, and of course PlanPerfect 5.0. Complete with a macro to do the sort. This note has ben rather informal. If you're offended by that, I'm sorry (but not very). If the humor seems to be on the fifth grade level, you are very perceptive. I have not taken the time to format it properly, for that (and all typos) and truly am sorry. Enjoy, Paul Friedman× ENDIT × National Benefit Resources CI$ 76424,1252