Using Adobe Type 1 Multiple Master Fonts with TEX
Michel Goossens CN Division, CERN CH•1211 Geneva 23 Switzerland
Email: m goossens cern ch
Sebastian Rahtz Elsevier Science Ltd The Boulevard, Langford Lane Kidlington, Oxford OX51GB UK
Email: s rahtz elsevier co uk
Robin Fairbairns University of Cambridge Computer Laboratory Pembroke St, Cambridge CB23QG UK
Email: rf cl cam ac uk
Abstract
Adobe’sMultiple Master font format has some of the properties that METAFONT pioneered toexpressmanyfontsofthesamefamilyfrom thesame(set of) sources. Theadvent ofmultiple master fonts could offer a significantlybetter choice of fonts to users of TEX;however, thereare problems integratingthem with TEX,and thepaper presents a first solution to thoseproblems. Thepaper isderived(byRobinFairbairns)fromanarticlewrittenbyMichelGoossensand Sebastian Rahtzfor the UKTUG magazineBaskervillevolume5,number 3. Asademonstration of the effectiveness of the techniques described, it is being typeset using Adobe Minion and Myriad multiple master fonts.
Introduction extra•bold weight,aswellasanyintermediatemaster designs that are required. The maximum number of master designs Themultiplemaster font format isan extension oftheType1 allowed is sixteen. font format, which allows the generation ofa wide varietyof A font instance consists of a font dictionary derived typeface styles from a single font program. This capability from the multiple master font program (or from another allows users and applications control over the typographic
font instance). It contains a WeightVector array with k parameters of fonts used in their documents, in a manner values that sum to 1.0and which determinethe relativecon•
reminiscent ofKnuth’sground•breaking METAFONT .This tributionsofeach master design totheresultinginterpolated article describes the multiple master system in some detail, design. and describestheproceduresneeded tomakeinstances, and
Allderived font instancessharethe CharStrings dic• create the appropriate font metrics for use with TEX. tionary and Subrs array of the main multiple master font Multiple Master overview program, making it relatively economical to generate a va• riety of font instances. Multiple master fonts can be made Amultiplemaster font programcontainstwoor moreoutline compatible with the installed base of PostScript language typefaces called master designs, which describe one or more interpreters byincluding several PostScript languageproce•
design axes. Themaster designs that constitutea design axis duresandanewsetof OtherSubrs routinesin thefont pro•
represent a dynamic range of one typographic parameter, gram. Theprocedures includethenew makeblendedfont
such as the weight or width. This range of styles is defined operator, the interpolation procedure Blend and a new
in a multiple master font program by specifying one master definition of the findfont operator. design to represent each end of an axis, such as a light and
TUGboat, Volume 16 (1995), No. 3 — Proceedings of the 1995 Annual Meeting 253 Michel Goossens, Sebastian Rahtz and Robin Fairbairns
Multiple MasterDesign Space It ispossibleto think ofthe The values used for calculating the weighted aver• master designsasbeingarrangedina1,2,3,or 4dimensional age are stored in the font dictionary in an array named
space with various font instances correspondingto different WeightVector. The multiple master font program, as
locations in that space. Theentries in the FontInfo dictio• shipped by the font vendor, can have a default setting for
naryspecifywhat this spaceis and wherethemaster designs the WeightVector; it is recommended that it is set so the arelocated in it. Thisinformation isnecessaryfor interactive default font instance will be the normal roman design for programs that allow users to create newfont instances, and that typeface. should beincluded in thefont’sAdobeMultipleFont Metrics
Multiple Master Keywords BlendAxisTypes is a (re• (AMFM)file. Figure 1 illustrates an example of the design space of a quired) arrayof n PostScript language strings where n is the dimension ofthedesign spaceand hencethenumber ofaxes. threeaxis multiplemaster font. In this example, theaxes are Each stringspecifiesthecorrespondingaxistype. In thecase weight, width,andoptical size.Itisrecommendedthatafont of the Minion 3•axis example, this value would be:
program be organized to havethe lightest weight, narrowest