29-Oct-1990 16:11:40-GMT,1413;000000000001 Return-Path: Received: from Neon.Stanford.EDU by math.utah.edu (4.1/SMI-4.0-utah-csc-server) id AA09907; Mon, 29 Oct 90 16:11:35 MST Received: by Neon.Stanford.EDU (5.61/25-eef) id AA09289; Mon, 29 Oct 90 15:11:16 -0800 Date: Mon, 29 Oct 90 15:11:16 -0800 From: Tomas G. Rokicki Message-Id: <9010292311.AA09289@Neon.Stanford.EDU> To: karl%aten.cs.umb.edu@RELAY.CS.NET Cc: rjl@MONU1.CC.MONASH.EDU.AU, rokicki%neon.stanford.edu@RELAY.CS.NET, bnb@MATH.AMS.COM, rfw@MATH.AMS.COM, mackay@JUNE.CS.WASHINGTON.EDU, beebe@csc-sun.math.utah.edu In-Reply-To: Karl Berry's message of Mon, 29 Oct 90 10:11:00 EST <9010291511.AA06213@aten.cs.umb.edu> Subject: dvips and psfonts.vmap I'm going to hold off on releasing dvips 5.4 until we get a reasonable set of names for PostScript virtual fonts. I'm happy to use anything; Karl is obviously on top of things in this regard. The most important, of course, is setting *concrete* names and vf files for the basic 35 (there are 35, right?) fonts in the LaserWriter, since these will probably account for more than 99% of the PS font usage. And then making everything use these names, from previewers to dvi2ps to dvi3ps, etc. And coming up with a set of vf files for those who don't have these fonts so the previewer will display something (ie, a vf file that maps Times-Roman back to cmr10). -tom 29-Oct-1990 17:55:05-GMT,4408;000000000001 Return-Path: Received: from monu1.cc.monash.edu.au by math.utah.edu (4.1/SMI-4.0-utah-csc-server) id AA10593; Mon, 29 Oct 90 17:54:45 MST Received: by monu1.cc.monash.edu.au (5.61/1.34) id AA25032; Tue, 30 Oct 90 11:53:04 +1100 Message-Id: <9010300053.AA25032@monu1.cc.monash.edu.au> To: Karl Berry Cc: rokicki%neon.stanford.edu@RELAY.CS.NET, bnb@MATH.AMS.COM, rfw@MATH.AMS.COM, mackay@JUNE.CS.WASHINGTON.EDU, beebe@csc-sun.math.utah.edu Subject: Re: dvips and psfonts.vmap In-Reply-To: Your message of Mon, 29 Oct 90 10:11:00 -0500. <9010291511.AA06213@aten.cs.umb.edu> From: Russell Lang Date: Tue, 30 Oct 90 11:52:59 +1100 Sender: eln272v@monu1.cc.monash.edu.au > Well, handling Adobe's Expert and Alternate fonts isn't too painful: we > can just add new variants `x' (`e' is already taken) and `a'. This solves a few ambiguities in the set of fonts mentioned in dvips, but not all. See my list of suggested names below. > > The StoneInformal Italics have two variants - Informal and Italic. By rearranging the order of the double variants, I have reduced the ambiguious names down to 1. The other names have an 'i' in the expansion position which doesn't mean anything, yet. Is this set of names acceptable? Should there be some mention made in your TUGboat article of what to do in the case of multiple variants? This reminds me of my toddler nephew trying to push a square peg into a round hole. It just can't be done - the same for a totally consistent short naming scheme for postscript fonts. Tom suggested creating another set of virtual fonts so that previewers can substitute fonts. Who is best placed to do this? I have done a very simple version of this - take one of the Adobe VF's, convert it to VPL format, add one line (MAPFONT D 0 (FONTNAME cmr10)) then convert it back to VF format. This sort of works - character spacing is dreadful, many warning messages are generated about character codes not present, but it does allow the previewer to subtitute fonts. With a shell script, you could make a new set of VF files which map all the PostScript fonts to cmr10! At present, the pslatex included with dvipslib doesn't use the standard magstep sizes - it uses exact pt sizes. This makes it difficult if you try to find cmr10 at 14pt when only cmr10 at 14.4pt is available. -- Russell Lang Email: rjl@monu1.cc.monash.edu.au Phone: (03) 565 3460 Department of Electrical and Computer Systems Engineering Monash University, Australia Names that do not conform to the proposed naming scheme are marked with a '?'. The StoneInformal Italics have two variants - Informal and Italic. I have put the italic variant in the Expansion letter position. Since 'i' is not used as an expansion code, this might be acceptable. StoneSans-Slanted has variants Sans Serif and Oblique. This one is confusing since 'pstrso' could be StoneSans Oblique, or StoneSans extra condensed. pstrn StoneInformal.tfm pstrni ? StoneInformal-Italic.tfm pstbn StoneInformal-Bold.tfm pstbni ? StoneInformal-BoldItalic.tfm pstsn StoneInformal-Semibold.tfm pstsni ? StoneInformal-SemiboldItalic.tfm pstrnn StoneInformal-Condensed.tfm pstrs StoneSans.tfm pstrso ? StoneSans-Slanted.tfm pstr StoneSerif.tfm pstri StoneSerif-Italic.tfm pstsr StoneSerif-Semibold.tfm pstsi StoneSerif-SemiboldItalic.tfm pstb StoneSerif-Bold.tfm pstbi StoneSerif-BoldItalic.tfm Some of the Adobe Garmond names also have two variants - Alternate or Expert and Italic. For these cases, the Italic variant is placed in the Expansion letter position. rpadr AGaramond-Regular.tfm rpadrx AGaramondExp-Regular.tfm rpadra AGaramondAlt-Regular.tfm padr padra (padr with digits replaced with old style) rpadri AGaramond-Italic.tfm rpadrxi ? AGaramondExp-Italic.tfm rpadrai ? AGaramondAlt-Italic.tfm padri padrai ? (padri with digits replaced with old style) rpads AGaramond-Semibold.tfm rpadsx AGaramondExp-Semibold.tfm pads rpadsi AGaramond-SemiboldItalic.tfm rpadsxi ? AGaramondExp-SemiboldItalic.tfm padsi rpadb AGaramond-Bold.tfm rpadbx AGaramondExp-Bold.tfm padb rpadbi AGaramond-BoldItalic.tfm rpadbxi ? AGaramondExp-BoldItalic.tfm padbi 29-Oct-1990 17:58:45-GMT,1289;000000000001 Return-Path: Received: from CC.UTAH.EDU by math.utah.edu (4.1/SMI-4.0-utah-csc-server) id AA10608; Mon, 29 Oct 90 17:58:41 MST Received: from DHDURZ1 by CC.UTAH.EDU; Mon, 29 Oct 90 17:58 MDT Received: by DHDURZ1 (Mailer R2.07) id 0403; Tue, 30 Oct 90 01:53:56 CET Date: Mon, 29 Oct 90 16:36:00 PST From: Don Hosek Subject: Re: naming convention for the Pandora fonts Sender: LaTeX-L Mailing list To: "Nelson H.F. Beebe" Reply-To: LaTeX-L Mailing list Message-Id: <112FED1DA11F803231@CC.UTAH.EDU> X-Envelope-To: Beebe@SCIENCE.UTAH.EDU >(2) pnr10 pnbx10 pnsl10 pntt9 pnss10 pnsx10 pnsi10 I've seen these forms on, I think, Clarkson; they're misnamed versions of the "true" names (bx for b) with the old sail reduction to 6 letters naming scheme (the first three chars + the last 3 chars). Karl Berry has put together an improved version of the naming scheme referred to by Neenie which allows most typefaces to be described in eight characters or less. It can be a little more oblique in the naming, but it is functional. -dh btw, personally I find Pandora useless for my work; no italic corrections and a rather heavy appearance. -dh 31-Oct-1990 16:42:09-GMT,15154;000000000001 Received: from [128.110.192.2] by math.utah.edu (4.1/SMI-4.0-utah-csc-server) id AA02468; Wed, 31 Oct 90 16:42:07 MST Return-Path: <@RELAY.CS.NET:karl@aten.cs.umb.edu> Received: from RELAY.CS.NET by [128.110.192.2] with TCP; Mon 29 Oct 90 08:56:01-MST Received: from relay2.cs.net by RELAY.CS.NET id ae11871; 29 Oct 90 10:55 EST Received: from umb.edu by RELAY.CS.NET id af10509; 29 Oct 90 10:45 EST Received: from aten.cs.umb.edu by cs.umb.edu (3.2/1.34) id AA16447; Mon, 29 Oct 90 10:11:02 EST Received: by aten.cs.umb.edu (3.2/1.34) id AA06213; Mon, 29 Oct 90 10:11:00 EST Date: Mon, 29 Oct 90 10:11:00 EST From: Karl Berry Message-Id: <9010291511.AA06213@aten.cs.umb.edu> To: rjl@MONU1.CC.MONASH.EDU.AU Cc: rokicki%neon.stanford.edu@RELAY.CS.NET, bnb@MATH.AMS.COM, rfw@MATH.AMS.COM, mackay@JUNE.CS.WASHINGTON.EDU, beebe@SCIENCE.UTAH.EDU In-Reply-To: Russell Lang's message of Mon, 29 Oct 90 15:57:14 +1100 <9010290457.AA01112@monu1.cc.monash.edu.au> Subject: dvips and psfonts.vmap Resent-Date: Wed 31 Oct 90 16:40:46-MST Resent-From: "Nelson H. F. Beebe" Resent-To: beebe@math.utah.edu Resent-Message-Id: <12634288722.23.BEEBE@SCIENCE.utah.edu> Well, handling Adobe's Expert and Alternate fonts isn't too painful: we can just add new variants `x' (`e' is already taken) and `a'. But > The StoneInformal Italics have two variants - Informal and Italic. I can't believe I didn't think of this before. Of *course* some typefaces can have multiple variants. Damn, damn, damn. I don't see any good solution to this. I suppose I could randomly allocate a variant letter for `informal italic' and `sans slanted', which will solve the immediate problem, of generating names for the fonts distributed with Tom's dvips. But we will rapidly run out of letters once we start having `Lucida Typewriter Small Caps Sans Serif Informal Oblique', for example... And yet just appending the letters will lead to ambiguities; for example, is pstso Stone Sans Oblique or Stone Sans Extra Condensed? I am depressed. karl@cs.umb.edu (here is the latest version of the article, for those who haven't seen it since the initial discussion some months ago) % Font naming proposal. % %% @texfile{ %% author = "Karl Berry", %% version = "1.2", %% date = "29 October 1990", %% filename = "fontname.tex", %% email = "karl@cs.umb.edu", %% address = "135 Center Hill Rd. // Plymouth, MA 02360", %% codetable = "ISO/ASCII", %% docstring = "This article describes a naming scheme for fonts that %% is supposed to be implementable on all the computers %% on which TeX runs." %% } %% % % Use the TUGboat macros. \input tugboat.sty % Simple abbreviations. % \def\host#1{{\tt #1}} \def\filename#1{{\tt #1}} \def\journal#1{{\sl #1}} \def\fontletter#1{{\tt #1}} \def\program#1{{\tt #1}} % I use \table to make the lists of abbreviations. #1 is the category. % \table also starts a new section. % \def\table#1{% \head #1 \endhead \halign\bgroup \indent\tt ##\hfil\quad &\vtop{% \advance\hsize by -\parindent % The \indent in the first column. \advance\hsize by -1em % The \quad. % One table has two-letter abbreviations. \advance\hsize by -2\fontdimen7\tentt \rm\noindent ##}\hfil \cr } \def\endtable{% \egroup % End the \halign. \smallskip % I don't know what kind of space you want, but it needs % something here. }% % Within the \table's, I use \entry for each row. % #1 is the abbreviation, #2 the meaning. % \def\entry#1#2{#1\cr} % I use \shortlist to make two lists of very short items that need no % marker. % \def\shortlist{\list[\unitemized\tag{\empty}][\cols=2]} \title * Filenames for fonts * \author * Karl Berry * \address * 135 Center Hill Rd. \\ Plymouth, MA 02360 * \netaddress * karl@cs.umb.edu * \article As more typeface families become available for use with \TeX, the need for a consistent, rational naming scheme for the font filenames concomitantly grows. Some (electronic) discussion has gone into the following proposal; I felt it was appropriate now to bring it before a wider community. In some respects, it follows and simplifies Mittelbach's and Sch\"opf's article in \journal{TUGboat}, volume~11, number~2 (June 1990). Here are some facts about fonts that went into the hopper when creating this proposal: \list \item \TeX\ runs on virtually all computers, under almost as many operating systems, all with their own idea of how files should be named. Any proposal regarding filenames, therefore, must cater to the lowest common denominator. That seems to be eight characters in length, not counting any extension, and with case being insignificant. Characters other than letters and numerals are probably unusable. \item Most typefaces are offered by several vendors. The version offered by vendor~A is not compatible with that of vendor~B. \item Typefaces typically come in different weights (hairline to extra heavy), different expansions (ultra condensed to wide), and an open-ended range of variants (italic, sans serif, typewriter, shadow,~$\ldots$). No accepted standards exist for any of these qualities, nor are any standards ever likely to gain acceptance. \item The Computer Modern typeface family preserves traditional typesetting practice in at least one important respect: different sizes of the same font are not scaled linearly. This is in contrast to most commercial fonts available. \endlist Here is how I propose to divide up the eight characters: || FTTWVEDD || where \list \item |F| represents the foundry that produced the font, and is omitted if there isn't one. \item |TT| represents the typeface name. \item |W| represents the weight. \item |V| represents the variant, and is omitted if both it and the expansion are ``normal''. \item |E| represents the expansion, and is omitted if it is ``normal''. \item |DD| represents the design size, and is omitted if the font is linearly scaled from a single {\tt tfm} file. \endlist See the section on virtual fonts (towards the end) for an exception to the above. The weight, variant, and expansion are probably all best taken from the original source of the typeface, instead of trying to relate them to some external standard. Before giving the lists of abbreviations, let me point out two problems, to neither of which I have a good solution. 1)~Assuming that only the English letters are used, two letters is enough for only 676 typeface families (even assuming we want to use all possible combinations, which is doubtful). There are many more than 676 typeface families in the world. 2)~Fonts with design sizes over 100$\,$pt are not common, but neither are they unheard of. On to the specifics of the lists. If you adopt this proposal at your own installation, and find that you have fonts with some property I missed, please write to me (see the end of the article for various addresses), so I can update the lists. You can get the most up-to-date version of these lists electronically, by anonymous ftp >From the host \host{ftp.cs.umb.edu}. I will also send them to you by electronic mail, if necessary. I give the letters in lowercase, which is preferred on systems where case is significant. The lists are in alphabetical order by the abbreviations. \table{Foundry} \entry{a}{Autologic} \entry{b}{Bitstream} \entry{c}{Compugraphic} \entry{g}{Free Software Foundation ({\tt g} for GNU)} \entry{h}{Bigelow \& Holmes (with apologies to Chuck)} \entry{i}{International Typeface Corporation} \entry{p}{Adobe ({\tt p} for PostScript)} \entry{r}{reserved for use with virtual fonts; see below} \entry{s}{Sun} \endtable \table{Typeface families} \entry{ad}{Adobe Garamond} \entry{ag}{Avant Garde} \entry{ao}{Antique Olive} \entry{at}{American Typewriter} \entry{bb}{Bembo} \entry{bd}{Bodoni} \entry{bg}{Benguiat} \entry{bk}{Bookman} \entry{bl}{Balloon} \entry{bv}{Baskerville} \entry{bw}{Broadway} \entry{cb}{Cooper Black} \entry{cl}{Cloister} \entry{cr}{Courier} \entry{cn}{Century} \entry{cs}{Century Schoolbook} \entry{hv}{Helvetica} \entry{gm}{Garamond} \entry{go}{Goudy Oldstyle} \entry{gs}{Gill Sans} \entry{jo}{Joanna} \entry{lc}{Lucida} \entry{lt}{Lutetia} \entry{nc}{New Century Schoolbook} \entry{op}{Optima} \entry{pl}{Palatino} \entry{pp}{Perpetua} \entry{rw}{Rockwell} \entry{st}{Stone} \entry{sy}{Symbol} \entry{tm}{Times} \entry{un}{Univers} \entry{uy}{University} \entry{zc}{Zapf Chancery} \entry{zd}{Zapf Dingbats} \endtable \table{Weight} \entry{a}{hairline} \entry{b}{bold} \entry{c}{black} \entry{d}{demi} \entry{h}{heavy} \entry{i}{extra light} \entry{k}{book} \entry{l}{light} \entry{m}{medium} \entry{r}{regular} \entry{s}{semi} \entry{t}{thin} \entry{u}{ultra} \entry{x}{extra bold} \endtable In order of lightest to heaviest (more or less): \nobreak \shortlist hairline thin extra light light book regular medium \colsep demibold semi bold extra bold heavy black ultra \endlist \table{Variant} \entry{a}{alternate} \entry{b}{bright} \entry{c}{small caps} \entry{e}{engraved} \entry{g}{grooved (as in the IBM logo)} \entry{h}{shadow} \entry{i}{(text) italic} \entry{l}{outline} \entry{n}{informal} \entry{o}{oblique (i.e., slanted)} \entry{r}{normal (roman or sans)} \entry{s}{sans serif} \entry{t}{typewriter} \entry{u}{unslanted italic} \entry{x}{expert} \endtable If the variant is {\tt r}, and the expansion is also normal, both the variant and the expansion are omitted. When the normal version of the typeface is sans serif (e.g., Helvetica), \fontletter{r} should be used, not \fontletter{s}. Use \fontletter{s} only when the typeface family has both serif and sans serif variants. The ``alternate'' variant (\fontletter{a}) is used by some Adobe fonts that have oldstyle digits. The ``expert'' variant (\fontletter{x}) is also used by some Adobe fonts. \table{Expansion} \entry{c}{condensed (by hand)} \entry{e}{expanded (automatic)} \entry{n}{narrow (automatic)} \entry{o}{extra condensed} \entry{}{regular, normal, medium (always omitted)} \entry{w}{wide} \entry{x}{extended (by hand)} \endtable In order of narrowest to widest (more or less): \shortlist extra condensed condensed narrow regular \colsep extended expanded wide \endlist Expansion of fonts is sometimes done automatically (as in PostScript {\bf scale}), and sometimes done by humans. I chose `narrow' and `expanded' to imply the former, and `condensed' and `extended' to imply the latter, as I believe this reflects common usage. \head * Virtual fonts * In concert with releasing \TeX~3.0 and \MF~2.7, Don Knuth wrote two new utility programs: \program{VFtoVP} and \program{VPtoVF}, which convert to and from ``virtual'' fonts. Virtual fonts provide a general interface between the writers of \TeX\ macros and font suppliers. In general, therefore, it is impossible to come up with a general scheme for naming virtual fonts, since each virtual font is an individual creation, possibly bringing together many unrelated fonts. Nevertheless, one common case is to use virtual fonts to map \TeX's default accent and other character code conventions onto a vendor-supplied font. For example, \program{dvips} (by Tom Rokicki) does this for fonts given in the PostScript ``standard encoding''. In this case, each font consists of a ``virtual'' tfm file, which is what TeX uses, a ``raw'' tfm file, which corresponds to the actual device font, and a vf file, which describes the relationship between the two. This adds another dimension to the space of font names, namely, ``virtualness'' (or rather, ``rawness'', since it is the virtual tfm files that the users want to see). But we have already used up all eight characters in the font names. The best solution I have been able to think of is this: prepend \fontletter{r} to the raw tfm files; the virtual tfm files should be named with the usual foundry prefix. For example, the virtual Times Roman tfm file is named \filename{ptmr}, as usual; the raw Times Roman tfm file is named \filename{rptmr}. To prevent intolerable confusion, I promise never to give a foundry the letter \fontletter{r}. This scheme will work only as long as the virtualized fonts do not have design sizes; if they do, another foundry letter will have to be allocated, it seems to me. A pox upon the houses of those who decided on fixed-length filenames! \head * Examples * In closing, I will give two examples. First, the fonts in the Univers typeface family were assigned numbers by its designer, Adrien Frutiger. (You can see the scheme on, for example, page~29 of {\sl The Art of Typo.icon.ography}, by Martin Solomon.) Naturally, we want to give them names. \list[\tag{\empty}\unitemized] 45 (light): \filename{unl} 46 (light italic): \filename{unli} 47 (light condensed): \filename{unlrc} 48 (light condensed italic): \filename{unlic} 49 (light extra condensed): \filename{unlro} 53 (medium extended): \filename{unmrx} 55 (medium): \filename{unm} 56 (medium italic): \filename{unmi} 57 (medium condensed): \filename{unmrc} 58 (medium condensed italic): \filename{unmic} 59 (medium extra condensed): \filename{unmro} 63 (demibold extended): \filename{undrx} 65 (demibold): \filename{und} 66 (demibold italic): \filename{undi} 67 (demibold condensed): \filename{undrc} 68 (demibold condensed italic): \filename{undic} 73 (bold extended): \filename{unbrx} 75 (bold): \filename{unb} 76 (bold italic): \filename{unbi} 83 (extra bold extended): \filename{unxrx} \endlist Second, here are names for the 35 standard PostScript fonts: \list[\tag{\empty}\unitemized] AvantGarde-Book: \filename{pagk} AvantGarde-BookOblique: \filename{pagko} AvantGarde-Demi: \filename{pagd} AvantGarde-DemiOblique: \filename{pagdo} Bookman-Demi: \filename{pbkd} Bookman-DemiItalic: \filename{pbkdi} Bookman-Light: \filename{pbkl} Bookman-LightItalic: \filename{pbkli} Courier-Bold: \filename{pcrb} Courier-BoldOblique: \filename{pcrbo} Courier: \filename{pcrr} Courier-Oblique: \filename{pcrro} Helvetica-Bold: \filename{phvb} Helvetica-BoldOblique: \filename{phvbo} Helvetica-NarrowBold: \filename{phvbrn} Helvetica-NarrowBoldOblique: \filename{phvbon} Helvetica: \filename{phvr} Helvetica-Oblique: \filename{phvro} Helvetica-Narrow: \filename{phvrrn} Helvetica-NarrowOblique: \filename{phvron} NewCenturySchlbk-Bold: \filename{pncb} NewCenturySchlbk-BoldItalic: \filename{pncbi} NewCenturySchlbk-Italic: \filename{pncri} NewCenturySchlbk-Roman: \filename{pncr} Palatino-Bold: \filename{pplb} Palatino-BoldItalic: \filename{pplbi} Palatino-Italic: \filename{pplri} Palatino-Roman: \filename{pplr} Symbol: \filename{psyr} Times-Bold: \filename{ptmb} Times-BoldItalic: \filename{ptmbi} Times-Italic: \filename{ptmri} Times-Roman: \filename{ptmr} ZapfChancery-MediumItalic: \filename{pzcmi} ZapfDingbats: \filename{pzdr} \endlist Please contact me if you have any comments or additions. \makesignature \endarticle