<HTML> <HEAD> <!-- Created with AOLpress/2.0 --> <!-- AP: Created on: 14-Dec-2000 --> <!-- AP: Last modified: 14-Feb-2002 --> <TITLE>Font Info</TITLE> </HEAD> <BODY> <H1 ALIGN=Center> Font Info </H1> <P> <IMG SRC="fontinfo.png" WIDTH="369" HEIGHT="472"> <P> The Font Info dialog is available from all views. It allows you to name your font, to set its <A HREF="fontview.html#Encodings">encoding</A> and various other useful bits of information. In a <A HREF="fontview.html#CID">CID keyed font</A>, there is a <A HREF="cidmenu.html#FontInfo">seperate command</A> to access the information for the font as a whole, the dialog looks the same. The dialog is composed of 7 different sub dialogs. <H2> <A NAME="Names">Names</A> </H2> <P> Postscript fonts have several different names, but basically there are two important ones: the family name (like Times) and the fontname (which is the family name with a bunch of modifiers like Bold Italic Condensed tacked on to the end. We support a third one, the FullName (designed to be read by humans, while the others are for machines), this name can contain spaces (like "New Century Schoolbook-Bold Condensed"). All of these names should be in ASCII. If you wish to enter names with characters outside this range look at the <A HREF="#TTF-Names">TTF Names</A> Section. <P> The copyright field can contain whatever you want to put there, but it's a good place to put a copyright. <P> In most fonts the version field is a string (and so has minimal constraints on it), but in CID keyed fonts it must be a floating point number. <H2> <IMG SRC="fontinfo-encoding.png" WIDTH="369" HEIGHT="472" ALIGN="Right"><A NAME="Encoding">Encoding</A> </H2> <P> This sub dialog allows you to specify the encoding for your font, and to teach PfaEdit about new encodings. <P> There are two ways to change the encoding. The default assumes that the font currently has a reasonable encoding, but you want it to have a different one, here each character will be moved to the appropriate position in the new font. However if you check the <SAMP>[ ] Force Encoding box</SAMP>, then PfaEdit will assume that the characters are in the right order, but have got the wrong names. It will go through and rename every character to match what it should be in the new encoding (this is for cases where people have given a font an inappropriate encoding but where the mapping from character code to glyph is correct). <P> You may want to add characters to or removed characters from your font. You can specify how many characters you want in the font here. <P> <STRONG>Note</STRONG> some encodings have different numbers of characters, and it may be hard to guess how many will be used. But if you have changed the encoding but not altered the "Number of Characters" box, then the value in the Number box will be ignored and the correct number will come from the encoding process. <P> In a CID keyed font you are not allowed to change the encoding (in essence because there is none), but the dialog will show you the Registry/Ordering/Supplement for this font. <P> <HR> <H3> Built in <A NAME="Encodings">Encodings</A> </H3> <P> PfaEdit knows about the following encodings by default: <UL> <LI> ISO-8859-1 (Latin1) -- traditional encoding for western european characters. Default encoding for http. Does not include the Euro sign. <LI> ISO-8859-15 (Latin0) -- Replacement for Latin1. Does include the Euro. <LI> ISO-8859-2 (Latin2) -- Central & Eastern European (Czch, Hungarian, Polish, Romanian, Croatian, Slovak, Slovnian. <LI> ISO-8859-3 (Latin3) -- Southern European (Esperanto, Maltese) <LI> ISO-8859-4 (Latin4) -- Northern European (Estonian, Latvian, Lithuanian, Greenlandic, Lappish) <LI> <IMG SRC="fontinfo-cid.png" WIDTH="369" HEIGHT="472" ALIGN="Right">ISO-8859-9 (Latin5) -- Turkish <LI> ISO-8859-10 (Latin6) -- Nordic (reworking of Latin4&Latin1) <LI> ISO-8859-13 (Latin7) -- Another Baltic character set <LI> ISO-8859-14 (Latin8) -- Celtic (Gaelic & Welsh) <LI> ISO-8859-5 (Cyrillic) <LI> ISO-8859-6 (Arabic) <LI> ISO-8859-7 (Greek) <LI> ISO-8859-8 (Hebrew) -- (and Yiddish) <LI> ISO-8859-11 (Thai) -- Also know as TIS 620<BR> <there is no ISO-8859-12> <HR> <LI> KOI8-R -- Cyrillic <LI> Macintosh Roman <LI> Windows "ANSI" (CodePage1252) <LI> Adobe Standard <LI> Symbol <LI> TeX Base <HR> <LI> ISO-10646-1 (Unicode, BMP) <LI> ISO-10646-1 (Unicode, Full) <HR> <LI> JIS 208 -- Japanese Kanji (first 8000 characters) <LI> JIS 212 -- Japanese Kanji (next 8000 characters) <LI> KSC 5601 -- Korean (this is the 94x94 version of KSC 5601) <LI> GB 2312 -- Chinese </UL> <P> Encoding sources: <UL> <LI> <A HREF="http://czyborra.com/charsets/iso8859.html">ISO 8859 Alphabet Soup</A> <LI> <A HREF="http://www.unicode.org/Public/MAPPINGS/">Unicode Mapping Tables</A> </UL> <P> <A HREF="http://www.unicode.org/charts/">An index to images of all the glyphs in unicode</A>. <P> <HR> <H3> User Defined Encodings </H3> <P> You can also use the font info dialog to add new encodings to the set that PfaEdit knows about. There are three buttons that manipulate a set of user defined encodings. As always these specify both a character set and an encoding. The encoding has a maximum of 256 entries, but the character set may be larger (up to 1024). This means that you can define a font with extra characters. Since postscript fonts can be reencoded at runtime this can be useful. <P> The button <CODE>[Load]</CODE> allows you to load an encoding(s) from a file. Currently the file must either be in the format used by the unicode consortium for <A HREF="http://www.unicode.org/Public/MAPPINGS/ISO8859/">mapping ISO 8859</A> encodings to unicode, or it must be a postscript encoding array. The first format looks like this: <BLOCKQUOTE> <PRE>0x20 0x0020 # SPACE 0x21 0x0021 # EXCLAMATION MARK ... </PRE> </BLOCKQUOTE> <P> A postscript file looks like: <BLOCKQUOTE> <PRE>/TeXBase1Encoding [ % 00 /.notdef /dotaccent /fi /fl /fraction /hungarianumlaut /Lslash /lslash ... ] def </PRE> </BLOCKQUOTE> <P> There may be more than one encoding in a postscript file. The encoding parser is not smart. It will only read arrays specified like this, don't try any of the innumerable other ways of specifying an array in postscript. <P> If the font has a custom encoding then the <CODE>[Make From Font]</CODE> button is enabled. This allows you to name the encoding you have defined for the current font. <P> The <CODE>[Remove]</CODE> button brings up a list showing all the custom encodings and allows you to delete them. <P> Here's an <A HREF="Encodings.ps.gz">example of a postscript encoding file</A>. It contains: <UL> <LI> TeXMathItalicEncoding <LI> TeXMathSymbolEncoding <LI> TeXMathExtensionEncoding <HR> <LI> IsoLatin -- (which specifies all the characters used in any of the ISO-Latin-* fonts <HR> <LI> AdobeExpert -- (Which contains things like lower case numbers, small caps, fractions, sub/superscript numbers, etc.) <HR> <LI> CodePage1250 -- Microsoft's encoding for Central European characters <LI> CodePage1251 -- Microsoft's Cyrillic encoding <LI> CodePage1252 -- Microsoft's Western European encoding (a superset of Latin1. Sometimes called "ANSI" though I can find no ANSI standard that it follows) <LI> CodePage1253 -- Microsoft's Greek encoding <LI> CodePage1254 -- Microsoft's Turkish encoding <LI> CodePage1255 -- Microsoft's Hebrew encoding (an extension of ISO-8859-8) <LI> CodePage1256 -- Microsoft's Arabic encoding <LI> CodePage1257 -- Microsoft's Baltic encoding <LI> CodePage1258 -- Microsoft's Viet Namese encoding <LI> CodePage874 -- Microsoft's Thai encoding <HR> <LI> MacCentralEuropean <LI> MacCyrillic <LI> MacGreek <LI> MacHebrew <HR> <LI> US-ASCII -- Not realy useful by itself any more, but provides the first 128 characters of almost every other encoding. </UL> <H2> <IMG SRC="fontinfo-ps.png" WIDTH="369" HEIGHT="472" ALIGN="Right"><A NAME="PS-General">PS General</A> </H2> <P> This sub dialog contains a rather random collection of settings. <P> The Ascent and Descent are (in this current definition) Macintosh concepts rather than Postscript, there sum, however, provides the size of the em-square and that is very much a postscript concept. For postscript fonts this number is set by strong convention to be 1000, while in most TrueType fonts it will be 2048 (also a convention, but TrueType claims rasterization is faster if the sum is a power of 2). Since both TrueType and Type1 (postscript) fonts represent numbers as 16-bit integers ascent and descent must be less than 32767. TrueType is more restrictive and requires their sum to be less than 16384. <P> The Italic Angle indicates the slant of the font. PfaEdit can attempt to guess a good value for you by looking at the stems of certain letters ("I" for instance). <P> The underline position and height provide a program using this font a hint as to where it should place a line if it wants to underline text printed in this font. <P> The XUID field is a collection of numbers separated by spaces and enclosed in brackets. This allows you to specify the extended unique ID of the font. If you have set the XUID preference entry then PfaEdit will assign values to all new fonts (by appending a number unique to this font to the end of your preference item). Adobe recommends that the XUID be changed every time the font is changed, so each time you generate a postscript font, that font's XUID (if present) will be incremented by 1 (This incrementing does not happen in CID-keyed fonts, where the XUID behavior is too complex for this simple trick). <P> The UniqueID field is an older convention for the same purpose as XUID. If you do not fill in this field then PfaEdit will pick a random number for you in the allowable range. If you have talked to Adobe and been assigned a real UniqueID then you may use this field, otherwise leave it blank. <P> If you want your font to have <A NAME="vertical">vertical</A> metrics (generally this means you are working on a CJK font) then check the <CODE>[*] Has Vertical Metrics</CODE> checkbox. This will enable the Vertical Origin field, and will mean that when you generate a truetype or opentype font a vertical metrics table will be added. The Vertical Origin is the vertical offset from the origin of the design coordinate system to the origin for the purposes of vertical metrics.<BR Clear=ALL> <H2> <A NAME="Private">Private</A> -- <SMALL>(font-wide postscript hinting)</SMALL> </H2> <P> <IMG SRC="fontinfo-private.png" WIDTH="369" HEIGHT="472" ALIGN="Right">This sub-dialog shows most entries in the font's Private dictionary. The interesting things in this dictionary are mostly concerned with hints appropriate for the entire font. I shall not go into detail about the meanings of the various entries, that is best understood by reading <A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/T1_SPEC.PDF">Adobe's Type1 specification</A>. <P> Don't try to change these until you understand what they mean. <P> The dialog is shown at right. It consists of a list, an editable region and a series of buttons. The list gives the names (keys) of the dictionary entries, while the editable region displays the value of the currently selected entry. To change an entry, simply select its key and then modify the value below. <P> For example the <CODE>BlueValues</CODE> entry specifies certain key regions of the font in a vertical direction. For instance it might contain the baseline serif, the x-height serif, the cap-height serif. It is expressed as an array of numbers, grouped in pairs. The first number of a pair is the low end of the region and the second is the high end. So in the example at right, the value of <CODE>BlueValues</CODE> is <CODE>[-15 0 692 707 490 502 668 680 742 742]</CODE> (some of the array is not shown, and the scroll bar must be used to display it). <P> When the <CODE>[Guess]</CODE> button is enabled PfaEdit thinks it can make a reasonable guess for the value of the currently selected entry. Often two entries in the dictionary will be closely linked and guessing at one will also guess at the value of the other (PfaEdit will warn you of this). In this case if PfaEdit were to guess the value of <CODE>BlueValues</CODE> it would also guess the value of <CODE>OtherBlues</CODE>. <P> You may also delete an entry from the dictionary with the <CODE>[Remove] </CODE>button. Some entries (such as <CODE>BlueValues</CODE>) are required to be present in any type1 font, but you may still delete them. PfaEdit will simply guess at a reasonable value when it needs to generate the font.<BR Clear=Right> <P> <IMG SRC="privatekey.png" WIDTH="208" HEIGHT="146" ALIGN="Left"><IMG SRC="privatekeymenu.png" WIDTH="208" HEIGHT="202" ALIGN="Right">The <CODE>[Add]</CODE> button allows you to add new keys to the dictionary. Every key will be added with a blank value, and you will almost certainly need to provide an appropriate value for it. When you press <CODE>[Add]</CODE> a dialog pops up which allows you to enter the key's name. There is a pull down list of known keys (that aren't already in the dictionary), or you may add keys by typing them in. <P> Certain keys affect things other than hints. The <CODE>lenIV</CODE> entry controls how much random padding is placed around the type1 strings when the font is generated. Normally this will be 4, but if you want to save space (4 bytes per character in pfb format, 8 bytes in pfa) you may choose another value. The UniqueID key represents the font's Unique postscript ID. If you provide a value here then PfaEdit will copy it into the UniqueID field in the Font Dictionary. If you do not provide a UniqueID here, PfaEdit will generate a random one itself (this is different from True Type's UniqueID. They perform the same function but are formatted differently). <H2> <IMG SRC="fontinfo-ttfvals.png" WIDTH="369" HEIGHT="472" ALIGN="Right"><A NAME="TTF-Values">TTF Values</A> </H2> <P> This sub dialog contains a few settings important on Windows platforms. <P> The weight class provides a numeric value describing the boldness of the font. A normal face will usually have a boldness of 400, and a bold face will usually be 700. This must be a number between 100 and 900. <P> The width class allows you to provide a numeric value saying how condensed or expanded this font is. <P> The PFM Family is used when generating PFM files and classifies the font into some rather broad catagories (Serif, Sans, Monospace, Script, Decorative). <P> You can control whether you want to allow your font to be embedded into other documents (most commonly pdf). You can restrict it so that it can never be embedded, it can be embedded into documents that can be printed (but not edited), it can be embedded into documents that can be edited, or it can be embedded into and editable document and later extracted and installed on a different system. You can also control whether the document producer is allowed to extract the characters it needs and make a new font from them (which saves space) or whether they must include the entire font if they use any of it. Finally you can restrict the embedding so that only bitmap versions of the font may be embedded. (meaningful in CID fonts as well as TTF). <P> You can also specify the default line gap, or leading between lines. <P> And if your font has vertical metrics enabled (See PS General above) you will be able to set the default spacing between vertical columns of text. (the equivalent to LineGap in vertical text).<BR Clear=ALL> <H2> <IMG SRC="fontinfo-ttfname.png" WIDTH="369" HEIGHT="472" ALIGN="Right"><A NAME="TTF-Names">TTF Names</A> </H2> <P> TrueType (and OpenType) fonts are allowed to have different names in different languages. So a French user might see CaslonItalic displayed as CaslonItalique in a font menu, while a German user might see CaslonKursive. There are about 20 different strings which may be customized into various different languages. Customizing one string does not mean that you must customize the others (indeed, usually only the Style string is customized). <P> If you don't include any values here when PfaEdit saves a font as truetype it will create an entry with an American English language containing the postscript versions of the strings. <P> The various strings and a brief description of their meanings are: <DL> <DT> Copyright <DD> Allows you to specify the copyright message <DT> Family <DD> The font's family name <DT> Styles (SubFamily) <DD> This should (in English) have values like "BoldItalicCondensed". This is the most likely string to change in different languages. <DT> Fullname <DD> The concatenation of the Family name and the Styles name <DT> UniqueID <DD> This is a string that uniquely identifies the font in a human readable fashion. It's format is quite different from postscript's UniqueID and PfaEdit will create an appropriate string if you don't specify one (rather than copying from postscript). <DT> Version <DD> A string containing the version number of the font. <DT> Postscript Name <DD> (PfaEdit will not let you set this. It will always be set directly the the postscript fontname, only one instance of the tag is allowed in the font and it must be ASCII) <DT> Trademark <DD> A string containing any trademark information for the font. <DT> Manufacturer <DD> The name of the company that distributes the font. <DT> Designer <DD> The name of the person who designed the font. <DT> Descriptor <DD> A description of the font and its characteristics. <DT> VenderURL <DD> An URL pointing to the font's vender. <DT> DesignerURL <DD> An URL (often an e-mail address) pointing to the font's designer <DT> License <DD> A string describing the license terms under which the font is marketted <DT> License <DD> An URL pointing to a page describing the terms of the license <DT> Prefered Family <DD> This is to get around a quirk of windows where only four Style names are allowed per family, so font families with more than four styles would get different family names above, but the preferred family name would be the same. This should only be specified if it differs from the family <DT> Prefered Style <DD> This is similar to the above, except it applies to the style. <DT> Compatible Full <DD> This is to get around a quirk on the Mac. <DT> Sample Text <DD> Whatever. </DL> <P> These are described in the <A HREF="http://fonts.apple.com/TTRefMan/RM06/Chap6name.html">original true type docs</A>, but they apply to <A HREF="http://partners.adobe.com/asn/developer/opentype/recom.html">open type</A> as well. <P> These settings specify strings for the windows platform. PfaEdit doesn't really support the macintosh platform very well (because I don't know how to make the mac do Unicode). It will, however, generate two additional string sets by taking the american english entries and creating a "Mactintosh English" and an "Apple Unicode (2.0)" set. <P> Generally fonts will have a fairly complete set of strings in the American English entry, with the Style string (and nothing else) translated into different languages. <TABLE BORDER CELLPADDING="2"> <TR> <TH>English</TH> <TH>Regular</TH> <TH>Bold</TH> <TH>Demi-Bold</TH> <TH>Light</TH> <TH>Medium</TH> <TH>Book</TH> <TH>Italic</TH> <TH>Oblique</TH> <TH>Condensed</TH> <TH>Expanded</TH> </TR> <TR> <TH>French</TH> <TD>Normal</TD> <TD>Gras</TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD>Italique</TD> <TD>Oblique</TD> <TD></TD> <TD></TD> </TR> <TR> <TH>German</TH> <TD>Standard</TD> <TD>Fett</TD> <TD>Halbfett</TD> <TD>mager </TD> <TD>mittel </TD> <TD>Buchschrift </TD> <TD>Kursiv</TD> <TD>schräg</TD> <TD>schmal </TD> <TD>breit</TD> </TR> <TR> <TH>Russian<BR> <SMALL>(koi8r)</SMALL></TH> <TD></TD> <TD>ÖÉÒÎÙÊ</TD> <TD>ÐÏÌÕÖÉÒÎÙÊ</TD> <TD>ó×ÅÔÌÙÊ</TD> <TD></TD> <TD></TD> <TD>ëÕÒÓÉ×ÎÙÊ</TD> <TD>îÁËÌÏÎÎÙÊ</TD> <TD>óÖÁÔÙÊ</TD> <TD>ûÉÒÏËÉÊ</TD> </TR> <TR> <TH>Spanish</TH> <TD>Normal</TD> <TD>Nigrita</TD> <TD></TD> <TD></TD> <TD></TD> <TD></TD> <TD>Cursiva</TD> <TD></TD> <TD></TD> <TD></TD> </TR> </TABLE> <P> (Any help in expanding/correcting the above table would be greatly appreciated <A HREF="mailto:gww@silcom.com">gww@silcom.com</A>) <P> When you are setting the Style string in American English another button appears in the dialog, labelled "Translate Style". If you press this button then PfaEdit will attempt to figure out the style of the font and then attempt to translate it into whatever other languages in knows about (essentially the above table). It will only translate to a language for which it knows all the componants and for which you have not already provided a translation. So if your style in American English is "BoldItalic" (and you have no other style entries) then after you press the "Translate Style" button PfaEdit will generate "GrasItalique" for French, "FettKursiv" for German, "ÖÉÒÎÙÊëÕÒÓÉ×ÎÙÊ" for Russian and "NigritaCursiva" for Spanish. <H2> <IMG SRC="fontinfo-panose.png" WIDTH="369" HEIGHT="472" ALIGN="Right"><A NAME="Panose">Panose</A> </H2> <P> This sub-dialog allows you to describe your font in 10 different dimensions. The exact meanings of many of these entries are not clear to me, I have merely typed them in as specified in the <A HREF="http://fonts.apple.com/TTRefMan/RM06/Chap6OS2.html">true type docs</A>. These same docs refer to another document, <I>PANOSE v2.0 Numerical Evaluation</I> which I cannot find.<BR Clear=All> <H2> <IMG SRC="fontinfo-comment.png" WIDTH="369" HEIGHT="506" ALIGN="Right"><A NAME="Comment">Comment</A> </H2> <P> This allows you to keep track of arbetrary comments inside your font database. It does not correspond to any postscript or truetype entity. It is intended to store a changelog for the font itself, but could be used for other purposes... <P> <P> <P ALIGN=Center> -- <A HREF="elementmenu.html">Prev</A> -- <A HREF="overview.html">TOC</A> -- <A HREF="elementmenu.html">Next</A> -- </BODY></HTML>