designwithfontforge.comdesignwithfontforge.com/ebook/design-with-fontforge_en... · 2019-10-25 ·...

205

Upload: others

Post on 24-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

1.10

1.11

1.12

1.13

1.14

1.15

1.16

1.17

1.18

1.19

1.20

1.21

1.22

1.23

1.24

1.25

1.26

1.27

1.28

1.29

1.30

1.31

TableofContentsIntroduction

WhatIsaFont

TrustingYourEyes

PlanningYourProject

TheEMSquare

InstallingFontforge

ConfiguringFontforge

GeneralUIintroduction

UsingtheFontforgeDrawingTools

DrawingWithSpiro

Creating“o”and“n”

FontInfo&Metadata

WordSpace

CreatingYourTypeDNA

CapitalLetters

LineSpacing

PunctuationandSymbols

CompleteingtheLowerCase

DiacriticsandAccents

Numerals

BoldandOtherWeights

Italic

Spacing,MetricsandKerning

MakingSureYourFontWorks,Validation

TheFinalOutputGeneratingFontFiles

WhenThingsGoWrongWithFontforgeItself

DesigningDevanagariTypefaces

ImportingGlyphsfromOtherPrograms

AddingGlyphstoanArabicFont

FurtherReading

Glossary

2

Introduction

Thisbookhasbeenproducedtohelpmaketheprocessoftypedesignavailabletoanyone.Typedesignisvisuallycomplexaswellashighlytechnical–howeveritiseasiertobeginmakingtypenowthanever,partlybecauseoftheavailabilityoffreetoolslikeFontForge.Whilebeingahandytoolwithwhichtobegin,FontForgeisnotjustforbeginners.Ithasanadvancedtoolsetandisrapidlyimprovingatthetimethisbookisbeingwritten.

Thisbookaimstooffertechnicalhelpandgeneralinsightintoplanningatypedesignproject,andalsooffersadviceabouthowtomakeyourworkflowmoreefficient.

Ifyouwishtohelpus,youcancontributetomakingFontForgebetterbygivingfeedbackorevenbycontributingcontentandfixesonGitHub.IfyoufaceanybuginFontForge,searchtheissuetrackeronGitHubtoseeifyouhitaknownbugandwhatthestateofitsresolutionis.Otherwise,seehereforbugreportingguidelines.

Wehopeyouwillenjoyreadingthistutorialasmuchaswedidwritingit.

—TheFontForgeProjectContributors

Introduction

3

WhatIsaFont

—Whatmakestypefacesdifferentfromhand-writing,calligraphy,lettering,andlogos?

Thesinglebiggestissuethatmakestypedesigndifferentistheneedforeveryglyphinthetypefacetoworkwitheveryotherglyph.Thisoftenmeansthatthedesignandspacingofeachpartofthetypefaceendsupbeingaseriesofcarefulcompromises.Thesecompromisesmeanthatwecanbestthinkabouttypefacedesignasthecreationofawonderfulcollectionoflettersbutnotasacollectionofwonderfulletters.Inotherwordswemustthinkaboutthegroupandhowitwillperformtogetherandprioritizethisoveranyquestionofwhatiswonderfulinasingleletter.

Thisneedtoprioritizewiththesystemratherthanwithanysinglepartalsoleadstoaneedtoanalyseourdesignprocessonthelevelofthesystem.Characteristicswhichspanlettersbecomethethingswewanttofocuson,particularlyatthebeginningofthedesignprocess.

Theotheroddityintypedesignisthattoaverylargeextenttheformswearedesigningarealreadysignificantlyestablished.Ourtaskastypedesignersisnotsomuchtocreateanutterlynewformbutrathertocreateanewversionofanexistingform.Thiscanperplexnewtypedesigners.Findingjusttherightamounttochangeinordertoexcitebutnottoalienateareaderisatrickything.Oftendesignersgetstuckinletter-specificthinking.Thismistakecanbeeasilyavoidedifyourealizefromthestartthatwhatismostmeaningfulinatypefacearethepartsofitthatrepeatthemost.Typefacedesignisnotjustaboutdesigningthecharacteristicsappliedtothecommonformsweallrecognize,butalsototheformsthatoccurmostoften.

Itisalsousefultorecognizethatthesecharacteristicsnotonlyhelptocreateafont’svoiceoratmosphere,butalsodeterminewhatthefontwillorwillnotbeusefulfor,andtheysometimeshelpdeterminethetechnologicalcontextsforwhichafontissuitable.

Itmayseemintimidatingorexcessivelyabstracttothinkaboutthedesignofafontinthisway.However,gettingusedtotheseideasisthekeytoafaster,moreeffective,andsatisfyingtypedesignprocess.

Let’sbeginbyidentifyingthemainsystemiccharacteristicsintypedesign.

Construction

WhatIsaFont

4

Constructionreferstothestructureoftheunderlyingstrokesthatformaparticularglyph.Perhapsyoucanimaginetheglyph’sskeleton.Thekindofconstructiontouseisarguablyoneofthemostimportantquestionstothinkabout,becausetheconstructionaffectssomanyoftheremainingchoices,particularlyifyourdesignisgoingtofeelsomewhatfamiliartoreaders.Intheexampleabove,thewhitelineinsidethelettersindicatetheapproximateconstructionsuggestedbytheshapeofthelettersthemselves.

However,thewaystrokesend(the‘terminals’)andthe‘serifs’(seebelow)aregenerallynotpartofwhatismeantby‘construction.’Constructionistheskeletonoftheglyph,whilerest–width,weight,terminals–areallpartsoftheflesh.

ProportionofX-heighttoCap-height

ThelettersontheleftcomefromPlayfairDisplay,whichhasalargex-heightrelativetoitscap-height.ThelettersontherightarefromEBGaramond,whichhasasmallerx-height.Inthesampleabove,thesizeoftheHhasbeenadjustedsothattheymatch.

AscenderHeight

WhatIsaFont

5

Intheexampleabove,thex-heightshavebeenmatchedinordertoillustratetherelativedifferenceinascenderheights.

Ascendersusuallyexceedthecap-heightbyatleastalittle,especiallyintextdesigns.Insomecases,however,theycanmatchorevenbelowerthanthecap-height.Longerascenderscanaddelegancetothelookofatypeface.Theyoftengowithsmallerx-height.

Descenderdepth

WhatIsaFont

6

Likeascenders,descendersthatarelongcanfeelelegant.

Takentogether,longascendersanddescenderscanbecomedifficulttomanage.Ifthetypefacewillbeusedwithsmalllineheights,theelongationmeanslettercancollideacrossrowsoftext.

Width

WhatIsaFont

7

Thewidthofatypedesignwillalternotjusthowitfeelsbutalsowhatitisusefulfor.Theexampleontherightisfromatextface.Theexampleontheleftisfromadisplaydesignmeanttobeeyecatching.Lettersthataremorenarrowthanthetextfaceexamplearealsopossibleandcanbeusedtosavespaceortofitmoretextinasmallerspace.

Widthregularityversusvariability

Thelettersinthetoprowofthisexampleshowagreatervarietyofwidththandothelettersinthebottomrow.

Weight

WhatIsaFont

8

Slant

Contrast

Contrastreferstohowmuchvariationinstrokewidthisfoundwithinaglyph.Noticeinthebelowtwo‘O’glyphsthattheoneonthelefthasmuchgreatervariabilityinlinethicknessbetweenthetopandsidesoftheglyph.Bothglyphshavesomecontrast,buttheoneonthelefthasmuchmorethantheoneontheright.

WhatIsaFont

9

Typewithconsistentweight(strokewidth)initsletterformsornovisiblecontrastproducesasheerdistinctionfromcontrastedtype.Likethechoicebetweenserifsorsans-serifs,contrastisanearlychoiceoftypedesign.Itisinterestingtonotethat‘slab’serifdesignsgenerallyuseconsistentstrokewidthintheirletters,andthatthedesignofslabserifsisnotmerelyabouttheserif,asitsounds!Itmustberememberedthattherulesofperceptionapply(see“Trustingyoureyes”)–contrastisabouthowtheweightlooksbutnothowitmeasuresouttobe.

Angleofcontrast

Inthebelowimage,weseethatthethinpartsofthelowercaseletter‘o’shapesaredifferent.Intheglyphontheleft,thethinpointslieonaperfectlyverticalaxis.Intheglyphontheright,theaxisisdiagonal.

WhatIsaFont

10

Weightdistribution

Ifyourfontusesverylittletonocontrast,youdon’treallyneedtothinkofit.Mostfonts,however,haveatleastsomedegreeofcontrast.Inthesecases,youhaveawidevarietyofoptionstochoosefromwhenitcomestohowtodistributetheweightinyourfont.

Vertical

WhatIsaFont

11

Verticaldistributionofweightisverycommon.The9and8aboveareaparticularlyintenseexample.

Horizontal

WhatIsaFont

12

Horizontalweightdistributionismuchlesscommon,butisnonethelessseeninmanyfonts.

Bottom-heavy

Top-heavy

Irregular

WhatIsaFont

13

Stems

Itiseasytoassumethatyourstemswillsimplybestraightandthatthisisn’tarealconcern,butboththeweightandtheshapeofyourstemsarethingsyoucanandshouldmakedeliberatechoicesabout.

Joins

WhatIsaFont

14

Bowls

Notethatbowlsarethestrokepartinthebelowillustrationsandnottheblackinnerforms.Theinnerstrokesarereferredas“counters”.Whiledesigningtype,youwilloftenfindyourselfalteringyourworknotbecauseoftheshapeorwidthofthestrokebutduetotheshapeandsizeofthecounter.

WhatIsaFont

15

Terminals

Terminalsaretheendformsofthestrokes.Theyarenotsameastheserifs.Theyareoftenperpendiculartotheangleofthestrokeatitsend,orshearedhorizontallyorvertically.Theymayalsoreflecttheshapeoftheniborothermark-makingtoolthattheletterformsevoke.

Speed

WhatIsaFont

16

The‘n’ontheleftseemstobewrittenmuchfasterthantheoneontheright.Speedisdiscussedinmoredetailinthechapteronitalics.

Regularity

Thefollowingcharacteristicsarenotpresentinalltypedesigns,howevertheyarevariablesthatmaybeapartofyourdesign.Ifthisisthecase,itisworthconsideringthedegreetowhichtheywillplayaroleasavariable.

WhatIsaFont

17

Flourish

Noticethatinthefontontoptheflourishismorepresentinthecapitalletterandthesecondonetheflourishismoreinthelowercase.

Serif-Tobeornottobe

Serifsareoneofthemostdistinctaspectsofatypeface,andoftenthefirstclassificationoftypeisbetweenserifandsans-seriftype.

Thischoiceaffectshowtheendterminalswilllooklike.Serifscanbetwosidedoronesided.Theycanbeperpendiculartostrokeorhavetheirowndirection(likebeingalwayshorizontalorvertical).Serifscanbewithorwithoutbrackets.Anyserifdesignisamixofalloftheaboveappliedconsistentlytothetypedesignwithsomedeviationsforparticularletters,especiallythe‘S’,‘C’and‘Z’(e.g.atypewithhorizontalserifsforallletterswilloftenhaves,candztohaveverticalserifs).

WhatIsaFont

18

Thereisaurbanlegendassertingthatseriftypesareeasiertoreadthansans-serifs–itisasolemyth,untilfurthernotice.

Theformoftheserifsarerelatedtotheformsoftheterminals.

Brackets

Thecornerportionsofaserifwhereitconnectstothemainstrokearecalled‘brackets’.Aparticulardesignmayhavethemgivingasoftfeeltotheserif(TimesNewRomanisanexample)ormaychoosetonothaveanybracket.Somedesignsalsousebracketsonlyononesideorwithdifferentproportionsonthetwosides.

Thisisarelativelystrongparameterthatrendersfeeltothetype–elegance(smoothorlargebracketsofTimesNewRoman)orchunkycrisp(absentbracketsofArvo).

Slab-serifs

AlsocalledmechanisticorEgyptiantype,slabsarethick,block-likeserifs.Slabserifsdon’tusebrackets.Generallyspeaking,typedesignwithsuchserifsareseentohavelesscontrastintheirglyphs–Rockwell,CourierorAmericantypewriterreflectthat.

Itmaybesafetoassumethatslabserifshavebeenusedtoaddsomeornamentorrhythmtoanotherwiseno-contrasttypedesign.Butthisisnotanabsoluterule.

SerifTerminals

Justlikeletterterminals,theendshapeoftheserifsthemselvescontributetothefeelofthetype–eithersoftorchunky.Serifterminalscanbesoftandrounded(Courier)orbluntandangular(Rockwell).

Decoration

Dimension

WhatIsaFont

19

WhatIsaFont

20

TrustingYourEyes

Fontdesignistheprocessofiterativelytestingtheindividualchoicesthatcollectivelyadduptoacompletedesign.Youwillbetestingyourfonttoseeifthecombinationofdecisionsyouhavemade:

AllowsyoutoreadthefontMakesthefontfeelrighttoyouMakesthefontusefulforthethejobsyouwantthefonttobeabletodo.

Asyoutestthedesign,youwillhavetotrustyourperceptionsanddesignsomewhatpractically.Muchoftypedesignrequiresthatyoumakeletterssimilarandthatyourepeatforms.

Itistemptingtoassumethatifyoumeasurethepartsandthespacesbetweentheglyphs,thenyouwillgetreliableresults.Whileveryuseful,thisapproachhasreallimitations.Youshouldexpecttomakeadjustmentsifsomethinglookswrongtoyou.Furthermore,youshouldfeelconfidentthatmakingchangesuntilit“looksright”isthecorrectthingtodo.

Thereasonthisistrueisthatthereareanumberofnaturalopticalillusionsthatallreadersaresubjectto.Theseillusionsmustbeaccountedforbyalteringtheshapesoflettersuntiltheylookrighttoyou.

YoucangetafeelofwheretolookandwhatelementstoadjustintheseTypeReviewVideos(ExternalLink)

ExamplesofillusionsSomeillusionsinvolvetheperceivedweightoflines,someinvolvetheperceivedlengthoflines,andothersinvolvetheeye’sperceptionofshapes.

Horizontalvs.verticalweight

Theexampleontheleftshowsan‘H’whichbarsarepreciselyequalinthickness.Thislookswrong.Canyoufeelit?Theotheroneontherighthasahorizontalbarwhichhasbeenthinnedtoappearequalinthickness.

TrustingYourEyes

21

GlyphsinwhichopticaladjustmentshavetobemadearenumerousandincludeA,E,F,L,H,f,t,andz.

Diagonalthickness

Similarly,ifyouhavebarsofthesamewidthandoneofthemissetatadiagonal,thediagonalbarwillseemslightlyheavierthantheverticalbarandslightlythinnerthanthehorizontal.Ifyouwantitlookright,youwillhavetoadjustittobelighterlikethehorizontalexample,butjustalittleless.

TrustingYourEyes

22

Glyphsinwhichthishumanperceptionmayberelevantarequitenumerousbutincludek,K,N,Q,R,v,V,w,W,x,X,y,Y,7,2,&,ł,Ł,ø,Ø,√,⁄,‹,›,«,»,½,⅓,¼,≤,≥,and×.

Lengthandperceiveddiagonalangle

Longershapesneedtoslantlessthanshortshapesinordertogivetheappearanceofsameslant.

Theimagebelowhasdiagonallinesthatareallatthesameangle.Thelongoneappearstobeatadifferentangle.

Inthenextpicturebelow,theslantofthelongerlinehasbeenadjusted:

TrustingYourEyes

23

Nowlet’slookatanactualitalic,applyingthesecorrectionstotheglyphs:

TrustingYourEyes

24

Crossingdiagonals

Whenabarcrossesanotherdiagonalorastraightline,itwillneedadjustmentstonotappearasmisaligned.

TrustingYourEyes

25

Intheexampleabove,theXonthelefthastwounadjustedbarscrossingeachother.Theexampleontherighthasbeenadjustedsothattheyappeartobealigned.

TrustingYourEyes

26

AsyoucanseeinthisXwithdottedlineontopofit,theXthatappearsvisuallyalignedinvolvesanoffset.

Glyphsinwhichthisillusionisrelevantincludex,X,k,K,×,#,andtheicelandicletter‘eth’(ð).

Perceivedheight

Theshapeofaglyphwillcontributetohowhighitneedstobeinordertolookasifitisthesameheightastheotherglyphs.Roundglyphsneedtoovershoottheheightofflatglyphsbyalittlebit.Glyphswhichhavepointiershapeswillneedtoovershootmore.Thesharpertheshape,themoreitwillneedtoovershootinordertolookcorrect.

TrustingYourEyes

27

Intheimageabove,thetopthreeshapesareunadjusted—thatis,theyhaveidenticalheights.Thethreeshapesonthebottomhavebeenadjustedsothattheyappearmoresimilarinheight.

Thisillusionisrelevantforanyglyphthathaspartswhichareeitherroundorpointy.TheseincludeO,Q,C,S,A,V,W,andsoon.

YouarefullyqualifiedtocorrectfortheseillusionsBecauseyoucanseeboththeillusionandtheeffectofcorrectingfortheillusion,youwillbeabletomakethesecorrectionsforyourself.Youjusthavetotrustyourimpressions.

TestforfitnessofpurposeJustlikeyouareabletoseeopticalillusionsandcorrectthem,youalsohavetheabilitytotellifafontisworkingforthespecificuse(oruses)youmayhaveinmind.That’swhereyoushouldalsotrustyourjudgment.

Quiteseparately,itisworthnotingthatnofontcanbeevaluatedapartfromthewayitisusedandwhatitisusedfor.Thisiswhyitisessentialtobegintestingfromtheverybeginningofthedesignprocess,andtocontinuetestinguntilyoufeeltheprojectisdone.

Whatwillthesetestsbelike?Thetestswillbesimpleatfirst,allowingyoutotestthefirstdesignchoices.Asyourdesignbecomesmorecomplete,yourtestswillneedtokeeppaceandletyouevaluatetherelativesuccessorfailureofthenewestchoicesyouhavemade—or,evenbetter,tocomparetwo(orthree,ormore…)optionsyouareconsidering.

Sometimesyouwillfindyouhavetodoublebackandchangeadesignchoiceyouthoughtwasalreadyworkingwell.Thisisnormal.Makingafontrequiresbalancingmanyvariables,andsurprisesoftenoccur.Themoreyoudesignfonts,themoreexperienceyouwillhaveinmakingthesearbitrarychoices.

TrustingYourEyes

28

Whennearingtheendoftheprocess,ifthefontistobeusedinasimpleway,thetestsshouldalsojuststaysimple.However,ifafontistobeusedinmanywaysorinawiderangeofprintingorscreenenvironments,thenitshouldbetestedacrossallthatrangeofsituations,whichincludesprintingvarioussamplesofthefont.

Itcansaveyoudesigntimetohaveawelldefinedideaofthefinaluseyouintend.However,thisisnotalwayspossibleandyourideasmayevolve.Thekeythingistothinkaboutanddefinetheusecasesascompletelyasyoucan,thentoensurethatyourtestskeeppacewiththequestionsyouareaskingyourselfwhiledesigningthefont.

FurtherReadinghttp://typographica.org/on-typography/making-geometric-type-work/http://typedrawers.com/discussion/1085/the-letter-s

TrustingYourEyes

29

PlanningYourProject

Nowthatyouhaveasenseofhowafontdesigncanvary,youmaywanttodecidewhetheryourprojectwillhaveonlyonefont,ifitwillbeacollectionofseveralinter-relatedfonts,ifitwillbea(nowtraditional)threeorfour-stylestypefamily,orifitwillbesomethingevenlarger.

Commonstylesoftypefamiliesinclude:

ARegularandaBoldweightRegular,Bold,Italic–eventuallywithaBoldItalicThin,Light,Book,Regular,Semi-Bold,Bold,Extra-Bold,HeavyandBlackRegular,Condensed,BoldandBoldCondensedNarrow,Condensed,WideandExtraWideRegular,Semi-Flourished,Flourished,VeryFlourished,ExtremelyFlourished.

Whiletherearereasonsthattypicalpatternsinfamiliesexist,youmayfindyouwantaverydifferentkindofgrouping.

Thescopeoftheprojectcanbedeterminedexclusivelybyyourambitionandyouramountoffreetime.Butprojectscopesareoftendeterminedbytheuseyouhaveforthecollectionorfamilyoffonts,or,evenfurther,bytheneedsofyourclient.Certainlyforprofessionaltypedesigners,thelattertwoquestionsareusuallythedeterminingfactors.

FeelingThemostimportantthingaboutatypedesignisthefeelingsitevokes.Thisisnotoriouslyhardtoverbalise,butitiswhatmakesaparticulartypefacemeaningfullydifferentfromanyother.

AtypedesignerinPortugal,NatanaelGama,designedtheExofamilywithFontForge.OnhishomepagehedescribesanotherprojectforthesculptorJohnWilliamsandincludesagraphicshowinghisbriefinamatrixofcontinuumsoffeelings:

FigurativetoAbstract50%GracefultoRobust:30%CalmtoEnergetic:0%PuzzlingtoPlain:15%ExperimentaltoStandard:15%PrestigioustoOrdinary:15%OtherIdeas:Beautiful,OutsideSpaces,HumanCondition

GlyphcoverageAfontisstillafontevenifithasonlyoneglyphinit.Butafontcanalsohaveafewhundredoreventhousandsofglyphs.Ifyourprojectisself-initiated,thenthischoiceisultimatelyarbitrary.Youmaydecideyouonlywantcapitals,orthatyouwanttoincludetheglyphsfoundintheotherfontsyouuse.Ifyouaredoingworkforaclient,youmaywanttoclarifywhichlanguageorlanguagesthefontismeanttosupport.Yourgoalcouldalsobetoextendanexistingfont,addingafewglyphstomakeitworkinoneormoreadditionallanguages.

It’scertainlyagoodideatomakethischoicedeliberately,andtoerronthesideofincludinglessratherthanmore.Oftenasatypefaceisbeingmade,itcanbetemptingtoincludemoreandmoreglyphs–butitisfrequentlymorevaluabletocontinuetoimprovethecoresetofglyphsthanaddingnewones.

PlanningYourProject

30

Multi-stylefamilyworkflowIfyouknowfromthestartthatyouwillhavemorethanonefont,youwillsaveyourselftimeifyouplanandbuildthefontfamilysystematically,andworkonthestylessomewhatinparallel,ratherthancompletingonestyleatatime.

Itisofcourseimpossibletocreateeverystyleinacompletelyparallelmanner,butit’spossibletocompleteagivendesignstepforeachstyleinordertocheckandbesureabouttherelationshipsbetweenthestyles,earlyintheprocess.Youmayfindthatitisusefultocompleteonefullsetoftestletters(suchas“adhesion”)foraregularversion,andthentomake“adhesion”sfortheotherstylesnext.However,youcanalsomaketheprocessevenmoregranularandmakedecisionsaboutspecificpartsofthebaseletters(suchasthe‘n’and‘o’)forallstylestogether.

Dependingonthesizeandcompositionofthefamilyyouareplanning,youmayfindthatitsavestimetomakeinterpolatableinstancesofglyphs,notonlysoyoucaninterpolateintermediatestyles,buttoaidmakingdesignchoicesaboutthosetypographicvariablesthatshiftacrossthemembersofafamily.Foraremainderofthevariablesyoushouldbeconsidering,seethechapter“Whatisafont?”.

Technical:VersionManagementYoushouldlearntouseGitandGithubtostoreyourfiles,andusethe"SFDir"formatforyoursources.

https://help.github.com/articles/what-are-other-good-resources-for-learning-git-and-githubhttp://justinhileman.info/article/git-pretty/

OverallProcess

PlanningYourProject

31

Page 1 / 1

TestingEnvironmentsWhenplanningyourproject,youmustconsiderthemediumoftypographyyouareintendingthetypefaceforprimarilyandsecondarily:Mobileandweb,ordigitalprojectors,orcheapofficebubblejetandlaserprinters,orhighendprintbureaulaserprinters,ormagazineoffsetlithographicprinting,orhigh-speedhigh-volumenewspaperprinting...andsoon.Youshouldthentrytoacquireorarrangeaccesstothosetypesettingtechnologies,soyoucanseetherealresultsofyourwork.

Throughoutthetypedesignprocess,youwillfinditveryhelpfultopreviewtextsetwithyour(prototype)typefaceatahigherresolutionthanyourlaptoporworkstationscreen.Thistypicallymeansalaserprinterwith"true"1200DPIandAdobePostScript3.Forindividualsitispossiblepurchasesomethinglikethisforaround$500,andsome2013recommendationswere:

HPP2055dXeroxPhaser4510XeroxPhaser5550Nashua/RicohP7026N

InMay2013,theProductionTypestudiohasaXerox7525with"fiery"controller,whichcostsaround€12,000topurchasebutis€300permonthtoleasewithtoner,partsandmaintenance.Inlate2015,OctavioPardoleasedaXeroxPhaser7100inasimilarwayfor€30permonth.

OpenTypeFeatures

PlanningYourProject

32

YoucanplantheOpenTypefeaturesofyourprojectbeforeyoubegindrawing.Commonfeaturesinclude

ligaLigaturesonum,lnumNumerals

Forsomelanguagesloclworksbutforothersitdoesn't,soitisbesttoexposelanguagespecificformsviabothloclandssNNorcvNN.

TheOpenTypespecificationallowsforsomekindsoffeatureswhicharenotrecommend:

histfeature.ReadmoreinthisdiscussiononTypeDrawers.

FurtherReadingAoifeMooney'spresentationonthetypedesignprocessatTypeCon2014:https://vimeo.com/107421895TypeDrawersdiscussionofPrinterrecommendationsforproofing

PlanningYourProject

33

TheEMSquare

—Alsocalledthe‘emsize’or‘UPM’.Inafont,eachcharacterisfittedintoitsownspacecontainer.Intraditionalmetaltypethiscontainerwastheactualmetalblockofeachcharacter.Theheightofeachcharacterpiecewasuniform,allowingthecharacterstobesetneatlyintorowsandblocks(seebelow).

Theheightofthetypepieceisknownasthe‘em’,anditoriginatesfromthewidthoftheuppercase‘M’character;itwasmadesothattheproportionsofthisletterwouldbesquare(hencethe‘emsquare’denomination).Theemsizeiswhatthepointsizeofmetaltypeiscalculatedupon.So,a10pointstypehasa10pointsem(seebelow).

Indigitaltype,theemisadigitally-definedamountofspace.InanOpenTypefont,theUPM–oremsizeisusuallysetat1000units.InTrueTypefonts,theUPMisbyconventionapoweroftwo,generallysetto1024or2048.

TheEMSquare

34

Whenthefontisusedtosettype,theemisscaledtothedesiredpointsize.Thismeansthatfor10pttype,the1000unitsforinstancegetscaledto10pt.

Soifyouruppercase‘H’is700unitshigh,itwillbe7pthighona10pttype.

SettingthatupintheGlyphWindow

Withtheknowledgethatyourfontisusinga1000,1024,or2048UPM,youneedtosetupthedrawingofyourglyphstoensurethatallaspectsofyourtypefacefitadequatelyintothatUPMsquare.

ThesizeoftheemsquarecanbesetfromElement>FontInfo…thenclickontheGeneraltabandyouwillseetheEMsetting,whichvalueshallbedistributedbetweentheAscenderandDescenderheights,respectivelyheightsaboveandunderneaththebaseline.

TheBaseline:

TheCapHeight:

TheEMSquare

35

Thex-height:

Laterwhendesigningyourtype,youwillhavetosettheBluevalueswhichserveforPostScriptoutlinesandalsofortheFontForgeautohinter–regardlessofwhichoutlinesyouareworkingon.YouwillfindthesettinginElement>FontInfo…,onthePSPrivatetab.FontForgecaninitiallyguessthevaluesbasedonyouroutlines,butyouwillhavetoeditthemyourselfforovershoots/undershoots—weareafewchaptersaheadofthisconcept(see“Creating‘o’and‘n’”);let’sfirstgetaholdofFontForgeanditsdrawingfunctionalities.

TheEMSquare

36

InstallingFontforge

FontForgeislibresoftware,soyoucandownload,shareandinstallcopieswithoutanyrestrictionsonusage-bothcommercialorpersonaluseisencouraged.Itisacommunity-maintainedapplication,andanyonecancontributetothesourcecode.

FontForgeisavailableineasytoinstallpackagesforWindows,MacOSXandGNU+Linuxoperatingsystems.

InstallingFontForgeonWindows

AninstallationguideisavailablefortheofficialWindowsbuilds,preparedbyJeremyTan.

InstallingFontForgeonMacOSX

AninstallationguideisavailablefortheofficialMacbuilds,preparedbyDrBenMartin.

InstallingonGNU/Linux

TheeasiestmethodtogetFontForgeonyourLinuxmachineistouseyourLinuxdistribution’spackagerepository.

DebianorUbuntu

TheFontForgepackageincludedinUbuntu14.04bydefaultdatesfrom2012,soitispreferabletoinstallthemoreup-to-datepackagefromtheFontForge[PersonalPackageArchive(PPA)](https://launchpad.net/~fontforge/+archive/ubuntu/fontforge).

Checkthatthehelperscriptadd-apt-repositoryisinstalled:

sudoapt-getinstallsoftware-properties-common;

AddtheFontForgePPA(whichwillalsoaddtheauthenticationkey):

sudoadd-apt-repositoryppa:fontforge/fontforge;

UpdatethesoftwarelisttoincludepackagesfromthePPA:

sudoapt-getupdate;

InstallFontForge:

sudoapt-getinstallfontforge;

Fedora

ToinstallFontForgeonyourFedoraLinuxdesktopmachinerunthefollowingyumcommandastherootuser.Thiswillrequireabout10MiBofdownloadtocomplete.

yuminstallfontforge;

InstallingFontforge

37

IfyouhavenotcompiledsoftwareonyourFedoramachine,afterinstallinggcc,automake,autoconfandothersthenyoumightgetanerrorduringtheexecutionofautogen.shwithlibtoolize.Ifthatisthecaseyoumightneedtoinstallthelibtool-ltdl-develpackageonFedoraorasimilardevelopmentpackageonanotherGNU+Linuxdistribution.

AfterissuingtheyuminstallyoushouldbeabletorunFontForgefromyourmenuordirectlyfromthekonsoleorgnome-terminalbyissuingthefontforgecommand.

CompileyourownversionfromGithubGitHubisasource-codehostingservicewhereeveryonecancontributetothedevelopmentofapieceofsoftware.Itstoresthecurrentleadingstateofdevelopmentoftheapplication.Insomecases,perhapsbecauseyouwantaccesstoafeaturenotyetavailableinthereleasepackages,youmaywishtocompileyourownversionfromGithub.

Fullinstructionsareathttps://github.com/fontforge/fontforge/blob/master/INSTALL-git.md

DebuggingtheFontForgesoftwareWhenyouSeetheDebuggingsectionformoreinformation.

InstallingFontforge

38

ConfiguringFontforge

FontForgecanbefine-tunedinvariousways.Herearesometipsandtricksfordoingso.YouhavemanyoptionsforoptimizingFontForgeforyourplatformandworkflow.

Pleasetellususifyouhaveanytipsyouwanttoshare.

FirstThingsFirst

Whenmakinganyconfigurationchanges,besuretofollowthis:

1. QuitFontForge(andX11)2. Makethechanges3. StartFontForgeandtestyourchanges

WindowsCurrentlywehavenothingspecifictotheWindowsdistribution.Ifyouthinkofsomething,tellus.

GNU+LinuxCurrentlywehavenothingspecifictoanyGNU+Linuxdistribution.Ifyouthinkofsomething,tellus.

MacOSXToopenalongfileorfolderlocationpathprovidedbelow:

1. Copythepath2. ⌘TabtoswitchtoFinder3. ⇧⌘GtoopentheGomenu→GotoFolderitem4. ⌘Vtopasteinthepath5. GotoopenanewFinderwindowatthatlocation

KeyboardShortcuts

Manydialogandmenuitemshaveoneletterthatisunderlined.ThesecanbeaccessedimmediatelybypressingCtrl-Altandthatkey.Forexample,ifadialogasksyouifyou'reOK,pressCtrl+Alt+o

IfyoudonotuseaUSEnglishkeyboard,youmayfindsomeofthekeyboardshortcutsaresilly.Or,youmightjustwanttocustomizethemtobethewaythatyouexpect.Tochangethesekeysopenandeditthedefaulttextfile,locatedhere:

/Applications/FontForge.app/Contents/Resources/opt/local/share/fontforge/hotkeys/default

Whenyouinstallthenextrelease,allfilesinside/Applications/FontForge.appwillbeoverwritten,sosaveaduplicatecopyofyourdefaultfilesomewhereelse,too.

ConfiguringFontforge

39

UISize

IftheUIlookstoobigortoosmall,itcanbescaledtobetterfityourcomputer.Openandedittheresourcestextfile,locatedhere:

/Applications/FontForge.app/Contents/Resources/opt/local/share/fontforge/pixmaps/resources

AddthelineGdraw.ScreenWidthCentimeters:34ifyourscreenis34cmwide.Trydifferentvaluesuntilyou'rehappy.

Bookmarks

InthefiledialogthereisabuttontoBookmarkCurrentDir,butRemoveBookmark...doesn'twork#2054.YoucaneditthelistmanuallyintheFCBookmarkssectionoftheprefsfilelocatedat

~/.config/fontforge/prefs

ResetyourbookmarksbyopeningTerminalandpastingthefollowingtextintoTerminal:

sed-ibak-e's/^FCBookmarks.*/FCBookmarks:~\/Library\/Fonts\/;\/Library\/Fonts\/;\/System\/Library\/Fonts\//g'~/.

config/fontforge/prefs;

ThenpressEntertorunthiscommand.Ifyouseenoerrors,itworkedcorrectly.

3buttonmouse

FontForgeusesthreemousebuttonclicksforsomeextrafunctions.Ifyoudon'thaveathreebuttonmouseyoucanemulatethatbyenablingitinX11/Xquartzpreferences,intheInputsection'soptionEmulatethreebuttonmouse

ChangeX11/XQuartzicontoFFicon

IfyouprimarilyuseX11forFontForge,youcanchangeitsicon.Copyandpastethefollowingtextintotheterminalandfollowtheinstructions

sudocp-f/Applications/FontForge.app/Contents/Resources/FontForge.icns/Applications/Utilities/XQuartz.app/Contents/Res

ources/X11.icns|sudotouch/Applications/Utilities/XQuartz.app

Windowmanagement

FontForgeisn'tanativeMacapp,sowindowhandlingcanbeslighty"off,"especiallyondualmonitorsystems.Toregaincontrolofwindowpositions,usethefree,libre,opensourceShiftItutilitytoassignkeyboardshortcutstosetwindowpositions.

ConfiguringFontforge

40

GeneralUIintroduction

FontForgehasthesameinterfaceonWindows,MacOSandGNU/Linuxoperatingsystems.

HereisashortintroductiontotheessentialfeaturesbyDaveCrosslandataCraftingTypeworkshop,anon-profittypedesignworkshopthatsupportstheFontForgeproject:

Thereare4mainwindows:

1.TheFontViewWindow

ThiswindowappearswhenyoufirstrunFontForge.Itshowsatableoftheglyphsinthefont.

2.TheCharacterViewWindow

DoubleclickaglyphintheFontViewtoopenitintheCharacterView.Thisiswhereyoucandrawandeditglyphs,eitheroneatatimewithatabinterface,orsidebysidewithapreparedtextfileofwordstostepthrough.

3.TheMetricsViewWindow

GotoWindow,Metrics,orMetrics,Window.OrselectsomeglyphsintheFontViewandhitCtrl-K.YoucanalsodraganddropglyphsfromtheFontViewtotheMetricsView.

GeneralUIintroduction

41

Thisiswhereyoucanadjustthespacingandkerningofyourfont.Youcanalsostepthroughapreparedwordlisttextfilehere.

4.TheFontInfoWindow

GotoElements,FontInfo.Hereyou'llfindallthemetadataaboutthefont.

5.TheTypesettingEnvironment,forTesting

Outsideanyfonteditor,you'llneedatypesettingsystemtotestyourfontsinuse.Thisisoneofthebigsecretsofprofessionaltypedesigners:Alotofthemostimportantworkinatypefacedesignprojectisdoneoutsidethefonteditor,intestingdocumentscreatedinatypesettingsystem.Themainsystemsare:

Web(Firefox,Chromium,etc)DTPtools(Scribus,Inkscape,etc)WordProcessors(LibreOffice,AbiWord,CalligraWords,etc)ProgrammingPageLayoutProcessors(LaTeX,ConTeXt,SILE,ShoeBot,Even,etc)

GeneralUIintroduction

42

UsingtheFontforgeDrawingTools

DesigningafontinFontForgewillinvolveusinganumberoftoolsandutilities,startingwithasetofdrawingtoolswhichmayfeelfamiliartouserswithexperienceinvectorgraphics–therearenoticeabledifferencesthrough.We’llfirstseektogetanunderstandingofhowBéziercurveswork,beforelookingatFontForge’sdrawingtoolsthemselves.

UnderstandingBéziercurvesTheconceptof“Béziercurves”referstoaparticularmathematicalrepresentationusedtoproducesmoothcurvesdigitally.Generally,Cubic-andQuadratic-orderofthesecurvesareused—throughFontForgealsosupportsSpirocurves,whichareanalternaterepresentationforthedesigner.

Inthischapter,wewillonlydiscussCubicpaths,asthat’swhat’sgenerallyusedwhendrawingglyphs.Spiropathswillbediscussedinthenextchapter,andQuadraticcurvesareonlyfoundinTrueTypefontsandrarelyusedindrawing–theyarerathergeneratedatbuildtime.

AtypicalBézierpathiscomposedofananchor,withtwohandlesthatmarktheoveralldirection—thelengthofeachhandledeterminesthelengthofthecurveoneachside–seebelow.

Differentkindsofpoints

Curvepoints(shownasround-shapedpoints)

Curvepointshavetwohandles,eachofthembeinglinkedtotheothersothatthelinebetweenthemalwaysstaysstraight,inordertoproduceasmoothcurveoneachside.

H/VCurvepoints(shownaslozenge-shapedpoints)

H/Vcurvepoints(‘horizontal/vertical’)areavariantofcurvepointsthatsnaptothehorizontalorverticalaxe–anessentialtoolingettingBézierformsdoneright(moreonthatinthenextsection).

UsingtheFontforgeDrawingTools

43

Coinsorcornerpoints(shownassquare-shapedpoints)

Coinscanhave0,1or2Bézierhandles.Thepositionofeachhandleisindependantoftheothers,makingitsuitablefordiscontinuitiesintheoutline.Withouthandles,coinswillproducestraightlines.

Tangentpoints(shownastriangular-shapedpoints,or‘arrowheads’)

UsingtheFontforgeDrawingTools

44

Ifyouwanttostartfromastraightlineandthenstartcurvingsmoothly,youwillwanttousetangentpoints.Atangentleavesastraightlineononeside,whiletheBézierhandleontheothersideisitsdirection–thisensuresacontinuoustransitionbetweenthelineandthecurve.

Gettingitright

Inordertoproducepropercurves–withminimalcontrolpointsandeasedrasterization,theanchorsshouldalwaysbeplacedattheextremasofthecurve,andunlessinplaceswhereyouhavebreaksinyourletterforms,thelinethatdeterminesthepathshouldbehorizontalorvertical.

Note:Ifyourcontrolpointsaren’tplacedattheextremas,FontForgewillpointouttheactualextremawithasighticon:

UsingtheFontforgeDrawingTools

45

Youcanthenfixthisbycopyingyourcurrentoutlinetoanotherlayer,thenmovethecontrolpointsaroundsothatit’slaidoutproperly–otherwisetheFontForgeValidationtoolwilladdthepointatextremasautomatically,atwhichpointyoucanmergeyourmisplacedanchorwithRight-click>Merge.MoreaboutthatwillbesaidlaterintheValidationchapter.

Toelaborate,therearetwocaseswhereyouwillhavetogiveuphorizontal/verticalBézierpaths:

Ifyouwanttochangetheoverallslopeofyourcurve,aswiththeupper-leftpartofthe‘a’belowthat’sbeingkeptalmostflat:

Ifyouwanttoplacebreaksinyourletterforms,aswiththelower-leftpartofthe‘g’below–that’stypicallywhereyouwillwanttouseaCoin(besidesfordrawinglines):

UsingtheFontforgeDrawingTools

46

Note:Asyoucansee,whensettingbreakswithaCoin,thedirectionofeachhandleshouldbetangenttothecurvewhereitarrives.

MasteringFontForge’sdrawingtoolsFromthemainwindow,double-clickononeoftheglyphboxestolaunchtheGlyphWindow.

UsingtheFontforgeDrawingTools

47

Note:Thenumbersalongthetopwherethexandyaxisintersectindicate,fromlefttoright:

Thecurrent(x,y)locationofyourcursoronthecanvasThelocationofthemostrecentlyselectedpointTherelativepositionofyourcursortotheselectedpointThedistancebetweenyourcursorandtheselectedpointTheanglefromtheselectedpointtothecursor(relativetothebaseline)Thecurrentmagnificationlevel,followedbythenameoftheactivelayer.

Caution:Sometimes,itseemslikeFontForgeisnotrespondingwhenyouareinsidetheGlyphWindow.Itmightbethatthereisanopendialogboxhiddenbehindit–sojustmoveitandprocessthedialogbox.

ALineconsistsof2points.

UsingtheFontforgeDrawingTools

48

ASplineconsistsof4points:2endpointsofthesplineand2‘handles’,whichdescribetheslopeofthesplineatthoseendpoints.

Copy,paste,cutanddeletepoints,splinesandlines

Aswithmostdrawingsoftwares,FontForgeallowsyoutoCopy,Cut,PasteorDeleteanypoint,lineorspline.ThesecommandsareavailableintheEditmenu,orusingyourOS’stypicalkeystrokes(alsoshownalongsideeachcommandinthemenu).

FamiliarizingyourselfwiththedrawingtoolsNowthatyouknowyourwayaroundthecanvas,it’stimetogetacquaintedwiththetools.

PointandZoom

PointandZoombehavesimilarlytotheequivalenttoolsinotherapplications.Thepointerisaselectiontool,usedtoselectpoints,paths,andotherobjectsonthecanvas.TheZoomtoolletsyouzoomin(Z)easily;inordertozoomout:gototheViewmenuandselectZoomout(X)orFit.

NotethatyoucanalsomomentarilyswitchtothepointertoolwhileusinganotherbyholdingdowntheControl(Ctrl)key.

UsingtheFontforgeDrawingTools

49

TheFreehandtool

TheFreehandtoolallowsyoutosketchoutirregularpaths.

Onthedrawingarea,clickandhold,thenmovearoundtodraw.Switchbacktothepointertool,andyoucanselectpointsonthepathyouhavedrawn.

Whenyouselectoneofthepointsonthepath,itwillturnintoayellowcircle.Iftheselectedpointisonacurve,itwilldisplayitscontrolpointswithamagentahandleandacyanhandle.Youcangrabeitherhandleanddragitaroundtochangetheshapeofthecurve.

Thepointtools

Okay,nowlet’sgoaboutusingthepointtools.

Toaddapointtoapath,firstselectanyofthesetools,thenclickonthepathandgiveitalittlepush.Youwillgetanewpointontheline.

TheCurvepointtoolisusedtoaddapointinacurvedsegment.TheHVCurvepointtoolconstrainsthenewpointssothattheyhaveeitherhorizontalorverticalcontrolpoints–thisisimportantforsettingupextremapoints.TheCornerpointtoolallowsyoutomakeasharpbendinthepath.TheTangentpointtoolallowsyoutotransitionfromastraightsegmenttoacurvedsegmentalongthepath.

ThePentool

ThePentoolallowsyoutoaddapointonthecurveanddragoutitscontrolpoints.

Spiro

UsingtheFontforgeDrawingTools

50

SelectingtheSpirotoolputsyouintoSpirodrawingmode.Spirodrawingallowsyoutodrawcurvesthatreflowasyourepositionthenodes.Somepeoplepreferthistothestandardapproach(knownasBézierediting),butifyouareusedtoBéziereditingyoumightfindthatitdoessomeunexpectedthings.

Knife

TheKnifetoolallowsyoutocutsplinesintwo.Thiscomesinhandyifyouhavedrawnashape,butonlyneedpartofit.

Ruler

Therulertoolgivesyoumeasurementandcoordinateinformation.Whenyouuseit,itdisplaysafloating‘tooltip’nexttothecursor.Ifyouhoveryourcursoroverapoint,thetooltipgivesyouevenmoredetailedmeasurementandcoordinateinformation.Ifyoubringitnexttoaspline,itgivesyouinformationaboutthecurvatureandradius.Mostusefully,ifyouclickanddragtherulertool,youwillseethedistanceyouhavedraggedthecursor,pluseveryintersectionthatyouhavestretchedacross.

Thetransformtools

Therearesixtransformtools:

Note:ForalloftheTransformtools,ifyoudouble-clickonthetool,youcanenternumericvalues.

TheScaletoolletsyoufreehandrescaleanobject.HoldingdowntheShiftkeyallowsyoutoscaleanobjectwhileconstrainingittotheproportionalratio.

TheRotatetoolletsyoufree-rotateanobject.Itrotatestheselectedobjectaroundthepositionwhereyouinitiallyclick.

The3Drotatetoolletsyourotateanobjectinthethirddimension,andprojectstheresultonthex-yplane.

UsingtheFontforgeDrawingTools

51

TheFliptoolallowsyoutoflipaselectioneitherhorizontallyorvertically.Thepointatwhichyouclickthemouseisthepointoforiginofthetransformation.

Note:AfterflippingapointyouwillprobablywanttoapplyElement>CorrectDirection.

TheSkewtoolletsyouhorizontallyskewtheselectioneitherclockwiseorcounterclockwise(withershinsishowthedialogreferstocounterclockwise).

ThePerspectivetoolgivesyouanotherwaytodistortashapeinanonlinearway.

Note:Thereisnonumericaloptionfortheperspectivetransformation.

TheRectangle/EllipseandPolygon/Startools

Thesetoolsallowyoutodrawprimitivegeometricshapes,whichisfasterthanconstructingthoseshapesoutofseparatelinesegments.

Clickingthechevronareaonthesetoolswillgiveyoutheoptiontoswitchtothealternatetool.Ifyoudouble-clickoneitherofthetools,youcanopentheshapetype’soptions.

Rectangleoptions:cornerstyleandboundingbox(cornerorcenterout).

Ellipseoptions:boundingboxorcenterout.

Polygonoptions:numberofvertices.

Staroptions:numberofstarpointsanddepthofpointsbypercentage.Thehigherthepercentagesetting,thelongerthearmsofthestar.

Mse1andMse2

Underthetoolbar,youcanviewthecurrenttoolandtheoperationsavailabletobothmousebuttons:

Leftbutton(Mse1)Leftbutton+Ctrl(^Mse1)Mousewheelbutton(Mse2)Mousewheelbutton+Ctrl(^Mse2)

Thisway,youcanuseafewdifferenttoolswithouthavingtorepeatedlyclickonthetoolbar.

Caution:ItappearsthattheMsefunctionalitydoesn’tcurrentlyworkproperly.

Layers

UsingtheFontforgeDrawingTools

52

TheFontForgecanvashasthreelayersbydefault:theGuidelayer,theBackgroundlayer,andtheForegroundlayer.Guidelayersareusedtoinsertguides(suchasx-heightorcap-heightguides).Foregroundlayersandbackgroundlayersarebothusedfordrawing,butonlythetopmostforegroundlayerwillberenderedintoyourfinalfont.

Acheckboxindicateswhethereachlayerisvisible,andyoucanuncheckittomakealayerinvisible.TheC(orQ)indicateswhetheryou’reusingCubicorQuadraticcurves.

The#,B,orFreferstowhetherthetypeofeachlayerisaGuidelayer,Backgroundlayer,orForegroundlayer,whichissignificantifyouaddmorelayersofyourown.Youcancreateanddeleteadditionallayersusingtheplus(+)orminus(−)buttonsinthissectionofthetoolbar.Layertypeandcurvetypecanalsobecontrolledbyright-clicking(onceyouhaveadditionallayers).

BasicdrawingNextwewillgooversomebasicdrawingworkflows,whichyouoftenfindyourselfinneedof.

Cuttingashapewithinanother

1. StartbyusingtheRectangletooltodrawarectanglewithinthedrawingareaoftheGlyphwindow.2. Next,usetheEllipsetooltodrawanellipsewithintherectangleyoujustdrew.

UsingtheFontforgeDrawingTools

53

3. GototheElementmenuandchooseCorrectDirection.Youwillseethatthetwoshapesmerged,andthatyouessentiallypunchedaholeinthecenteroftherectangle.

UsingtheFontforgeDrawingTools

54

Removeoverlap

1. Addastarthatoverlapsthecorneroftherectangle.

UsingtheFontforgeDrawingTools

55

2. Selectthestarandtheearliershape.Youonlyneedtoselectonepointofeachoverlappingshape,butitisokaytoselectextrapoints.

3. GotoElement>Overlap>Removeoverlap.Youwillseethatyourtwoshapeshavebecomeone.

UsingtheFontforgeDrawingTools

56

AddaPoint

UsingthePentool,clickandholdinthemiddleofalinesegment,thendragthemousetochangetheshape.

UsingtheFontforgeDrawingTools

57

Tangentpoints

Selectthebottom-leftcornerpointofyournewshape(theintersectionofthecurveandthestraightline).FromthePointmenu,youwillseethatCornerPointischecked.SelectTangent.Thischangesthesquarenodetoatriangle,butthatisallitdoesuntilyoudothenextstep:extendingcontrolpoints.

Todoso,chooseElement>GetInfo,whichopensthePointInfoWindow.FromtheLocationtabinthatwindow,gototheNextCPfieldsetandsettheDistancetoalargenumber,suchas75.ClickOK.Youwillseethatthecurvenowsmoothlyentersthestraightline.

UsingtheFontforgeDrawingTools

58

Transformation

Nowselectaboutaquarteroftheshape—thestarandpartoftheellipseinthemiddle.

UsingtheFontforgeDrawingTools

59

Choosethe3DRotatetool,movetothemiddleoftheselectedarea,andslowlyclickanddraguntilyouseesomethingyoulike,thenrelease.Hereisanexampleof3DRotateusedonthepracticeimage:

UsingtheFontforgeDrawingTools

60

Setstrokeshapeandwidth

SofaryouhaveusedtheFreehanddrawingtooltodrawaline.Ifyoudouble-clicktheFreehandtool,yougettheFreehanddialogshownhere,whichcontainsadrawingwindow.Thisiswhereyouselectpenshapeandsize.ThisdialogalsoappearswhenyouchoosetheExpandStrokeoptionintheElementmenu.

UsingtheFontforgeDrawingTools

61

UsingtheCornertool,drawapolygonandclickOK.

Now,drawalinewiththeFreehanddrawingtool.Whenyoureleasethemousebutton,thenewpathisautomaticallystrokedwiththeshapeyouchoseintheFreehanddialog,asshownhere.

UsingtheFontforgeDrawingTools

62

Keepdrawing!Youshouldcontinuetoexperimentwiththedrawingtoolsuntilyoufeelcomfortablethatyoucanusethemtodrawandtransformwhatevershapesyouneed.Atthispoint,youareequippedtostartconstructingthecomponentsofglyphs,butyoushouldalsotaketimetolookatFontForge’sothersetoftools.Thenextchapter,“DrawingwithSpiro”,describestheSpirodrawingmode.SpirodrawingisdistinctenoughfromBéziercurveeditingthatitrequiresanexplanationofitsown.

FurtherReadingATypeDrawersForumDiscussiononBeziersincludedtheselinkssharedbyNinaStössingerontwitter:

BezierCurvesandTypeDesign:ATutorialbyFábioDuarteMartinsSoWhat’stheBigDealwithHorizontal&VerticalBezierHandlesAnyway?HandLettering:HowtoVectorYourLetterformsbyScottBiersackTypeBasicsbyUnderwareTheBézierGamebyMarcMacKay

UsingtheFontforgeDrawingTools

63

UsingtheFontforgeDrawingTools

64

DrawingWithSpiro

SpiroisatoolkitfordesigningcurvesinanalternatemethodtothemoretraditionalBéziercurves.Althoughitisoptional,FontForgecanbeinstalledtoincludeaSpiromodethatoffersyoutoolstocreatethisspecifickindofcurves.See“InstallingFontForge”formoredetailsonhowtoincludetheSpirolibraryinyourprogram.

Spirodrawinghasadifferentapproach,thatcanhelpyougettingyourcurvesdoneinadifferentwayandsolvingyourconceptionproblems.Pleaseexperiment!

TheSpirotoolsetManyofthesamedrawingtoolsareavailableinSpiromodeasthosedescribedinthe“UsingtheFontForgedrawingtools”chapter,butsomeofthemworkverydifferentlywhenyouareinSpiromode.

TherearefivedifferenttypesofSpiropoints:

1. G4points,usedforamoregentlecurve2. G2points,usedforasharpercurve3. Cornerpoints,forabruptcornerjoints4. Previousconstraintpoints,usedwhenthecontourofthepathchangesfromacurvetoastraightline5. Nextconstraintpoints,usedwhenthepathchangesfromastraightlinetoacurve

Drawingan‘S’withSpiroGoingthroughtheexerciseofdrawingan‘S’withSpirowillmakeyoucomfortablewithSpiro.

Tip:WhendrawinginSpiromode,alwaysstartwithaG4orG2point.Beginningwiththeothertypesofpointsdoesn’treallyworkinFontForge.

StartoffwithaG4pointatthetopmostpointofyour‘S,’followedbyacornerpoint,thenanothercornerpoint.Workclockwisearoundtheshapeoftheletter.

DrawingWithSpiro

65

FollowthiswithaG4,apreviousconstraintpoint,andanextconstraintpoint.

DrawingWithSpiro

66

Next,addanotherG4point,followedbytwomorecornerpoints.

DrawingWithSpiro

67

ThenaG4,followedbyapreviousconstraint,followedbyanextconstraint.

DrawingWithSpiro

68

Then,addonemoreG4point,andfinally,closetheshapeatthestartingpointbyclickingonitusingtheG4pointtool.

DrawingWithSpiro

69

Nowyoualmosthavean‘S’!BeginnudgingthepointsaroundtogetyourStolookthewayyouwant.

Oops,whathappened?

DrawingWithSpiro

70

Don’tworry–Spirosometimesdoessomefunnythings.JusthitUndo,orkeepnudgingthepointstogetthingsbackontrack.

Now,youshouldseesomethinglikethis:

DrawingWithSpiro

71

ToggleoutofSpiromodebackintoBéziermode.Youwillnoticetherearealotofpointsontheresultingcurve–youmaywanttocleansomeofthemup.

DrawingWithSpiro

72

Tocleanupthoseextrapoints,gototheElementmenuandselectSimplify>Simplify.ThengotoElement>AddExtrema.Finally,gotoElement>Round>ToInt.Afterthesecleanupoperations,youwillseesomethinglikethis:

DrawingWithSpiro

73

YoucancontinuetoexperimentwithSpiromodetogetafeelofhowitdiffersfromBézierdrawing.Theterminologyisdifferent,butaswithFontForge’sotherdrawingandadjustmenttools,practicewillgetyouthethingsyouwant.

DrawingWithSpiro

74

Creating“o”and“n”

Therearemanyapproachestodesigningafont.Itcanbehelpfultodeconstructthelargerprocessesinvolvedinordertogetstartedquickly,andtoprovideasolidbasisforawholefont’sworthofcharacters.Apopularandvaluableapproachtothisistodesignthe‘o’and‘n’charactersfirst,nailingdownessentialelementsofform,spaceandbalance,beforebringingthemtogetherfortheformationofothercharacters.Creatingthelowercase‘o’and‘n’characterscanprovideuswithsomeofthefundamentalformsandstructuresthatwillunderpinallothercharactersthatareneeded.

Althoughthedesignofthe‘o’mayseemlikequiteasimplething,allthecharacteristicsmentionedinthe“Whatisafont?”chaptercomeintoplay.Thechoiceyoumakeabouteachcharacteristicshouldbeadeliberatechoice.

UnderhangsandOvershootsOnewayinwhichopticaleffectsimpacttypedesignisinhowcurvesandstraightedgesappeartotheeye.Forinstance,foracurveandastraightedgetolookasthoughtheyarealigningcorrectlyonthebaseline,thecurvemustactuallysitalittlebelowtheline,producinganundershoot.Theportionofthecharacterthatdipsjustbelowthebaselineinordertoappearsittingonthebaselineiscalledtheunderhang–demonstratedbelow.Withoutunderhang,characterswithcurvesaroundthebaselinewillappearmisalignedwithinalineoftext.

Similarlytotheundershoot,anareaofovershootisneededtoprovidetheillusionofalignmentatthex-heightandatthecap-height(seebelow).

Creating“o”and“n”

75

Designingthelowercase‘o’Thedesignofthe‘o’isnotjustaquestionoftheblackpartoftheletter.Whilethe‘o’providestheverybasicbowlweightandshape,thewhite–orcounter–providesthesizeandshapeusedbytherestofthefont.Ingeneralterms,wecanalsoobservethattheroundformofthe‘o’willbeechoedinothercharacters.Theseincludetheb,c,d,e,p,andq,andtheformwillalsoimplicatetheshapingandformsofcurveswithinanyothercharactersofthefont,suchastheO,C,D,andQ.

Inaddition,thewhiteinsidethe‘o’shouldbeutilizedwhendesigningthespacingofourfont;the‘o’setsupthereferencerhythmofspacesusedbetweenallotherglyphsinthefonttoo.Thesetwovaluesareveryrelated,soessentiallyyouwillneedtodesigntheamountofwhitespacethatarethesidebearingsofyour‘o’aswell.Asageneralprinciple,withtheexceptionofslantedoritalicfonts,the‘o’shouldhavethesameamountofspaceontheleftandrightsides,andthewhitespacebetweenastringof‘o’charactersshouldbalancethewhitespaceinsidethe‘o’s.

Hereweencroachwellintotheterritoryofspacingandmetrics,soevenatthisearlystageyoumaywanttohavealookatthe“Spacing,Metrics,andKerning”chapter,whichcoversthebasicimplicationsofspacinginafont.Thatshouldgetyoutoawell-spaced‘o’character,whichwillhelpyouwiththedesignofthe‘n’.

Designthelowercase‘n’

Creating“o”and“n”

76

Onceyouarehappywiththeformandspacingofyourlowercase‘o’characterasshownwithasamplestring,thenextstepofthisapproachistocreateasuitablyshaped,balanced,andwell-spacedlowercase‘n,’whichyouwillinjectintoyourstringof‘o’s.

Ifwelookattheanatomyofan‘n’,wecanbreakitapartintotwoorthreecomponentsconsistingofastemandacurve.Thisapproachcangiveusashortcuttokeepingbalanceandharmonywithinourcharactersastheyareformed,andasoursetofcharactersgrows.Lookingatthesample‘n’below;itisbrokenintotwocomponents.Theseseparatecomponentscombinetogethertoforman‘n’,butthesamecomponentswillbere-usedlaterwhenformingothercharacters;e.g.,thestemattheleftofthe‘n’canbeusedtoformtheleft-sidedstemofallotherlowercasecharacters.

Creating“o”and“n”

77

Takingyourselfforwardagaintothechapteronspacingandmetrics,thedesignofthe‘n’charactershouldkeeppacewiththeprocessofspacingthe‘n’and‘o’characterstogether.

Now,garneringthemethodsyouhaveusedtocreatean‘n’and‘o’character,youarereadytoexpandthelowercasecharacterset.Thequalitiesofthestemandcurvecomponentsofthe‘n’and‘o’willinformthewayyoumayformothercharacters.IfwestudythecharactersbelowfromOpenSans,wecanseetherelationshipsbetweentheformalaspectsofseparatecharactersandhowtheycanberepeated,withsomeadjustments,toformthecomponentsofourfont.

Creating“o”and“n”

78

Creating“o”and“n”

79

Creating“o”and“n”

80

Creating“o”and“n”

81

FontInfo&Metadata

Element,FontInfoTheFontInfowindowisubiquitousinfonteditors,andFontForgecloselyfollowstheOpenTypeSpecification.Itmayappearcrypticatfirst,butusingitcanhelplearnsomefamiliaritywiththeOpenTypeformat,andinturnreadingabouttheOpenTypeformatmakesthedialogmoreapproachable.

VersionNumberingSoftwaredevelopersliketouseSemanticVersioningfortheirprograms,andthisisalsoagoodideaforyourfonts.Inaway,fontsarean"API"fortexttoaccesssomeassociativefeelingsinreaders.

AMAJORversionwouldbeafteracompleteredesign.CompareExoandExo2.IfyouhaveadocumentusingExo,youdon'twanttojumpintoExo2,becausethefeelingevoked,the'voice'or'flavor,'is(subtly)different.Addingsupportforoneormorenewscriptsthatarequitesimilarinheight,orasubstantialnumberoflanguages,couldalsoconstituteaMAJORrevision,as

FontInfo&Metadata

82

couldanythingelsethatsubstantiallychangestheverticalorhorizontalmetrics.However,ifacomplementarydesignismadefor2scripts,itmaybebesttorelease2or3families,onewitheachscriptscaledappropriatelyandtheotherscript(s)scaledassecondaryfontsforsimplefallbacktypesettingofmultilingualtexts.

AMINORversionwouldbeanythingthatsubtlychangesthemetrics,suchasverticalmetrics,horizontalsidebearingsorimprovedkerning,ormakingminorcorrectionstosomeglyphs,becausesuchupdateswillcausedocumentsusingthefonttoreflow(albeitsubtlyinmanycases.)Hereisanexamplefromhttp://www.fastcodesign.com/3033126/roboto-rebooted-why-google-plans-to-update-its-font-like-the-rest-of-its-products:

Addingjustafeworadozenglyphsto"complete"coverageofapreviouslyintendedcharactersetortoaddsupportforjustafewmorelanguagesisprobablyMINOR,especiallyifitdoesn'tchangetheverticalmetrics.

AchangeatthePATCHlevelwouldbeanythingthatimprovesthefontwithoutchangingthemetricsorchangesaglyphdesigninavisibleway,thatdon'taffectthefinaltextlayout.Your1.001releasemightnothavefsTypesetto0orberunthroughfontcrunch,andchangingboththosethingsina1.0.1releasewon'tbevisibleorreflowanything.Sadly,thethirdPATCHversionnumberisn'tavailableinOpenTypefontversionmetadatafields.Instead,incrementtheMINORversionnumberforsuchchangestohintingormetadata.

Also,theversionshouldhavenomorethan3decimalplaces,andthismayberepresentedwith5inaTTXfile.Eg2.001istypical,andmayappearas2.00099inTTXXML.

Ifyoureleaselibrefonts,theGithubReleasesfeaturesareveryuseful.

FamilyNaming

FontInfo&Metadata

83

MicrosoftworkshardtoensurethataprogramwrittenforapreviousversionofWindowswillcontinuetorunonthelatestversions,enticingpeopletoupgrade.ThismeansthatthebasicTrueTypefontmodelintroducedinWindows3isstillwithus,andWindowsdoesnotsupportfontfamilieswithmorethanthe4basicstyles(Regular,Italic,Bold,BoldItalic.)

Thismeansforfontdesignersthatourfontfamilynamesshouldbesetupinawaythatallourfontscanbeusedinalloperatingsystems.TheOpenTypeformatallowsforthis,complementingtheFamilyandStyleNamevalueswith"PreferredFamilyName"and"PreferredStyleName"valuesthatwilltakeprecedenceinOpenType-awaresoftware.

ThisFamilyNamingGoogleDocsSpreadsheetisbasedoninformationsharedbyPolishfontexpertAdamTwardochanddiscussedintheFontlabforum.ItsupercedestheOpenTypespecificationexample.

FontInfo&Metadata

84

WordSpace

Itmaysoundfunnytopayspecialattentiontothewordspace,howeveritisoneofthemostcommonlyusedpartsofatypedesign.Awordspacethatistoowideortoonarrowcanruinthedesignofafont.It’snottooearlytobeginconsideringthewordspacingaslongasyouhaveyourfirstcharacterssetup.Thechoiceyoumakeatthispointshouldbegraduallyadjustedwhileyouprogressinthedesignofthefont.

Thewordspacehereistootight…

Andhere,it’stoowide…

Nowthisiswell-balanced…

WordSpace

85

Ifyourtypeismeanttobeusedatlargersizes,thenthewordspacecanbereduced—andvice-versaifit’stobeusedatverysmallsizes.

Theresearchhasshownthatawordspacethat’stoolargeismoretolerablethanonethat’stoosmall,soifyouareunsureyoumaywanttoerrinthatdirection.

Note:Similarstudieshaveshownthatyoungerchildreninparticularbenefitalittlefromwordspaceslargerthanwhat’sconsiderednormalforadultreaders.

LindaReynoldsandSueWalker(2004)–‘Youcan’tseewhatthewordssay:wordspacingandletterspacinginchildren’sreadingbooks’,JournalofResearchinReading,vol27,no.1,pp.87-98.

WordSpace

86

CreatingYourTypeDNA

Afteryouhavecompletedgoodsoliddesignandspacingofthe‘o’and‘n’,thenextthingtodoistobeginpopulatingthefontwithletterswhosestructuralcharacteristicsprovideausefulbasisformakingmanyoftheotherlettersinthefont.

Itmaybetemptingtorushandpopulateyourfontasrapidlyaspossiblewithalltheletters—resistthisurge!While‘o’and‘n’provideanexcellentstarting-pointtothefoundationofthedesign,weneedtoestablishtherestofit.Rapidexpansionbeforethisisdonewillmeanthatthewholeprojectwillbecomehardertomanage—andtakeslongerthanitneedsto.

Whatelsedoweneedforthefoundationofourdesign?—First,let’slookatwhatwe’vegotwithour‘n’and‘o.’

Althoughthe‘o’isespeciallyusefulforworkingoutthebasicspacing,it’snotgoingtohelpusdesignothercharacters—notnecessarilyeventhe‘b’or‘d’.Theletter‘n’,ontheotherhand,isveryusefulbecauseithelpsmakingthe‘m’,‘h’,and‘u’.Theotherfactorthatweneedtoweighwhenchoosinglettersforourfoundationishowfrequentlytheletterisused.Aletterthat’susedalotwillhelpusmaketestwords.Someofthelettersmaybechosenalmostexclusivelyforthisparticularreason.

Thelettersyouchoosedon’thavetobethosesuggestedhere.Theyshouldsimplyhavethecharacteristicsbeingdiscussed.So,forinstance,youmaywanttouse“adhesion”tostartwith.Thissetoflettersiswhat’susedinthetypedesignMAcourseattheUniversityofReading,UK.Analternativeis“videospan”whichisusedbythefoundryTypeTogethertostarttheirprojects,andintheirowntypedesignworkshops.EithersethasenoughDNAtobemeaningful,andbotharesmall,sotheyareeasytomake‘global’changesto.

Whileitmaybeeasiesttosimplyuseoneoftheabovesetsofletters,youcanalsobuildyourown.Askyourselfwhatsetoflettersyoushouldpicktoaddto‘n’and‘o’.Considerthefollowingoptions:

‘a’—theletter‘a’isalsoaverycommonstartingchoice.The‘a’mayalsobeusefulin‘anticipatingwhattheterminalsofthe‘s’willlooklike.‘d’—theshapeof‘d’canletyouknowquitealotaboutthedesignof‘b’,‘p’and‘q’.‘e’—inEnglishandmanyotherlanguages,theletter‘e’isespeciallycommon—which‘makesitespeciallyvaluable.Theshapeof‘e’canalsobeusedtobeginthedesignof‘c’.‘h’—while‘h’canbebuiltfairlyrapidlyfromthe‘n’,italsoprovidesvarietytothetextureyouwanttotestbyofferinganascender.‘i’—like‘e’,theletter‘i’isfairlycommonandhasthebenefitoflettingyouknowalittlebitaboutthefaceofthe‘j’.Theshapeof‘i’isalsopartlyinferablefromtheshapeofthe‘n’.‘s’—theletter‘s’isagoodonetodrawearlyonbecauseitaddsvisualvarietytothetextureofthelettersyouwillbetesting.Theletter‘s’isalsounusuallyhardtogetright,sostartingonitearlymakesitmorelikelythatyouwillbeabletospendenoughtimetogetitrightbytheendoftheproject.Theterminalsofthe‘s’maysometimesbeusefulforanticipatingwhattheterminalsof‘a’,‘c’,‘f’,‘j’and‘y’couldbelike.‘v’—theletter‘v’isusefulforanticipatingwhatthe‘y’and‘w’maybelike.

Onceyouhavetheseletters,it’sgoodtospendtimerefiningthembytestingwordsthataremadefromthem.Asbeforewiththe‘n’and‘o’,agreatdealofattentionshouldbepaidtothespacingofthelettersandtherelationshipsofthecounterstothesespaces.

HereisaTypeDrawersthreadondeterminingtheascenderanddescenderheights:http://typedrawers.com/discussion/1620/ascender-descenders-in-latin-type-design

CreatingYourTypeDNA

87

BuildingatesttextTherearemanyresourcesavailableonlineforrapidlybuildingyourdummytesttext:

LibreTextisalibresoftwaresolution.AdhesionText,madebyMiguelSousawasthefirstresourceofthiskind.JAFGenerator,byJustAnotherTypeFoundry.Typable,byOndrejJob

UserealtextThosedummytextsareinaway"blind"texts;youcannotactually,really,readthem.

Butonceyouhaveadozenorsoletters,youcanconstructrealtexttoexperienceimmersivereading.Thisisessentialfordeeplyunderstandinghowthedesignperforms,soitsgoodtogettothisstagequickly.

Butwatchoutforthestaletexteffect.Ifyoure-usethesamerealtextfortestingyourtypeface,itcanbecomesofamiliarthatyoulosesomeperceptionabilitiesforhowthetypefaceisperforming.

Onceyouhaveafullalphabet,toensurefreshtext,youcansetyouroperatingsystemfont,emailapplication,orwebbrowser'sdefaultfonttobeyourfont.

ThiswasdiscussedontheTypeDrawersforumOnTheUseofBlindTextsthread.

CreatingYourTypeDNA

88

CapitalLetters

Makingthecapitallettersshouldfollowapatternverysimilartothemakingofthelowercaseletters.Youbeginbydesigningkeyletterswhoseshapesandcharacteristicslendthemselvestothedesignofchararacterswhichshareacommonshape.Justlikewithlowercaselettersthefrequencywithwhichlettersareusedalsoremainanimportantfactorinthechoiceoftheletters.

Thefirsttwoletterstodesignare"H"and"O".Thedesigntheselettersshouldnotjustbeinrelationtoeachotherbutshouldalsorelatetotheexistinglowercaseletters.

Itisatthisstagethatyoudeterminingtheproportionofthelowercasetotheuppercase.Youmaywanttoadjusttheascendersanddescendersofyourlowercaseoradjustyourcapitalstothelowercasetocreatetheproportionthatsuitthepurposeofyourdesign.

Theweightofstrokesintheuppercaseoftenneedstobesomewhatheavierthanthestrokesofthelowercase.Youmaywanttocreateaninterpolationexperimenttorapidlyfindhowmuchheaviertheyshouldbe.

ThenextsetofletterstoconsideraddingareAESINandeitherPorDandmaybeV.

Dependingonthestyleofthefontyouaremakingyoumayfindthatthecapitallettersrequiremorevariationinwidththanyouhaveinthelowercaseletters.ThewidthoftheESandPmaybesubstantiallynarrowerthantheHormaybesimilar.

GenerallytheNandVareusuallysimilartoHbutaslightlywider.

CapitalLetters

89

TheDmaybesimilartoHorquiteabitwider.

CapitalLetters

90

TheshapeofOcantellyouquitealotabouttheC,GandQ.TheshapeofHtellsyouabitaboutaboutIandJandtheleftsideofBDEFKLPR.

ItalsotellsyoualittleaboutTandU.TheshapeofAcantellyouquitealotabouttheshapeofV.

CapitalLetters

91

CapitalLetters

92

TheshapeandproportionsofVtellsyoualittleabouthowtodesignYWX.TheshapeoftheZisdistinctive.

CapitalLetters

93

CapitalLetters

94

LineSpacing

Whenyouhavethewordspaceandthenandosetyoucanbegintolookatthelinespacing.However,afullandfinaldecisionaboutlinespacingisn'tpossibleuntilyouhaveCapitallettersandsomepunctuation.

ThinkaboutlinespaceintentionallyAsisthecasewithletterandwordspacing,havingtoomuchortoolittlelinespacingcanmakeyourfontlookawkwardinreal-worldusage.Aboveallelse,findingtherightlinespacingbalanceisamatterofthinkingaboutthequestionintentionallyandoftestingarangeofoptionsonthewaytomakingafinaldecision.

Asageneralrule,mostnewfontdesignerstendtoerronthesideofhavingtoolittlelinespacingintheirfont,soifyouareunsure,addingadditionalspaceisusuallyagoodidea.

Youshouldalsoconsiderthescopeofyourproject'slanguagecoveragewhenconsideringlinespacing.Ifyoutestyourfont'slinespacingonlywithunaccentedcharacters,youarelikelytosettleonalinespacingvaluethatleavesnoroomforaccents.Ifyouarecertainyourfontwillneverbeusedwithaccentedcharacters,thismightbeacceptable—buttheoddsarethatyourfontwillbeusedtosetaccentedtext.Inthatcase,toolittlelinespacingwillcausetheaccentsononelinetorunintothebottomsoftheglyphsabove,andleavethereaderwithdifficult(ifnotimpossible)toreadtext.

Onestrategytotestwhetheryourfont'slinespacingisproperforaccentedcharactersistoemploysampletextfromseverallanguages.

Forlanguagesheavyindiacriticalmarks(suchasCzech),linespacingshouldbetallerthanforlanguagesthatusenodiacriticals.TheexamplesaboveshowCzech(above)andEnglishwiththesamefairlywidelinespacing.

Experimentwithyourfont'slinespacinginFontForgeInFontForge,youcansetandadjustyourfontproject'slinespacingfromwithintheFontInfowindow.OpenthiswindowbychoosingFontInfofromthe"Element"menu,thenclickontheGeneraltab.NotethevaluesthatFontForgehaslistedforAscentandDescent.Unlessyouhavemademanualchangesalready,thesetwonumberswhenaddedtogethershouldequalthevalueofEmSizelistedonthelinebelow.

LineSpacing

95

Nowswitchtothe"OS/2"tab.Onalmostallcomputers,yourfont'slinespacingwillbedeterminedbytheAscentandDescentvaluesthatyouenterinthistab,undertheMetricsheading.

LineSpacing

96

Therearethreesetsofvalues:WinAscentandDescent,TypoAscentandDescent,andHHeadAscentandDescent.YoushouldsetalltheAscentstobethesameastheAscentvalueyounotedintheGeneraltab.Next,youshouldsetalloftheDescentstobethesameastheDescentvalueyounotedintheGeneraltab,withoneimportantexception:youmustmaketheTypoDescentnumbernegative.Leavethevaluethesame,butputaminussigninfrontofit.Finally,uncheckallofthe"isoffset"options.

Thesesettingswillgiveyouasensiblestartingpoint.Youcannowproceedtotestyourfontwiththislinespacingandmakeincrementaladjustmentsuntilyouarriveateye-pleasingresult.

Ifyoufindyourlinespacingistootightandyoudon'twanttoorcan'tmakethevericalmetricslargeryoucanscaletheglyphsdowntogainmorespaceforlinespacing.

LineSpacing

97

PunctuationandSymbols

Punctuationandothertypographicssymbolshaveahistoryoftheirown,separateandapartfromthedevelopmentofthealphabet.Butyouwillfindthatthesamedesignprocessstillapplies,includingreusingandadaptingcomponentelements,anditerativelytestingyourdesignchoices.

SimplepunctuationglyphsThefirstthingtodowhendesigningpunctuationistocreatethe'.'character,whichisknownasthefullstoporperiod.

Theshapeofthisglyphisoftentakenfromthedotoverthe'i,'whichissometimescalledthetittle.Afteryoucopythedot,youmaywanttomakeitalittlelarger.Testingseveraldifferentsizesinprintedtextoronscreenisadvisable.

Onceyouestablishasizethatyouarehappywith,thisdotcanbeusedasthebasisforawidevarietyofotherpunctation,includingtheseglyphs:;:?!¡¿·…

PunctuationandSymbols

98

Thenextglyphtomakeisthecomma.Theshapeofthecommacanvarytoanalmostsuprisingdegree.Itmaybevaluableforyoutolookatawiderageofcommadesignsbeforeyoudesignyours.

Theimagebelowshowstwoofthemostcommonformsthatthecommamaytake.

Thetopofthecommaisoftenslightlylighterthantheperiod,becauseifitisthesameitcanlooktooheavy.Inthesampleimage,thecommaontherightisagoodexampleofthiscompensationbeingapplied.Anothercommonmistaketowatchoutforwiththisglyphismakingittooshort

Whenyouhaveyourcommaitwillbefairlyeasytomakethesemicolon(;).

ExclamationmarkandquestionmarkTheexclamationmarkcanbebedeceivinginthatitseemssimpletomake.Ifyoulookatarangeoftypefacesyouwillseethatsometimesthedesignisindeedfairlysimple.

However,thisisaglyphwhichhasasurprisingamountofopportunityforexpressingdesign.Itoftenthecasethateveninafontwhichhasverylittlecontrast,thebarabovethedotissomewhatheavieratthetopthanthebottom.Theformoftheexclamationmarkusuallyrelatestothedesignofthecommatosomedegree.

PunctuationandSymbols

99

Thequestionmarkcanalsobequitedifficulttomake,becauseitrequiresyoutobalanceanopencurveoverthedotbelow.

Aswiththeexclamationmarkitisadvisabletolookatandeventestarangeofdifferentsolutionsbeforechoosingoneforyourdesign.

PunctuationandSymbols

100

Thedesignofthec,C,G,s,andSglyphsmayprovidesomebasisforthedesignofthisglyph,butyoumaydecidetochooseaformthatisdistinctaswell.

Additionalsymbols

Simpleorverticalquotes—'and"—aredistinctfromtypographicquotes:‘’and“”‚„.

Simplequotescanfollowtheshapeofthebaroverthedotintheexclamationmark,buttheycanalsobedesignedseparately.

Usuallytypographicquotesarefairlycloselyrelatedtothecomma,howevertheyshouldbelongerthanthecommaandoftencurvemore.

PunctuationandSymbols

101

Brackets[]arerelativelysimpletomakebecausetheyaresoboxyinshape.Neverthesstheirdesignshouldreflectthechoicesyouhavemadeintherestofthetypeface.

Themainquestiontodecideishowtallanddeeptheywillbe.Theconventionisthattheyshouldexceedtheheightofthecapitalsveryslightlyanddescendbelowthebaselinetoapproximately3/4ofthedepthofyourlowercasedescenders.

Thesechoiceswillalsobereflectedinthedesignoftheparentheses()andthebraces{}.Theweightofthestemsonallthreeofthesesymbolsshouldbelessthantheweightofthestemsofboththecapitalsandthelowercaseletters.

Bewarned:whentestingthecharacters[]#inthemetricswindow,theymaynotshowup.Thisisbecausetheyarereservedbytheprogram.Insteadoftyping[]and#,youmusttype/bracketleft/bracketrightand/numbersign.

PunctuationandSymbols

102

Parenthesesshoulddrawonthedesignofrelatedshapes,suchasD,C,andG.

Bracesarenotableinthattheirdesignvariestoagreaterdegree.Braceshavethisincommonwiththequestionmark.Thedistributionofweightinbracesmaybelikeweightdistributionofthenumbers,inthatitmaysometimesviolatetherulesyoufollowintherestofthedesign.

PunctuationandSymbols

103

CompleteingtheLowerCase

Youmayhavenoticedinfontsyou'veseenbeforethat,whileeachletterhasitsownshape,theyallrelatetoeachother.Bycarefullyde-constructingafewglyphs,yougainthebuildingblocksofnearlyalltheothers.

Notethesimilaritybetweentheupperterminalsonthiscandf:

Theirshapesindicatethattheybelonginthesamegroup,eventhoughtheyaresubtlydifferent.Theterminalsareoneoftheidentifyingtraitsofafont,andgenerallyarerepeatedonmanyoftheletterforms.

However,excessivedependenceonmodularityshowsitsownmarksinadesign,andthereforeshouldbeavoided—unlessthatisalookyouwant.

Proceedingwiththeotherlowercaseletters

CompleteingtheLowerCase

104

Youalreadymadeyourletter'n.'Fromthis,youcaneasilyderivethem,h,andubycloning,stretching,androtating,respectively.Therearesubtlechangesinthespacingofthestemsinthemandtheu.The'u'haschangednotonlyitsspacingbutitsserifs.Thisdoesn'thappenautomatically;it'suptoyoutogetinthereandpushthepointsaround.

The'i'canbederivedfromthestemofthe'n.'Thel''canbemadefromthestemofthe'n'withsomeadjustments.

MakingthedFromtheStemofhando

Opentheletter'd''sglyphwindowbydouble-clickingbelowthe'd'inthefontview.Fromthefontview,copythe'o'andpasteitintotheletter'd''sglyphwindow.Thendothesameforthe'h'.Atthispointyoucandeletethepartofthehthatyou'renotgoingtouse.Positiontheremainingpiecestogethersotheyresemblea'd.'

CompleteingtheLowerCase

105

Clearly,there'smoreworktobedonehere.We'llmakesomeadjustments.Narrowtherightsideoftheowhereitmeetsthestem.

CompleteingtheLowerCase

106

Toimprovetheopticalspacingandallowtheshapetolookmorebalanced,makealittleroomattheserifbyaddingapointtothestemandpushingthebottompointstotheright.

Belowisanoverlayofthestartingshapeandthenewshape.

CompleteingtheLowerCase

107

Nowthatyouknowhowtoassemblefromexistingparts,youcanmakeothersimilarletters.Keepinmindthesubtletiesthatmakeeachletterindividual,yetstillpartofafamily.

Derivingtheb,p,andq

Nowthatyouhavethed,byflippingandrotatingyoucanmakeareasonableb,p,andq.Again,beawareofhowtheserifsandthecontrastdifferineachletter.Yourfontdoesn'thavetodothisexactlythesameway,butit'soneofthethingsyoushouldthinkabout.

CompleteingtheLowerCase

108

Maketheg

Youcanstartwiththeq,stretchingandalteringthetail,tomakethesinglebowlg.Noshapescloselyresemblethebinocularg.Thebinoculargusuallyneedstobenoticeablylighterinordertolookrightwhensetwithotherletters.

CompleteingtheLowerCase

109

Ontofandt

Thethasanascender,butit'sgenerallyshorterthantheascendersoftheotherlowercaseletters.Bycomparison,thefismuchtallerandusuallyencroachesonthespaceoftheletternexttoit.Theybothhavecrossbarswhicharegenerallyatthesameheight,width,andthickness.Oftenyoucancopyfromonetotheother.

CompleteingtheLowerCase

110

Nowmakethee

Theewillbelooselybasedontheo.Thecrossbaroftheeislowerthanthatofthet,buthasthesamethickness.Thehookatthebottomoftheewillbeinformedbythebottomofthet.

Fromtheecomesc

Creatingthecfromtheeinvolvesdeletingthecrossbarandaddingtheterminalatthetop.Theupperterminaloftheccanbesimilartotheupperterminalsofotherletterssuchasthea,andf,andr.Theterminalsoftheccanalsoformthebasisforthes.Theecanalsoinfluencetheproportionsofyoura.

CompleteingtheLowerCase

111

v,w,x,y,andz

Theselettersaresomewhatdifficultbecausetheydon'thaveformsthatarerelatedtotheotherletters.Thismeansyouhavetojustjumpinanddrawthev.Makethedown-strokeasthickasyourthickstems,andmaketheupstrokeasthinasthethinnerstrokesinyourotherletters.Onceyouhavethev,youhaveabasicplanforthewandy.Forxandy,focusonmatchingthecontrastoftherestofthedesignwhilecompensatingfortheillusionsthatoccurindiagonalandcrossingdiagonalforms.

CompleteingtheLowerCase

112

DiacriticsandAccents

Adiacriticisamarkaddedto,orcombiningwith,aletter,oftenusedtochangethesoundvalueofthelettertowhichthemarkisadded.Somediacriticalmarks(suchasthe'acute'and'grave')areoftencalledaccents.Diacriticalmarksmayappearaboveorbelowaletter,withinitorbetweentwoletters.

Someexamplesofdiacritics

Lowercase'awithgrave'(unicodeu+00e0).Createdinafontbycombiningthelowercase'a'glyph(unicodeu+0061)andthe'combininggraveaccent'glyph(unicodeu+0300).

Lowercase'awithcircumflex'(unicodeu+00e2).Createdinafontbycombiningthelowercase'a'glyph(unicodeu+0061)andthe'combiningcircumflexaccent'glyph(unicodeu+0302).

DiacriticsandAccents

113

Lowercase'awithogonek'(unicodeu+0105).Createdinafontbycombiningthelowercase'a'glyph(unicodeu+0061)andthe'combiningogonek'glyph(unicodeu+0328).

Lowercase'cwithcedilla'(unicodeu+00e7).Createdinafontbycombiningthelowercase'c'glyph(unicodeu+0063)andthe'combiningcedilla'glyph(unicodeu+0327).

Lowercase'owithdoubleacute'(unicodeu+0151).Createdinafontbycombiningthelowercase'o'glyph(unicodeu+006f)andthe'combiningdoubleacuteaccent'glyph(unicodeu+030b).

DiacriticsandAccents

114

FontForgecanautomaticallycreateaccentedcharactersin2mainways;

1. FontForgecontainsrudimentaryinformationonwheretoplacediacriticmarks,socanautomaticallybuildmostaccentedcharacters.

2. Formuchgreatercontrolofdiacriticplacement,FontForgecanplacediacriticmarksbasedonthepositionofusercreatedanchorpoints.

Itshouldbenotedherethatifyouarenotusinganchorsandlookuptablestopositiondiacriticmarkstheniftheglyphofaparticulardiacriticmarkisnotpresentinyourfont,FontForgewillinsteaduseasimilarspacingcharacterinplace.Forexample,ifthecombiningmark'acutecomb'(u+0301)isnotpresent,thenFontForgewillusethestandard'acute'(u+00b4)characterwhenitautomaticallybuildsanyacuteaccentedglyphs.Ifthe'acutecomb'ispresent,thenFontForgewillalwaysusethat,unlessyouspecificallyforceFontForgetousespacingcharactersforbuildingaccentedglyphs.

FontForge'sbasicautoplacementofdiacriticmarks.InFontForge's'Element'menu,isafunctioncalled'Build'thatcanbeusedtocreateaccentedcharacters,certaincompositecharactersandsomeduplicatecharacters.ToautobuildaccentedcharactersFontForgeusesthe'Element>Build>BuildAccentedGlyph'function.Thisfunctioncanalsobeperformedwiththekeystroke'ctrl+shift+a'.So,usingtheexampleofbuildingthe'aacute'character(u+00e1),wewouldneedtohavealreadycreatedthelowercase'a'(u+0061)andthe'acutecomb'glyph(u+0301).Thenselectingthe'aacute'characterslotandusingthe'Element>Build>BuildAccentedGlyph'function,FontForgewillplaceareferencetothelowercase'a'glyphandareferencetothe'acutecomb'glyphintothe'aacute'characterslot(seebelow).

DiacriticsandAccents

115

Thisautomaticplacementofdiacriticmarkscanbetunedbypreferences,foundinthe'accents'sectionofFontForge'spreferencesmenu'File>Preferences>Accents'(seebelow).

DiacriticsandAccents

116

'PreferSpacingCharacters'-selectingthisoptionto'On'willforceFontForgetobuildaccentedglyphswithspacingcharacterseveniftheappropriatecombiningcharactersarepresent.Thisoptionisignoredwhenusinganchorstopositiondiacriticmarks.

'AccentOffsetPercent'controlstheamountofverticalspacebetweenthebaseglyphandthemarkglyph.Thevalueenteredhereisapercentageoftheemsquareofthefont.Soavalueof'6'willoffsetthemarkglyphfromthebaseglyphby6percentofthefont'semsquare.

Thepreferencesforthehorizontalplacementofthemarkglyphcanalsobeset.Selecting'On'forthepreference'AccentCenterLowest'willcentretheaccentglyphtothelowestpointofthebaseglyph.

Selecting'AccentCenterHighest'to'On'willcentretheaccenttothehighestpointofthebaseglyph.

Selectingboththeabovepreferencesto'Off'willcentretheaccentintothewidthofthebaseglyph.Selectingboththeabovepreferencesto'On'willcentretheaccentinthewidthofthecharacterslot.

DiacriticsandAccents

117

UsingAnchorPointstoplacediacriticsThemostaccurateandefficientwaytobuildaccentedcharactersinFontForgeistouse'anchorpoints'.

Anchorpointsallowfinecontrolofthepositioningofexactlywherethediacriticmarkwillbepositionedinrelationtoeachbaseglyphintheaccentedcharacters.So,inthecaseofthe'aogonek'character,the'a'glyphisthebaseglyph,anditwillbepositionednormally,the'ogonek'glyphisthe'markglyph'andwillbepositionedsothattheanchorpointofthe'markglyph'coincideswiththeanchorpointinthebaseglyph.

Intheexamplebelow,creatingan'aogonek'character,ananchorclasshasbeencreatedcalled'bottom'.Inthelowercase'a'glyph,the'bottom'anchorisplacedatthebottomofthestemofthe'a'.Thisisthe'baseglyph'formoftheanchor.(seebelow)

Inthe'ogonek'glyphthe'bottomanchorisplacedatthetopoftheogonekglyph,intheformofa'mark'anchor.(seebelow)

DiacriticsandAccents

118

Then,whenthe'aogonek'characterisbuilt(usingthe'BuildAccentedCharcter'function)the'bottom'markanchorpointwillbeplacedatthesamelocationasthe'bottom'baseanchorpoint,ensuringthatthereferencedogonekglyphisplacedcorrectlyatthefootofthestemofthereferenced'a'glyph(seebelow).Thisexactandautomaticplacementwouldnothavebeenpossiblewithoutusinganchorpointstopositionthebaseandmarkglyphs.

DiacriticsandAccents

119

Creatinganchorpointsforplacingdiacriticmarks(Marktobasepositioning)

FontForgeuseslookupfeaturesknowas'mark-to-base'forcreatingandpositioninganchorpoints.Thesemark-to-baselookupscanbecreatedandeditedintheGPOSLookupssectionoftheFontInfoofyourfont('Element>FontInfo>Lookups>GPOS').

FromtheGPOSLookupswindow,clickon'AddLookup'andchoosetheType'MarktoBasePosition',thenchoose'MarkPositioning'fromthe'New'columnoftheFeaturepane(seebelow).Click'OK'toclosethewindow.

DiacriticsandAccents

120

Withthenewlookupselected,click'AddSubtable'.Intheresultingwindow(seebelow)youcancreateyouranchorclasses.

Inthisexample(below),twoanchorclasseshavebeencreated,'top'and'bottom'.The'top'anchorclasswillbeusedtopositiondiacriticmarksthatareplacedaboveglyphs,andthe'bottom'anchorwillbeusedforpositioningmarksbelowglyphs.

DiacriticsandAccents

121

Toplaceananchorwithaglyph,simplyusetherightmouseclickinaglypheditwindow,andselectthefunction'AddAnchor'fromtheright-clickmenu.Thedialogueboxthatappearsenablesyoutoassignwhethertheanchorisabaseormarkanchor.Theanchor'spositioncanalsobefinetunedfromthisdialoguebox.Alternativelytheanchorcanbemovedbybeingdraggedtopositionwiththemouse,ormovedbyusingtheup,down,leftandrightkeys.Theanchorpointcanalsobeeditedbyrightclickingontheanchorpointandchoosing'getinfo'fromthemouseclickmenu.

ControlofAnchorClasses

FontForgealsocontainsausefullgraphicalinterfaceforcontrollingthepositionofwholeclassesofanchorpoints,enablingtheusertofinetunethepositionof,forexample,alltheacuteaccentsatonceinafont,oralltheanchorsinaclasscontainedin,forexample,charactersthatreferencethelowercase'e'.Intheexamplesbelowwecanseehowtousethisgraphicalinterfacetofinetunethepositionofallacuteaccentsinafont,and,tofinetuneaclassofanchorsacrossallcharactersthatreferencethelowecase'e'glyph.

Onceyouhavecreatedanchorclasseswithinyourmark-to-basepositionlookups,andaddedanchorstosomeglyphs,youcancontroltheseclassesfrom"Element>FontInfo>Lookups>GPOS"andtheneditingasubtablethatcontainsanchorclasses.Youwillthenseethiswindow;

DiacriticsandAccents

122

Fromhereselecttheclassyouwishtoeditandclickonthe'AnchorControl'button.Youwillthenbepresentedbyagraphicalinterfacetothatclass.Intheexamplesbelowweareeditingthecontrolofthe'top'class.Inthefirstexample(below)thelowercase'e'hasbeenselectedfromthe'Bases'sectionofthedropdownmenu.Whenabaseglyphisselected,allcharactersthatreferencethatglyphandcontaina'top'baseanchor,willbedisplayedinthepreviewpane.Wecanthenadjustthepositionofthe'top'baseanchortoseehowiteffectsthepositionofallglyphsthatcontainthe'top'markanchor.

Inthesecondexample,below,the'acute'glyphhasbeenselectedfromthe'Marks'sectionofthedropdownmenu.Whenamarkglyphisselectedthenallglyphsthatreferencetheselectedglyphandcontaina'top'markanchorwillbedisplayedforpreview.

Otherresourceshttp://urtd.net/projects/cod/abouthttp://ilovetypography.com/2009/01/24/on-diacritics/http://diacritics.typo.cz/http://scripts.sil.org/ProbsOfDiacDesignhttp://www.microsoft.com/typography/developers/fdsspec/diacritics.htmhttps://twitter.com/fostertype/status/610292546971893760

DiacriticsandAccents

123

Numerals

Numeralsareoftendifficultforfontdesigners—andforseveralreasons.Oneisthatnumeralshaveaverylargenumberofcurves.Anotheristhatnumeralsoftenuseconventionsintheirshapesthataredifferentfrom(orareeveninviolationof)thevisualconventionsseenintherestofthefontdesign.Furthermore,numeralscanhaveverylargenumberofstrokes(like8and5do),ortheymayhavelargewhitespaces(like1,7,andsometimes2and4).Bothsituationscanbehardtomanage.Finally,thereistheproblemofhowtomakesureyourzerolooksdifferentfromthecapitalO.

Itcanbeusefultolookatthenumeralsfoundinawidevarietyoffontstobecomemorefamiliarwiththewaysinwhichdesignerscopewiththeseproblems.

Inthosenumeralswithadensenumberofstrokes(suchas8),youmayfindthatdesignersallowthestrokewidthstobecomealittlethinnerthanistypicalofthelettersinthefont.Asimilarapproachcanbeseenthedesignofthedoublestoryg.

Conversely,tocompensatefornumeralswithlargewhitespaceproportions,somestrokesarelikelytobecomeheavierthanwouldbetypical.

InthecaseofdistinguishingthezerofromthecapitalO,thereareawiderangeofsolutions—suchasmakingthezeronarrowerthantheO,orazerothatisperfectlyround,orperhaps(especiallyinamonospacefont)havingaslashthroughthezero.

HavingthezeronarrowerthanthecapitalOwhilesharingitsheightisthecommonapproach.Thisapproachistypicalofliningnumerals.Liningnumeralsarethemostcommonstylefornumerals.Examplesoffontsthatusethisapproachinclude:manyGaramonds,Futura,andtheGooglewebfontOpenSans.BelowisOpenSansshowingthezero,capitalO,zeroandthenothernumerals.

Aperfectlyroundornearlyperfectlyroundcircleislesscommon,butdoesexist.ExamplesoffontsthatusethisapproachincludetheGooglewebfontVollkornaswellasothercommercialtypessuchasMrsEaves,VendetaandFleischmanBTPro.Fontsthatuseoldstyleproportionalnumeralsaremorelikelytofeaturethisapproach.Sometimesazeroatx-heightbutwhichisnarrowerwillalsobeseen.

Numeralsalsocomeinupto11identifiablestyleswhenyouincludefractions,superscriptsandsubscripts.Wewilllookatthe5mostcommonones.

LiningstylenumeralsThemostcommonstylesofnumberfoundinfontsareTabularLiningandProportionalLining.Liningreferstotheheightsthatthenumbersuse.Ifitisaliningstyletheheightsforallthenumberswillbeopticallythesame.ThedifferencebetweenTabularLiningandProportionalLiningnumbersisthatinTabularLiningallthenumbersalsosharethesamewidths.Thisstyleisusefulforspreadsheetsandanyotherpurposewhereitishelpfulfornumberstostaystackedupinneatlinesbothhorizontallyandvertically.

Numerals

124

Proportionalliningnumbershavetheadvantageofhavingtheabilitytolookingmorevisuallyevenbecausetheformsandspacingofthenumberscanvarytocompensatefordifferingstrokedensity.

Numerals

125

RangingorOldstylenumerals

Numerals

126

Tabularnumbersarearelativelynewinventioninhistoricalterms.Beforetheyexistedtherewereoldstyleproportionalnumbers.Oldstylenumbersareusefulifyouwantthenumberstomixinandsharethestyleofatext.

Tabularoldstylenumbersarefairlyrare.Theycanbeusefulinanannualreportwhereyouwantthefeelingofanoldstylenumberbutthetabularspacingtypicalofthatkindofdocument.TheimageaboveisfromatypewriterLibrarycatalogcard.

Hybridstylenumerals

Numerals

127

Hybridnumeralsdon'tsharethefont'scap-heightorx-height,butinsteadoccupytheirownheight.Theterm"hybrid"referstoamixingoftheold-styleandliningnumerals.ExamplesoffontsthatusehybridstylenumeralsincludeGeorgiaandtheGooglewebfontsMerriweatherandDonegal.Thezero,capitalO,zero,1,2,3,etcglyphsfromMerriweatherareshownbelow.

Numerals

128

BoldandOtherWeights

Whenwetalkaboutthestyle"bold,"wearereallytalkingaboutabroadervariable,whichisweight.Weightcanincludeanythingfromveryverythinhairlineletterstoenormouslyheavyletters.Thisvariableisusedintexttypographytocreatestrongseparationbetweenbodiesoftext,anditisusedingraphicdesigneithertodrawattentiontoawordorshorttexts,ortogivetextaspecificfeeling(ratherthantocontrastitwithothertext).

Whileyoumaywanttodoawiderangeofthingswithweightitislikelythatyourfirstexperiencewithadjustingweightwillbetotrytocreateaboldtoaccompanyyourregulartextweight.

BecauseyouareusingFontForgeyouhaveadistinctadvantage.Unlikemanyfonteditingprograms,theresultsyougetfromFontForgestylefiltermayactuallybesuitableforuse—moresothantheonesyouwouldgetincommercialtypedesignsoftware.Thisisbecausethealgorithmitusesisexceptionallysophisticated.

CreatingaboldversionofafontcanberapidlyapproximatedbyrunningafiltercalledChangeweight(whichyouwillfindintheElement>Stylesmenu)toaddweighttoyourglyphs.

Theautomaticnatureandrelativelyhighspeedofthisprocessmakesitidealfortestingwhatweightyoumaywantforyourbold.Youmaywanttotryrunningthisfilterseveraltimesandsaveseveralversionstocompareintextnexttoyourregular.Thatsaid,youmaystillneedtoeitheraltertheresultfurtherafterrunningthefilter,ormanuallyadjustindividualglyphsinordertogetaresultwhichissatisfactory.

Itisalsoworthrememberingthatglyphswhichdonothaveadensityofstrokes(suchas1,i,l,I,L,jandJ)mayneedtobeheavier,whileglyphswhichdohaveadensityofstrokes(suchasa,e,g,x,B,R,8,and&)willneedtobelessheavythantheotherglyphs.

FontinterpolationFontForgedoeshaveafunctiontointerpolatebetweenseparatefonts(seethetheInterpolateFontsfunctionfromtheElementmenu).Fontinterpolationisatechniquethatcanbeusedforcreatingintermediateweightsfromtwootherweights.Thereforeonewayofdecidingabouttheweightofyourboldistocreateaboldwhichisdefinitelyheavierthanyouneed,thentointerpolateseveraldifferentweightsbetweenthisoverlybolddesignandyourregular.

Usingthistechniqueyoucanmorerapidlyfindtheweightyoufeelismostappropriateforyourproject.Thesametechniquecanbeappliedtohelpdecideaboutevenheavierweightssuchasthe"heavy"and"black,"aswellaslighteroneslike"book"and"thin"styles.Youcanalsosetnegativevaluesoninterpolation,forexampleyouwillgeta"bold"styleifyouinterpolatea"regular"with"thin"at-50%.

Bythislogic,itmayseemlikethebestandmostefficientwayofmakingaregularweightandalltheotherweightsyoumayneed,wouldbetomakeaverythinandahyper-boldfont,thengenerateeverythingyouneedfromthese.However,theresultofthatapproachislikelytobeexcessivelybland.Instead,itisoftenthecasethateachsignificantchangeinweightwillrequireitsownmasterdesignfromwhichothermiddleweightscanbemade.

FurtherReadinghttp://bigelowandholmes.typepad.com/bigelow-holmes/2015/07/on-font-weight.html

BoldandOtherWeights

129

BoldandOtherWeights

130

Italic

Italicsareprobablythemostmisunderstoodstyleintypedesign,buttheyarealsothestylewiththegreatestpotentialexcitementandfunduetothelargenumberofvariablesforyouthedesignertoplaywith.

Italicsaredifferentfromboldsinthattheyarenotmeanttoappeartohaveadifferentweightthantheregular.Instead,theyaremeanttoofferadifferenttexturethantheregular.Greaterintensityinthisdifferencewillmeanthattheitalicisespeciallyusefulforcreatingasenseofcontrastwiththeregular.Thisstrongereffectisusefulforhighlightingsinglewordsorshortpassagesoftext.Incontrast,aless-differenttextureisoftenusefulinsituationswhereyouaresettingmultiplelines,wholeparagraphs,orevenevenpagesinanitalic.

SlantThevariablemostcommonlyassociatedwithitalicsisslant.Indeed,whenawebbrowserisaskedforanitalicinaCSSruleandthereisnoItalic,itwillsimplyslanttheregulartocreateasyntheticorfauxitalic.Itisprobablynotsurprisingthatwhenpeoplefirstbegindesigningtypetheyalsoconsiderthisapproach.Theoriginsofthisideagobacktothemid-20thCenturyandmodernismasitwasappliedtodesign.ThisiswhythefirstitalicsseenintypefacessuchasHelveticawerealsoslantedversionsoftheregular.

Howmuchslant?

Someitalicshavenoslant.No,really!Theseitalicsarecalleduprightitalics.Howeveritislikelythatifyourdesignhasonlyoneitalicinitthatyouwillchooseforthatitalictohavesomedegreeofslant.Ingeneral,italicstendtoslantbetween4-14degrees.Mostcontemporaryfontsslantbetween6-9degrees.

Whileslantcanbeimportanttothedesignofanitalic,iseasytonotice,andcanevenbedonewithsomelimitedsuccessusinganautomaticfilter,itisnottheonlyvariablethatyoucanusetohelpseparateyouritalicfromyourregular.Youmaywanttoconsiderusingoneormoreofthefollowingvariablesinadditiontoslant.

ItalicconstructionTheterm"italic"doesnotinfactrefertotheslantseenininmanyitalicsdesignsbutinsteadrefersinsteadtoastyleofwritingwhichbecamepopularin14thcenturyItaly.Thisstyleofwritingwasafasterandaconnectedformofwritingwhichusesadifferentconstructionforitslettersthanisseeninregular.Thisdifferentconstructionorpatternofstrokesiswhattypedesignersarereferringtowhentheysaytheyhavedesigneda"real"or"true"italic.Thisconstructionhasmanysubcharacteristicsthatyoumaychoosetoincludeinanitalicdesign.

Triangularcounters

Themostobviousofthesecharacteristicsisthetriangularcountershapecreatedbyletterswithjoins.Theselettersincludea,b,d,g,h,m,n,p,q,andu.Thisvariableispowerful,partlybecausecountershapeisapowerfulvariable,butalsobecauseofthegreatnumberofletterswiththefeature.Thatfact,combinedwiththehighfrequencyoftheirusageinmostlanguages,isalsoaverylarge(andprobablytheevengreater)factor.

Whendesigningyouritalic,youcanveryeffectivelytunetheeffectyouritalicgivesbymakingrelativelysmalladjustmentstotheheightofthejoins.Subtlechangescangivesurprisinglylargeresults.Still,notallitalicfontstakeadvantageofthisvariable.

Italic

131

Inandoutstrokes

Manyitalicfontsmakeuseofasymmeticalserifs,intheformofin-orout-strokes,orboth.Whenonlyoneisused,itismorecommontousetheoutstrokeandtohaveanuprightstyleappliedwheretheinstrokemighthavebeen.Theintensityoftheeffectthatinstrokeandoutstrokehascanbecontrolledbytheweightofthestrokesandbyadjustinghowlongtheyare.Liketriangularcounters,agreatpartoftheirutilityandpowercomesfromthefactthatsomanylettersusethem.

Condensation

Italicsarenormallysomewhatlesswideormorecondensedthantheregularstyle.Becausecondensationisafeatureseenacrossallofthelettersintheitalic,itisaverypowerfulvariable.Thisvariablecanbeemployedinbothagrossandsubtlemanner.Ifyouchoosetousethisvariable,itisnecessarytoadjusttheweightofthestrokestomaketheitalicappeartobethesameornearlythesameweightastheregulardesign.Themorecondensedyouritalicis,themoreyouwillneedtomakethisadjustment.

MixingvariablesMostitalicsuseallofthevariableslistedaboveinvariousproportions.Youmayfindthatitisusefultolookatarangeofitalicdesignsandanalysewhichvariablesarebeingusedandinwhatstrength.Whenyoudothis,youwillnoticethatnoneofthevariablesareusedatfullstrength.Instead,oneofthevariablestendstolead,withsomelimiteduseoftheothers.Thestrongertheuseofthevariablesthemorecontrastyouritalicwillhavefromtheregular.

Inisalsonotablethatinthelasttenyearswehaveseenanincreasingnumberoftypedesignerschoosetooffernotjustoneitalicintheirtypefamilies,buttwoorevenmore.Itisalsonotablethatdictionariessometimesmakeuseofmorethanonestyleofitalic.

Whentheywerefirstmadeforprinting,italicswerenotthoughtofaspartofthesametypedesignortypefamily.Thisideaisonewhichbecamestandardoverthe19thand20thCenturies.Eventheideaofmixingitalicswithregularwasnotpartoftheoriginalideabehindthisscript.Thefirstitalicfontswereusedtosetentirebooks,insteadoftheuprightromanstyle.Itisprobablysafetoassumethattheroleoftheitalicwillcontinuetoevolve.

Italic

132

Spacing,MetricsandKerning

Thespacesbetweencharactersareanimportant,integralpartofthedesignofafont.

Designingafont’sletterspacingshouldbecarriedoutasanintegralpartofthewholeprocessofdesigningafont.Goodspacingisnecessaryforafonttofunctionwell.

InFontForge,theMetricsWindowallowsyoutodesignthemetricsofyourfont,alterthespacingbetweenthem,andtesthowglyphslooktogether.MetricsWindowscanbeopenedfromthe‘Window’menu,orbyusingtheControl-kcommand.

Thespacebetweenanytwoglyphhastwocomponents;thespaceafterthefirstglyph,andthespacebeforethesecondglyph.Thesespacesbetweenglyphsarecomposedofthe‘sidebearings’fromeachglyphpair.Eachglyphhasaleftsidebearingandarightsidebearing,intheexamplebelowofthelowercase‘a’ofOpenSanstherightsidebearinghasavalueof166units,andtheleftsidebearinghasavalueof94units.

BasicFunctionsoftheMetricsWindowThesidebearingsofcharacterscanbeeditedinFontForge’sMetricsWindowin5ways;

Manuallydraggingeachsidebearingboundary.Manuallydraggingacharacter.Notethoughthatdraggingacharacterwillonlyeffectthevalueoftheleftsidebearing.

Spacing,MetricsandKerning

133

SidebearingvaluescanbealteredbydirectlyeditingtheirvalueinthemetricstablesoftheMetricsWindow.Thevalueofsidebearingscanbeincremented/decrementedbyusingthekeyboard.UsingcommandsintheMetricsWindow’sMetricsmenu.

AdjustingSideBearingValueswiththekeyboard.

OnemethodofadjustingmetricvaluesquicklyandaccuratelyinFontForgeisbyusingtheup,down,leftandrightkeysofakeyboard.Theupanddownkeysareusedtoincrememt/decrementvaluesandalt+up,alt+down,alt+leftandalt+rightareusedfornavigatingaroundthedifferentvaluefieldsoftheMetricsWindow.

GeneralPrinciplesAsageneralprinciplesymmetriccharacterssuchas'A''H''I''M''N''O''T''U''V''W''X''Y''o''v''w''x'willhavesymmetricsidebearings,e.g.atheleftandrightsidebearingsofan'H'willbethesamevalue.Notethoughthatthisisnotahardandfastrule,butageneralone.

Asyouspacethecharactersthatyoudesign,youshouldtrustyoureyes.Thebottomlineisto'design-look-adjust-lookagain'.

Fortheabsolutebeginner;donotassumethatreliableresultsareachievedbyrelyingonthemeasuredspace.Forexample,whilstthemeasurementsbetweentwocharactersmaybeunequal,theeyecanseethemasequal.Anobviousexampleofthiscanbeseenwhenattemptingtospacethecharacters'H'and'O'.Sofortheexamplebelow,thesidebearingsofthe'H'and'O'areequal,butlookunequal.Inthelowerline,thesidebearingsarenotequalbutthespacingappearsbalanced.

Atoolforgeneratingsuchtextsisavailablefromhttp://tools.ninastoessinger.com/

MetricsMenuCommandsforeditingmetrics'CenterinWidth'-Thiscentersthecurrentglyphwithinitscurrentwidth.

'WindowType'-FontForge'sMetricsWindowcanbesettobehavein2waysformetricsadjustment;

'AdvanceWidthOnly'-inthismodemetricsviewmayonlybeusedtoadjusttheadvancewidthsofglyphs.'Both'-Inthismodemetricsviewwilladjusteithertheadvancewidthorkerningvalues.

'SetWidth'-thiscommandallowsyoutochangethewidthofthecurrentglyph.

'SetLBearing'-allowsyoutochangetheleftsidebearingvalue.

'SetRBearing'-allowsyoutochangethelrightsidebearingvalue.

Spacing,MetricsandKerning

134

AbasicapproachtospacingThefollowingmethodisdesignedtogetyoustartedeffectivelytowardsdesigningthemetricsofyourfont.

Startingwithastringoflowercase'o'charactersinthemetricswindow,theleftandrightsidebearingscanbeadjusteduntilthespacingofthecharacterslooksandfeelsright.Onewaytolookforthis'rightness'istolookforthewhitespacebetweenthe'o'characterstobalancethewhitespaceinsidethe'o'characters.Ingeneral,withtheexceptionofslantedoritalicfonts,theleftandrightsidebearingsofalowercase'o'shouldbeofequalvalue.Onceyouarehappywiththespacingofyourstringof'o'characters,introducethe'n'characterfromyourfont(seebelow)andthenlooktoadjustthesidebearingsofthe'n'sothatit'sspacingfitsintothebalanceofthestringof'o'characters(seebelow).Notethatduetothenatureofthewayoureyessee,therightsidebearingofan'n'willallwaysbeasmallervaluethantheleftsidebearing,andthesidebearingsofthe'o'willbesmallerthanthesidebearingsofthe'n'.

Onceboththe'n'and'o'areadequatelyspacedtheirsidebearingscanbeusedtocreatethesidebearingsforanarrayofothercharacters,forexample;

Theleftsidebearingofthe'o'canbeusedfortheleftsidebearingofthe'c','d','e',and'q'.Therightsidebearingofthe'o'canbeusedfortherightsidebearingofthe'b'and'p'.Therightsidebearingofthe'n'canbeusedfortherightsidebearingofthe'h'and'm'.Theleftsidebearingofthe'n'canbeusedfortheleftsidebearingofthe'b','h','k','m','p'and'r'.

Note-theaboveshouldbeusedasaguideonlythatcanbeusedasasupereffectivestartingpointforfindingcorrectvaluesforthesesidebearings.

Fromhereitmakessensetothenspacetherestofthesidebearingsofthelowercasecharactersagainststringsof'n'and'o'characters,asseeninthediagramabove.Again,trustyoureyestoreachcorrectbalanceofcharacters.

Spacing,MetricsandKerning

135

UppercasecharactersUppercasecharacterscanbespacedusingthesameprinciplesasabove.Forexample,startwiththestring'Hooooo'andadjusttherightsidebearingofthe'H'untillitfeelsbalancedagainstthestringof'o'characters.Withtheleftsidebearingofthe'H'beingequaltotherightsidebearing,theuppercase'O'canthenbespacedagainstthe'H'(seebelow).

Fromhereallothercharacterscanbespacedagainstthecharacterswhichhavealreadybeenspaced.Itshouldbenotedthatthismethodcanbeusedasagoodstartingpointforspacingafont,butitislikelythatmoreminutefinetuningofspacingwillalsobeneededtoachievehigherlevelsofgoodletterspacing.Otherstringsofcharactersthatareusefullinthiscanbearrayssuchas'naxna','auxua','noxno','Hxndo'.

KerningKerningistheadjustmentofthespacingbetweenspecificcharacterpairs.Kerningenablesindividualspacingofcharacterpairsthatisappliedinadditiontothespacingprovidedbyacharacter'ssidebearings.Commonexamplesofcharacterpairswherekerningisoftenneededtoimprovespacingwouldbe'WA','Wa','To','Av'.Intheexamplesbelow,wecanseethatwithoutkerningthespacingbetweentheletterpairs'T-o'and'V-a'aretoowide,whereaswithkerningthespacebetweenthesecharacterpairsismuchmorebalancedwiththefeelofthespacingoftherestofthefont.

TheMetricsWindowinFontForgecanbeusedtodesignbothsidebearingsandkerningvalues.KerningvaluescanbeappliedtoafontinanumberofwaysinFontForge,2oftheseareshownbelow,kerningwithclassesandkerningwithindividualpairs;

FontForge'sMetricsmenu'WindowType'-FontForge'sMetricswindowcanbesettobehavein2differentwaystoenablekerningadjustment;

Spacing,MetricsandKerning

136

'KerningOnly'-inthismodethemetricsviewmayonlybeusedtoadjustkerning.'Both'-Inthismodemetricsviewwilladjusteithertheadvancewidthorkerningvalues.

'KernByClasses'-Thiscommandprovidestheuserwithadialogtomanipulatekerningclasses.

'KernPairCloseup'-Thiscommandprovidestheuserwithadialogfromwhichyoucanadjustalreadyexistingkernedpairsorcreatenewpairs(seebelow).

AdjustingkerningvalueswiththekeyboardJustlikewithadjustingsidebearingvalues,kerningvaluescanbequicklyandaccuratelyeditedinFontForgebyusingthe'up','down','left'and'right'keysofakeyboard.The'upand'down'keysareusedtoincrememt/decrementvaluesand'alt+up','alt+down','alt+left'and'alt+right'areusedfornavigatingaroundthedifferentvaluefieldsofthemetricswindow.

Spacing,MetricsandKerning

137

KerningindividualpairsThisisthemostbasiclevelofcreatingkerningpairsinFontForge.IntheMetricsWindowthekerningvaluebetween2characterscanbemanuallyadjustedeitherbydraggingtheright-handcharactertoorfromtheleft-handcharacter,orbyeditingthekerningvaluedirectlyinthemetricstableofthewindow.Tochangekerningvaluesbydraggingcharactersusethekern-toolhandlethatappearswhenthemousecursorishoveredbetween2characters(seescreeenshotbelow).Thekerningvalueinthemetricstablecanbeeditedbymanualllyenteringvaluesorbyincrementing/decrementingthevalueusingyourkeyboardsup/downkeys.

KerningwithclassesA'kernclass'inFontForgecanbecreatedtobuildgroupsofcharacterswhowillallhavethesamekerningvalueapplied,soforexampleaclasscanbecreated,let'scallit'o_left_bowl'inwhichthecharacters'o','c','d','e','q'willallwayshavethesamekerningvaluewhenpreceededby,forexample,thecharacter'T'.The'T'couldalsoitselfbeamemberofanotherclassthatwouldlikelyincludeothercharacterssuchasTcaronandTbar.Effectively,classkerningcansaveyoualotoftime.

Themostdirectwaytocreatekerningclassesisfromthe"Kernbyclasses"iteminFontForge's"Metrics"menu.

Select"Kernbyclasses"andyouwillbepresentedbythe"newlookup"window.Clickonthe"NewLookup"buttonandanotherwindowwillpopup,whereyoucancreateakerningfeaturelookup.Chosetheitem"pairpositionkerning"fromthe"Type"dropdownmenu.Nowclickonthedownarrownextto"NEW"inthe"Feature"column,andchoose"HorizontalKerning"fromthedropdownmenu.Clickon"OK".Youcankeepthedefaultnamesthatfontforgecreatesforyou.

Spacing,MetricsandKerning

138

Nowyouarepresentedbythewindowwhereyoucanbuildyouactualkerningclasses(seeabove).Thefirstcharacterofakerningpairwillbechosenfromthelefthandcolumn,andthesecondcharacterofapairwillbechosenfromtherightcolumn.

TheElement>FontInfo>LookupstabprovidesaninterfacetoclasskerninginFontForge.ThesameinterfaceisalsogotatviatheItbringsupadialogshowingalltheGPOSlookups(ofwhichkerningisone)andtheirsubtables.Seescreenshotbelow;

Spacing,MetricsandKerning

139

Tocreateanewkerninglookupclickon'AddLookup'andchoose'PairPosition(kerning)'asthelookuptypeandgivethelookupitsown,uniquename(seebelow).

Spacing,MetricsandKerning

140

Eachsetofkerningclasseslivesinitsownsubtable.Tocreateasubtable,clickon'AddSubtable'.Whenyoucreateakerningsubtableyouwillbeaskedwhetheryouwantasetofindividualkerningpairsoramatrixbasedonclasses.Ifyouchoseclassesyouwillbepresentedwithafollowingdialoguewhereyoucancreateyourclasses.NotethatyoucanchoosetoenableFontForgeto'guess'or'autokern'thekerningvaluesbetweentheclassesyouarecreatinginthedialogue.IfusingFontForgetoguesskerningvaluesyouwillundoubtedlyneedanamountoftrialanderrorandexperimentation,butitcanmakesensetousetheautokernfunctionasastartingpointtokerningyourfont.

Spacing,MetricsandKerning

141

Forexampleinthescreenshotabove,2classeshavebeencreated;oneclasscontainingthe'T'character,andoneclasscontainingthe'o'character.Onclicking'ok'intheabovedialog,youwillbepresentedwiththefollowingwindowwhereyoucanfinetunetheamountofkerningbetweenthesetwo'T'and'o'classes.

Spacing,MetricsandKerning

142

ManualkerningIfautokernedvaluesneedtobeadjusted(andtheywill!)thenthiscanbedoneinanumberofways.

Viathe'kerningbyclasses'dialogwindow.UsingtheMetricsWindow.Usingthe'KernPairCloseup'commandfromtheMetricsmenu.

SeealsoStrategiesfordeterminingletterspacing

Spacing,MetricsandKerning

143

MakingSureYourFontWorks,Validation

Inaperfectworld,yourfontwouldbereadytobuildandinstallonanymoderncomputerwithoutanyspecialeffort,butrealityismessier—particularlyduringthedesignprocess.Fontscanhavetechnicalerrorsthatpreventthemfromworkingordisplayingcorrectly.Forexample,curvesthatintersectthemselveswillnotrendercorrectlybecausetheydonothavea"inside"and"outside."Thevariousfontfileformatsalsoexpectglyphstoadheretocertainrulesthatsimplifyplacingthetextonscreen,andfontsthatbreaktherulescancauseunexpectedproblems.Anexampleofthistypeofissueisthatallofthepointsonacurveshouldhavecoordinatesthatareintegers.Finally,therearestylisticerrorsthatarenottechnicallyincorrect,butthatyouwillstillwanttorepair—suchaslinesthatareintendedtobeperfectlyhorizontalorvertical,butareaccidentallyslightlyoff-kilter.

FontForgeofferstoolsthatyoucanusetolocate(and,inmanycases,repair)allthreecategoriesofproblem.Validatingyourfonttoeliminatetheseerrorswillthusnotonlyensurethatitcanbeinstalledandenjoyedbyusers,butwillensurethatfinishedprojectexhibitspolish.

FindProblemsThefirsttooliscalledFindProblems,andisfoundundertheElementmenu.Youmustfirstselectoneormoreglyphs—eitherfrominthefontview,theoutlineview,orthemetricsview—thenopentheFindProblemstool.Thetoolpresentsyouwithanassortmentofpotentialproblemsineightseparatetabs.

MakingSureYourFontWorks,Validation

144

Youcanselectwhichproblemsyouareinterestedinlookingforbycheckingthecheckboxnexttoeach,andinsomecasesprovidinganumericvaluetocheckthefontagainst.WhenyouclicktheOKbutton,thetoolwillexaminealloftheselectedglyphs,andreportanyproblemsitfindsinadialogbox.

TheproblemsthattheFindProblemstoolcanlookforaresortedintotheseeightgroups:

ProblemsrelatedtopointsProblemswithpathsandcurvesProblemswithreferencesProblemswithhintingProblemswithATTProblemsspecifictoCID-keyedfontsProblemswithboundingboxesMiscellaneousotherproblems

Noteverycheckisnecessary;someapplyonlytospecificscriptsorlanguages(suchasthoseinthe"CID"tab),whileothersapplyonlytospecific,optionalfontfeatures(suchasthechecksinthereferencestab).Butyoushouldcheckthatyourfontpassesthoseteststhatexaminetheglyphsforrequiredfeatures,andseveralteststhatlookforoptionalbutcommonly-expectedbehavior.Severaloftheothertestsprovidefeedbackandguidancetoyouduringthedesignprocess,andareworthexploringforthatreason.

Firstthingsfirst:testforrequiredfeatures

Inthe"Points"tab,selecttheNon-IntegralCoordinatestest.Thistestmakessurethatallofthepointsineachglyph(includingbothon-curvepointsandcontrolpoints)haveintegercoordinates.Noteveryfontoutputformatrequiresthisbehaviour,butsomedo.

Inthe"Paths"tab,selecttheoptionsOpenpathsandCheckoutermostpathsclockwise.Thesearebothmandatoryfeaturesinallfonts;thefirstlooksforanycurvesthatarenotclosedshapes,andthesecondmakessurethattheoutercurvesofeveryglypharetracedinclockwiseorder.ItisaverygoodideatocheckIntersectingpathsaswell;althoughmodernfontformatscansupporttwointersectingpaths,curvesthatinsectwiththemselvesarenotallowed.Inaddition,ifaglyphhasanyself-intersectingpathsthenFontForgecannotperformtheCheckoutermostpathsclockwisetest.

Inthe"Refs"tab,selectallsixtests.Thesechecksallrelatetoreferences,inwhichaglyphincludespathsfromanotherglyph.Forexample,anaccentedletterincludesareferencetotheoriginal(unaccented)letter,plusareferencetotheaccentcharacter.Allofthetestsinthe"Refs"tabaremandatoryforatleastonecommonoutputformat,andallaregoodideas.

Similarly,selectallofthetestsinthe"ATT"tab.Thesetestslookformissingglyphnames,substitutionrulesthatrefertonon-existentglyphs,andotherproblemsrelatedtoglyphnamesorOpenTypefeatures.Theproblemstheyguardagainstareuncommon,butallwillcausethefonttobeconsideredinvalidbyoneormorecomputersystem,sotheyareworthincluding.

Makelifeeasierforyourusers:testforgoodbehaviour

Thetestslistedabovewillensurethatyourfontinstallsandrenderscorrectlyaccordingtotherulessetoutbythevariousfontformats,butthereareahandfulofotherstestsyoushouldconsideradding—especiallyattheendofthedesignprocess—simplybecausetheycheckforcommonconventionsfollowedbymostmoderntypography.

Inthe"Points"tab,selectControlpointsbeyondspline.Thistestwilllookforcontrolpointslyingbeyondtheendpointsofthecurvesegmentonwhichtheyreside.Thereisrarelyareasonthatacontrolpointshouldlieoutsideofthecurve,sotheseinstancesusuallysignifyaccidents.ItisalsoagoodideatoselectPointstoofarapart,whichwilllookforpointsthataremorethan32767unitsawayfromthenextnearestpoint.Thatdistanceislargerthanmostcomputerscandealwithinternally,andapointthatfarawayisalmostcertainlyunintentional(forcomparison,asingleglyphtendstobedrawnonagridofabout1000units),soremovingsuchpointsisimportant.

MakingSureYourFontWorks,Validation

145

Inthe"Paths"tab,boththeCheckMissingExtremaandMorePointsThan[val]testscanbevaluable.Thefirstlooksforpointsattheextrema—thatis,theuppermostpoint,lowestpoint,andleftmostandrightmostpointsoftheglyph.Modernfontformatsstronglysuggestthateachpathhaveapointateachofitshorizontalandverticalextrema;thismakeslifeeasierwhenthefontisrenderedonscreenoronthepage.checkwilllookformissingextremapoints.Thesecondtestisasanitycheckonthenumberofpointswithinanyoneglyph.FontForge'sdefaultvalueforthischeckis1,500points,whichisthevaluesuggestedbythePostScriptdocumentation,anditisgoodenoughforalmostallfonts.

Asitsnamesuggests,the"Random"tablistsmiscellaneousteststhatdonotfitundertheothercategories.Ofthese,thefinalthreearevaluable:CheckMultipleUnicode,CheckMultipleNames,andCheckUnicode/Namemismatch.TheylookformetadataerrorsinthemappingbetweenglyphnamesandUnicodeslots.

Helpyourself:runteststhatcanaiddesign

ManyoftheothertestsintheFindProblemstoolcanbeusefultofindandlocateinconsistenciesinyourcollectionofglyphs;thingsthatarenotwrongorinvalid,butthatyouasadesignerwillwanttopolish.Forexample,theYnearstandardheightstestinthe"Points"tabcomparesglyphstoasetofusefulverticalmeasurements:thebaseline,theheightofthe"x"glyph,thelowestpointofthedescenderontheletter"p",andsoon.Inaconsistenttypeface,mostletterswilladheretoatleastacoupleofthesestandardmeasurements,sotheoddsarethataglyphthatisnowherenearanyofthemneedsalotofwork.

TheEdgesnearhorizontal/vertical/italictestinthe"Paths"tablooksforlinesegmentsthatarealmostexactlyhorizontal,vertical,oratthefont'sitalicangle.Makingyouralmost-verticallinesperfectlyverticalmeansthatshapeswillrendersharplywhenthefontisused,andthistestisareliablewaytotrackdownthenot-quite-rightsegmentsthatmightbehardtospotwiththeunaidedeye.

Youcanuseotherteststolocateon-curvepointsthataretooclosetoeachothertobemeaningful,tocomparethesidebearingsofsimilarly-shapedglyphs,andtoperformarangeofotherteststhatrevealwhenyouhaveglyphswithoddities.Partoftherefinementprocessistakingyourinitialdesignsandmakingthemmoreprecise;likeotheraspectsoffontdesign,thisisaniterativetask,sousingthebuilt-intoolsreducessomeoftherepetition.

ValidatefontFontForge'sothervalidationtoolisthewhole-fontvalidator,whichrunsabatteryoftestsandchecksontheentirefont.Becausethevalidatorisusedtoexamineacompletefont,youcanonlystartitupfromthefontviewwindow;youwillfinditintheElementmenu,undertheValidationsubmenu.Thevalidatorisdesignedtorunjustthoseteststhatexaminethefontfortechnicalcorrectness—essentiallythetestsdescribedinthe"testforrequiredfeatures"sectionabove.Butitdoesexecutethetestsagainsttheentirefont,anditdoessofarmorerapidlythanyoucanstepthroughtheprocessyourselfusingtheFindproblemstool.

MakingSureYourFontWorks,Validation

146

Thefirsttimeyourunthevalidatorduringaparticulareditingsession,itwillpopupadialogboxaskingyouwhetherornotitshouldflagnon-integerpointcoordinatestobeanerror.Thesafeansweristochoose"Reportasanerror,"sincestickingwithintegralcoordinatesisgooddesignpractice.Whenthevalidatorcompletesitsscanofthefont(whichwillbemeresecondslater),itwillopenupanewdialogboxnamedValidationofWhateverYourFontNameIs.Thiswindowwilllisteveryproblemthevalidatorfound,presentedinalistsortedbyglyph.

MakingSureYourFontWorks,Validation

147

Butthiswindowisnotmerelyalistoferrors:youcandouble-clickoneachiteminthelist,andFontForgewilljumptotherelevantglyphandhighlighttheexactproblem,completewithatextexplanationinitsownwindow.Youcanthenfixtheproblemintheglypheditor,andtheassociatederroritemwillimmediatelydisappearfromthevalidator'serrorlist.Inmanycases,theerrorwillbesomethingFontForgecanautomaticallyrepair;inthosecasestheexplanationwindowwillhavea"Fix"buttonatthebottom.Youcanclickitandperformtherepairwithoutadditionaleffort.

Forsomeproblems,thereisnoautomaticfix,butseeingtheissueon-screenwillhelpyoufixitimmediately.Forexample,aself-intersectingcurvehasaspecificplacewherethepathcrossesoveritself—itmayhavebeentoosmallforyoutonoticeataglance,butzoominginwillallowyoutoreshapethepathandeliminatetheproblem.

Forotherproblems,theremaynotbeonespecificpointatwhichtheerrorislocated.Forexample,ifacurveistracedinthewrongdirection(thatis,counterclockwisewhenitshouldbeclockwise),theentirecurveisaffected.InthoseinstanceswhereFontForgecannotautomaticallyfixtheproblemandthereisnospecificpointontheglyphforthevalidatortohighlight,youmayhavetohuntaroundinordertomanuallycorrecttheproblem.

Finally,therearesometestsperformedbythevalidatorthatmightnotbeaproblemfromthefinaloutputformatyouhaveinmind—forexample,thenon-integralcoordinatestestmentionedearlier.Inthosecases,youcanclickonthe"ignorethisprobleminthefuture"checkboxintheerrorexplanationwindow,andsuppressthatparticularerrormessageinfuturevalidationruns.

FixproblemsasyoueditMostoftheerrorsthattheFindproblemtoolandthewholefontvalidatorlookforcanbecorrectedduringtheeditingprocess,sodonotfeelanyneedtodefertroubleshootingwhileyouwork.Forexample,View>Showsubmenuhasoptionsthathighlightproblemareasduringediting;theElementmenuholdcommandslikeAddExtremathatwilladdtheextremapointsexpectedinmostoutputfileformats,andcheckboxestoindicatewhethertheselectedpathisorientedintheclockwiseorcounterclockwisedirection.Ifyouflipashape(horizontallyorvertically)intheglypheditor,youwillnoticethatitsdirectionisautomaticallyreversedaswell.IfyouclickontheCorrectDirectioncommandintheElementmenu,FontForgewillfixtheclockwise/counterclockwiseorientationimmediately.Gettinginthehabitofdoingsmallfixeslikethisasyouworkwillsaveyouabitoftimeduringthevalidationstagelater.

DoestheDesignWork?Typefacescan'work'betterorworseintwoways;readabilityandlegibility.

Legibilitymeansthedesignsofglyphsaredistinctenoughtobeinstantlyrecognisedcorrectly.Herearesomepairsthatareoftentoosimilar:

theletter"L"andthenumber"1"theletter"O"andthenumber"0"

MakingSureYourFontWorks,Validation

148

theletter"Z"andthenumber"2"thenumbers"1"and"7”

Readabilitymeansalltheglyphsworkwelltogetherforafamiliar,comfortablereadingexperience.Creatingtestdocumentsisthebestwaytoensurethis.Ifyouhaveacompletealphabetthenyoucantypesetrealtext-forexampleusingFontFriendtodraganddropyourfontintoalongnewsarticleyouwishtoread,thenprintingitout.

However,ifyoufontonlycontainsafractionofthealphabet,youcanuseatesttextgeneratorsuchasLibreText.organdanywordprocessor,desktoppublicationapplicationorgeneralillustrationprogram(suchasInkscape)tocreatetestdocuments.

TestingthefontindifferentenvironmentsWhentestingfontsonMicrosoftWindows,theFontpropertiesextensioncanbehelpfulforquicklyreviewingtheinternalfontmetadata,suchasversionnumbers.

IfyouinstalldevelopmentfontsthatmakeWindowsbehaveerratically,JohnHudsondescribedhowtoclearoutcorruptfontsonTypeDrawers:

RestartWindowsinrecoveryconsolemode.Intheconsole,navigatetotheWindows/Fontsfolder,anddeleteallentriesfortheRhodiumfont.ThennavigatetoWindows/System32anddeletethe'FNTCACHE.DAT'file(notthe.dll)ThenrestartWindows.Thefontcache.datfilewillberebuilt,andthenyoucanreinstallacleancopyoftheRhodiumfontandseeifitbehaves.(Don'tworryifyoustillgetamessagesayingthefontisalreadyinstalled:atthatstageWindowsislyingtoyou.)

MakingSureYourFontWorks,Validation

149

TheFinalOutputGeneratingFontFiles

AlthoughyoucandoawiderangeoftestingwithinFontForgeitself,youwillneedtogenerateinstallablefontfilesinordertoperformreal-worldtestingduringthedevelopmentprocess.Inaddition,yourultimategoalisofcoursetocreatefontthatyoucanmakeavailableinanoutputformatforotherpeopletoinstallanduse.YouwillusetheGenerateFontstool(foundintheFilemenu)tobuildausableoutputfontregardlessofwhetheryouaremakingitforyourowntestingpurposesortopublishitforconsumptionbyothers,butyouwillwanttoemployafewextrastepswhenbuildingthefinishedproduct.

FontForgecanexportyourfonttoavarietyofdifferentformats,butinpracticeonlytwoareimportant:TrueType(whichisfoundwiththe.ttffilenameextension)andOpenTypeCFF(whichisfoundwiththe.otfextension).TechnicallytheOpenTypeformatcanencompassarangeofotheroptions,buttheCFFtypeistheoneinwidespreaduse.

QuickanddirtygenerationfortestingTobuildafontfilefortestingpurposes—suchastoexaminethespacinginawebbrowser--youneedonlytoensurethatyourfontpassestherequiredvalidationtests.

YoucanusetheValidateFonttoolfoundintheElementmenutodothis(seethechapteronvalidatingfontsforamoredetailedexplanation),oryoucanselectalloftheglyphs(hitControl-Aorchoose"Select"->"SelectAll"fromthe"Edit"menu)thenrunafewcommandstoapplysomebasicchangesinbulk.Besuretosaveyourworkbeforeyouproceedanyfurther,though:someofthechangesrequiredtovalidateyourfontforexportwillaltertheshapesofyourglyphsinsubtleways.

ForOpenTypefonts,firstcorrectthedirectionofallofyourpaths.HitControl-Shift-Dorchoose"CorrectDirection"fromthe"Element"menu.Next,checktomakesurethatyouhavenotleftanyunclosedpaths.Choose"Findproblems"fromthe"Element"menu,selecttheOpenpathsoptioninthe"Paths"tab,andclickOKtorunthetest.Onceyourfontpassesthetestwithouterrors,youarereadytogenerateOpenTypeoutput.

ForTrueTypefonts,afewadditionalstepsarerequired.Youshouldfirstcorrectthedirectionofallofyourpathsasdescribedabove.Next,adjustallpointstohaveintegercoordinates:eitherhitControl-Shift-_(underscore),orchooseToIntfromthe"Element"->"Round"menu.Finally,openthe"Findproblems"tool,selecttheOpenpathstestasdescribedabove,andalsoselectallofthetestsinthe"Refs"tab.

Afteryoucanrunthesetestswithouterrors,youwillthenneedtoconvertyourpathstoquadraticcurves.Openthe"FontInfo"windowfromthe"Element"menu.Clickonthe"Layers"tab,andchecktheAlllayersquadraticoption.ClickOKatthebottomofthewindow,andyouarereadytogenerateTrueTypeoutput.

Buildingthefontfiles

OpentheGenerateFontswindowbychoosingitfromthe"File"menu.Thetophalfofthewindowshowsthefamiliarfile-chooseroptions—alistofthefilesfoundinthecurrentdirectory,atext-entryboxforyoutoenterafilename,andbuttonstonavigatetootherfoldersanddirectoriesifnecessary.Thisisstrictlyameanstohelpyouquicklyfindtherightplacetosaveyouroutputfile,ortochooseanexistingfontfileifyouintendtooverwriteaprevioussave.Alloftheoptionsyouneedtolookatarefoundinthebottomhalfofthewindow.

TheFinalOutputGeneratingFontFiles

150

Ontheleft-handsideisapull-downmenufromwhichyouselecttheformatofthefontyouwishtogenerate.YoushouldchooseeitherTrueTypeorOpenType(CFF),asdiscussedearlier.Ontheright-handside,makesureNoBitmapFontsisselected.Onthelinebelow,makesureNoRenameisselectedforthe"Forceglyphnamesto:"option.Youcancheckthe"ValidateBeforeSaving"optionifyouwish(topotentiallycatchadditionalerrors),butthisisoptional.Leavethe"AppendaFONTLOGentry"and"Prependtimestamp"optionsunchecked.

Clickthe"Generate"button,andFontForgewillbuildyourfontfile.Youcanloadthefontinotherapplicationsandrunanytests,butwhenyouarereadytoreturntoediting,remembertore-openthesavedversionofyourfontthatyoucreatedbeforegeneratingyour.ttfor.otfoutput.

GeneratingforfinalreleaseDesigningyourfontisaniterativeprocess,buteventuallythedaywhencomewhenyoumustdeclareyourfontfinished—oratleastreadyforpublicconsumption.Atthatpoint,youwillagaingeneratea.ttfor.otfoutputfile(perhapsevenboth),butbeforedoingsoyouwillneedtoworkthroughafewadditionalstepstocreatethemoststandards-compliantanduser-friendlyversionofyourfontfile.

First,followthesamepreparationstepsoutlinedinthesectiononquickanddirtygenerationfortestingpurposes.Inparticular,remembertochangeyourfonttoAlllayersquadraticifyouarecreatingaTrueTypefile.

Removeoverlaps

TheFinalOutputGeneratingFontFiles

151

Asyouknow,itisagoodideatokeepyourletter-formsascombinationsofdiscretecomponentsasyoudesign:stems,bowls,serifs,andotherpiecesofeachglyph.Butalthoughthistechniqueisgreatfordesigningandrefiningforms,youwantyourfinal,publishedfonttohavesimpleoutlinesofeachglyphinstead.Thisreducesfilesizeabit,butmoreimportantlyitcutsdownonrenderingerrors.

FontForgehasaRemoveOverlapcommandthatwillautomaticallycombinetheseparatecomponentsofaglyphintoasingleoutline.Selectaglyph(orevenselectallglyphswithControl-A),thenhitControl-Shift-OorchooseRemoveOverlapfromthe"Element"->"Overlap"menu.Onecaveatisworthwatchingoutfor,however:FontForgecannotmergeshapesifoneoftheshapesistracedinthewrongdirection(thatis,iftheoutermostpathiscounterclockwise).Apathtracedinthewrongdirectionisanerrorofitsown,though,whichyoushouldfixanyway.

Simplifycontoursandaddextremapoints

Youshouldalsosimplifyyourglyphswherepossible—noteliminatingdetails,buteliminatingredundantpoints.Thisreducesfilessizeslightlyforeveryglyph,whichaddsupconsiderablyovertheentiresetofcharactersinthefont.

Fromthe"Element"menu,choose"Simplify"->Simplify(orhitControl-Shift-M).Thiscommandwillmergeawayredundanton-curvepointsinalloftheselectedglyphs.Insomecases,therewillbeonlyafewpointsremoved,inotherstheremaybemany.Butitshouldperformthesimplificationwithoutnoticeablychangingtheshapeofanyglyphs.IfyounoticeaparticularglyphthatisalteredtoomuchbySimplify,feelfreetoundotheoperation.YoucanalsoexperimentwiththeSimplifyMorecommandalsolocatedinthesamemenu;itofferstweakableparametersthatcouldprovehelpful.

Inanyevent,afteryouhavecompletedthesimplificationstep,youwillneedtoaddanymissingextremapoints.ChooseAddExtremafromthe"Element"menu(orhitControl-Shift-X).Asdiscussedearlier,itisagoodideatoplaceon-curvepointsattheextremaofeveryglyphasyouedit.Nevertheless,youmuststillperformthisstepwhenpreparingforfinaloutputgenerationbecausetheSimplifystepwilloccasionallyremoveanextremapoint.

Roundeverythingtointegercoordinates

Thefinalpreparationsteptoperformistoroundallpoints(bothon-curvepointsandcontrolpoints)tointegercoordinates.ThisismandatoryforgeneratingTrueTypeoutput,butishighlyrecommendedforOpenTypeoutputaswell.Itcanresultinsharperrenderingandbettergrid-fittingwhenthefontsaredisplayed,withoutanyadditionaldesignwork.

Toroundallpointstointegercoordinates,choose"Element"->"Round"->ToInt.

Assoonasthisoperationiscompleted,youmaynoticesomethingpuzzling.Sometimes,simplyduetothepeculiaritiesofthecurvesinvolved,theprocessesofroundingtointegercoordinates,simplifyingglyphs,andaddingmissingextremacanworkagainsteachother.Anexampleofwhenthismightoccuriswhenacurvedouteredgehasacontrolpointthatliesjustpastthehorizontalorvertical;inthissituationroundingittointegercoordinatescanshiftthecurveslightlyandchangewheretheextremalies.

Thereisnotaone-shotsolutiontothisconundrum;theonlyguaranteedfixistorepeatthecycleofstepsfortheaffectedglyphsuntiltheystabilizeatapointwherethethreeoperationsnolongerinterferewitheachother.Thismaytakemultiplecycles,butitisarareoccurrence.

Validate

Yourfontshouldpasstherequiredvalidationtestsbeforeyougenerateyourfinaloutput.Aswiththerounding-points-to-integer-coordinatesstep,though,sometimestheotherpreparatoryoperationscanintroduceerrors,soitisalwaysagoodideatorunthewhole-fontvalidatoratthisstagebeforebuildingthefinaloutput.ThechapteronFontForge'svalidationtoolswillgiveyoumoredetailonwhattocheck.

Awordabouthinting

TheFinalOutputGeneratingFontFiles

152

Hintingreferstotheuseofmathematicalinstructionstorenderthevectorcurvesinafontinsuchawaythattheylineupnicelywiththepixelgridoftherasterizedoutputdevice(whetherthatgridiscomposedofdotsofinkortoneronpaper,orluminescentdotsonacomputermonitor).

FontForgeallowsyoutohintyourfont(andevenprovidesanAutohintfunction),butinpracticethisstepisnotstrictlynecessary.Modernoperatingsystemsoftenhavebettergrid-fittingfunctionalitybuiltintotheirtextrenderingenginesthanyoucancreateyourselfwithoutexpendingconsiderabletimeandeffort.Infact,MacOSXandLinuxbothignoreanyhintsembeddedinthefontfileitself.IfyoudodecideyourfontneedshintingforthebenefitofWindowsusers,yourbestbetistobuildthefontwithoutembeddedhints,thenuseaspecializedapplicationsuchasttfautohinttoaddhintingafterthefact.

ForCFFhinting,seethisvideofromAdobeatRoboThon.

TosetthePShintingwithPythonispossible:privateisalistoftuples(ThanksSungsit!)

font.private['BlueValues']=(-20,0,600,620,780,800,810,830)

font.private['OtherBlues']=(-225,-210)

font.private['StdHW']=100,

font.private['StdVW']=137,

Checkyourmetadata

Lastbutcertainlynotleast,onceyourfonthasbeenthoroughlypreparedtechnicallyforexport,youshouldpauseandupdatethefontmetadata,makingsurethatimportantmetadatainformationisincluded,andthatitisuptodate.

First,ifthisistheinitialreleaseofyourfont,opentheFontInfodialogfromthe"Element"window,andselectthe"PSNames"tab.Fillinthefont'sFamilyNameandWeightfirst,thencopythatinformationintothe"NameforHumans"box.Althoughusingversionnumbersisnotrequired,itisextremelyhelpfulforyouasadesignertodifferentiatebetweendifferentrevisionsofyourwork.Enter"1.0"asthe"Version"numberifyouarenotsure.Next,visitthe"TTFNames"tabandenterthesameinformation.

TheFinalOutputGeneratingFontFiles

153

Asisthecasewithversionnumbers,itishelpfulinthelongrunforyoutomakelogentriesforeachrevision.Gotothe"FONTLOG"tabandwriteabriefsentenceortwoexplainingwhatchangesifanyhavegoneintotherevisionthatyouarebuildingforrelease.Ifthisisyourinitiallogentry,youshouldalsodescribeyourfontanditspurposeinasentenceortwo.

Fonts,likeallcreativeworks,needtohavealicense,souserswillknowwhattheyareandarenotallowedtodo.FontForgehasabuttoninthe"TTFNmes"tablabelled"AddSILOpenFontLicense."TheOpenFontLicense(OFL)isafontlicensedesignedtoallowyoutoshareyourfontwiththepublicwithveryfewrestrictionsonhowwhereitisused,whilestillprotectingyouasthedesignerfromhavingotherstakecreditforyourworkorcreativederivativesofyourfontthatwillbeconfusedfortheoriginal.Clickingthebuttonwilladd"License"and"LicenseURL"stringstotheTTFNamesmetadata.IfyouhaveanotherlicenseyouwouldprefertouseinsteadoftheOFL,enteritinthe"License"fieldinstead.

TheFinalOutputGeneratingFontFiles

154

Ifyouhavemadesignificantchangestootherfeaturesofyourfont,itisagoodideatodouble-checktheotherfont-widesettingsintheFontInfowindow,andmakesureeverythingisstilluptodate.Linespacinginformation,forexample,isfoundinthe"OS/2"tabunder"Metrics."

Buildingthefontfiles

Theprocessforgeneratingthefontoutputfilesisthesamewhenyouarebuildingthefinalreleaseasitiswhenyouarebuildingaquick-and-dirtycopyfortesting,butyouwillwanttopaycloserattentiontosomeoftheoptions.

OpentheGenerateFontswindowbychoosingitfromthe"File"menu.Again,thetophalfofthewindowallowsyoutochoosethedirectoryandfilenametogivetoyouroutputfile—justbecarefulthatyoudonotoverwriteaprevioussave.

Intheleft-handsidepull-downmenu,selecttheformatofthefontyouaregenerating,eitherTrueTypeorOpenType(CFF),asdiscussedearlier.Ontheright-handside,makesureNoBitmapFontsisselected.Onthelinebelow,makesureNoRenameisselectedforthe"Forceglyphnamesto:"option.Youcancheckthe"ValidateBeforeSaving"optionifyouwish(topotentiallycatchadditionalerrors),butthisisoptional.Leavethe"AppendaFONTLOGentry"and"Prependtimestamp"optionsunchecked.

Next,clickonthe"Options"button.SelectthePSGlyphNames,OpenType,andDummyDSIGoptionsinthewindowthatpopsup,anddeselecteverythingelse.

TheFinalOutputGeneratingFontFiles

155

Clickthe"Generate"button,andFontForgewillbuildyourfontfile.Onefinalord:itisimportantnottooverwritethesavedversionofyourFontForgeworkwiththemodificationsyoumadeinthissectionsolelytogenerateyour.ttfor.otfoutput.Forexample,youlosealotofindividualglyphcomponentswhenyouperformtheRemoveoverlapsoperation.Butthenexttimeyouresumeworkonyourfont,youwilldefinitelywanttopickupwhereyouleftoffintheoriginal,individual-glyph-component-filledversion.

Consequently,ifyoudecidetosavethemodifiedversionofyourFontForgefile,besurethatyourenameitinamemorableway,suchasMyFont-TTF.sfdorMyFont-OTF.sfd.Butyoudonotnecessarilyneedtosavetheseoutput-orientedvariationsofyourfileatall—inpractice,thenexttimeyoureviseyouroriginalworkinFontForge,youwillworkthroughtheoutputpreparationstepsagainanyway.

Congratulationsareinorder!Youhavenowcreatedyourfirstfont.Allthatremainsnowisforyoutoshareyourwork:uploadittotheweb,postittoyourblog,andgotellyourfriends.

Withoutdoubt,youwillbebackandcontinuerevisingandrefiningyourtypeface—afterall,asyouhaveseen,fontdesignisahighlyiterativeprocess.Butbesurethatyoupauseandtakethismomenttoenjoywhatyouhaveaccomplishedfirst.

TheFinalOutputGeneratingFontFiles

156

WhenThingsGoWrongWithFontforgeItself

FontForgeisdevelopedonGithub.TheFontForgeteamusesGithubIssuestodiscussproblems,errorsandideasforimprovements,andthensomeonedevelopsasolutionandproposesitasaPullRequest.

TolearnmoreaboutGithub,checkoutGoodResourcesforLearningGitandGitHub

PayingforSupportThismightbeasurprise,butitisbothpossible,andencouragedtopayforFontForgesupportwhenthingsgowrong.

WhenotherfonteditorswithsimilarcomprehensivefeaturescosthundredsofUSDollars,ifweeachpayasimilaramounttoFontForgedeveloperstogetourmostannoyingbugsfixed,FontForgewillbecomebetterandbetter.

FreedomSponsors.orgoffersatransparentsystemforpayingFontForgedeveloperstofixissuesyoucareaboutinatimelyfashion.

1. CreateaFontForgeissuedescribingwhatyouwanttobechanged(seebelow.)CopytheURLoftheissuetotheclipboard.2. VisitFreedomSponsorsandsponsoranewissue,usingtheURLyoucopiedearlier.3. Revisittheissueandaddacommentwiththelinktothefreedomsponsorsissuepage,withapersonalnotethatyou're

offeringapaidbountyforthisissuetobeclosed

ReportABug1. VisittheFontForgeGithubIssueTrackerandsignintoGithub(aftercreatinganaccount,ifyoudon'thaveoneyet.)2. IntheIssuessearchboxtrysearchingforsimilarissues,toseeiftheproblemyouarefacingwasreportedalready.Ifitwas,

andyourissueisrelatedbutnotquitethesame,pleasecommentonthatissuewithyourowntakeontheissue.3. Ifitwasnotalreadyreported,openupanewissue.Clickthegreen"NewIssue"button,andthendescribeyourquestion,

whatyoudidtotriggeracrash,oryourideaforanimprovement.

Includerelevantdetails,suchas:

yourOperatingSystemandversion,yourFontForgeversionandwhereyougotitfrom,whathappens,stepbystep,toproducetheissuewhaterrormessagesyousee,whatyouexpecttohappen

Youcandraganddropscreenshotsorotherimagesdirectlyintotheissuepagetoincludethem

Aneasywaytoreportissuesistorecordascreencastvideoswhereyouexplaininanarratedvoiceoverthethingsyouareinterestedinastheyhappen,andthenuploadittoYouTubeandincludealinktoyourvideo

Toreproducetheissue,itcanhelpfultosharewiththedevelopercommunitythefilesyouareworkingwith.Ifyoucanmakeafilethatissmallandonlycontainswhatisneededtoreproducetheissue,pleaseforkthefontforgerepoandaddthesefilesto/tests/fontsandsubmitapullrequest.Youcanalsoplacefilesonyourownwebsiteorafilesharingservicetemporarily(suchasMegaUpload,DropBox,GoogleDrive,etc.)Finally,ifyoudonotwishtomakeyourfilespubliclyavailable,youcanprovideanemailaddressforaFontForgedevelopertocontactyouattogetaprivatecopyofthefile.

Pleasedon'tcloseotherpeople'sissues-askthemtoclosetheissueifitisclosedtotheirsatisfaction.

WhenThingsGoWrongWithFontforgeItself

157

HowToReportACrashTheprocessisjustthesameforreportingacrashorotherkindsofbugsasitisfornewfeaturesorquestions.SendingagoodcrashreporttotheFontForgedevelopersreallydoeshelpthemalottoimprovethestabilityoftheprogramforeverybody!Don’tfeelshyaboutreportingsuchissues,becauseacrashthatisn’treportedisacrashthatisfarlesslikelytobefixed.

IfyoufindFontForgecrashingwhilstinuse,createanissueasabove.Ifyouhaveaparticularfontfile(SFD,UFO,OTF,TTF,etc)thattriggersthecrash,youcaneitheruploadittoanewGithubrepositoryyourself(orDropboxorwhatever)andincludealink,orpostyouremailandaskadevelopertoemailyoutogetacopyprivately.

WithyourdescriptiontheFontForgesoftwaredeveloperswilltrytoreproducethecrash.Iftheycandothis,thentheywillbeabletoworkoutwherethecodeisgoingwrong,andcreateafix.

AfterthePullRequestthataddressestheissueismerged,you'llneedtogetaversionafterthat.Youcandooneofthefollowing:

recompilefromthelatestGithubsourcecode(SeeInstallingFontforge),checkifadailybuildisavailable(oftenpossibleforMacOSX),orwaituntilthenextrelease(oftenwithinafewweeks.)

TheBestCrashReports

Tohelpdevelopersfindoutwhatisgoingwrongandreallyunderstandhowtofixit,youcandoabitmoreworktomakeabacktrace.Abacktraceincludesalistofwhichprogramfunctionshavecalledwhichotheronestogettowheretheprogramhasstoppedworking.Abacktraceismostusefulifitalsocontainsthelinenumbersofthefunctions.

Tomakeabacktrace,youmayneedtoinstallfromsourcewithdebugginginformationincluded.Usethetypeandnmcommandstofindthepathandstatusofyourfontforgebinary.Example:

$type-allfontforge;

fontforgeis/usr/bin/fontforge

$nm/usr/bin/fontforge;

nm:/usr/bin/fontforge:nosymbols

$

Inthisexampleweseenosymbols,sowemustupdateourinstallationtoincludedebuginformation.

InstallDebuggingInformationonFedora

FedoraoffersinthestandardrepositoryacommandtoeasilyinstalldebugginginformationforFontForge.(Butnotethatthismightrequirehundredsofmegabytesofdownloadifyoudonotalreadyhavemanyofthedependentdebuginfopackagesinstalled.)Toinstallit,run:

debuginfo-installfontforge;

TODO:Explainhowtoincludedebuginformationfromcompiledsources

AbacktraceisgeneratedusingtheGNUProjectDebugger,gdb.YoucaneitherattachgdbtoanalreadyrunningFontForge,orstartFontForgeinsidethegdbsessionitself.Here'sanexampleofthelatter:

WhenThingsGoWrongWithFontforgeItself

158

$gdbfontforge;

GNUgdb(GDB)Fedora(7.3.50.20110722-16.fc16)

Copyright(C)2011FreeSoftwareFoundation,Inc.

LicenseGPLv3+:GNUGPLversion3orlater<http://gnu.org/licenses/gpl.html>

Thisisfreesoftware:youarefreetochangeandredistributeit.

ThereisNOWARRANTY,totheextentpermittedbylaw.Type"showcopying"

and"showwarranty"fordetails.

ThisGDBwasconfiguredas"x86_64-redhat-linux-gnu".

Forbugreportinginstructions,pleasesee:

<http://www.gnu.org/software/gdb/bugs/>...

Readingsymbolsfrom/usr/local/bin/fontforge...done.

Thenonceyouissuethedebuggertheruncommand,FontForgewillopenonscreen:

(gdb)run

Startingprogram:/usr/local/bin/fontforge

[Threaddebuggingusinglibthread_dbenabled]

Usinghostlibthread_dblibrary"/lib64/libthread_db.so.1".

Copyright(c)2000-2012byGeorgeWilliams.

Executablebasedonsourcesfrom14:57GMT31-Jul-2012-ML-TtfDb-D.

Librarybasedonsourcesfrom14:57GMT31-Jul-2012.

FromhereyoucanuseFontForgeintheusualway,butwiththeadvantageofbeingabletoeffectivelycaptureandreportanyissuesthatFontForgemayhave.

OnemajordifferencethatrunningFontForgeinsidegdbmakesishowacrashismadeapparent.Withoutgdb,whenFontForgecrashesitwilldisappearfromyourscreen.WhenyouarerunningFontForgeinsidegdbhowever,acrashedFontForgewillremainopenalongwithitswindowsanduserinterface.

Ifyoufindthatyourinterfaceisunresponsive,switchbacktotheterminalwhereyourangdbandyoumightseesomethinglikeSIGSEGVinthetextfollowedbythe(gdb)prompt.Ifyouseethe(gdb)promptthenFontForgeisnolongerexecuting.

Youcannow(finally!)usethebtcommandtogetabacktrace,andthenusethegdbquitcommandtoexitfromgdbandtoclosethecrashedFontForge.Hereisanexample:

WhenThingsGoWrongWithFontforgeItself

159

ProgramreceivedsignalSIGSEGV,Segmentationfault.

0x00007ffff74a7c01in??()from/lib/x86_64-linux-gnu/libc.so.

(gdb)bt

#00x00007ffff74a7c01in??()from/lib/x86_64-linux-gnu/libc.so.6

#10x00007ffff6389a80incopy(str=0x900000008)atmemory.c:82

#20x00007ffff7a4aeb5inKCD_AutoKernAClass(kcd=kcd@entry=0xe80c40,index=2,is_first=is_first@entry=1)

atkernclass.c:236

#30x00007ffff7a51405inKCD_FinishEdit(g=0xeb0fe0,r=1,c=,wasnew=1)atkernclass.c:2020

#40x00007ffff5effe2dinGME_SetValue(gme=gme@entry=0xeb0fe0,g=0xe94760)atgmatrixedit.c:988

#50x00007ffff5f00554inGME_FinishEdit(gme=0xeb0fe0)atgmatrixedit.c:997

#60x00007ffff5f01c1ainGMatrixEditGet(g=g@entry=0xeb0fe0,rows=rows@entry=0x7fffffffcf78)

atgmatrixedit.c:2214

#70x00007ffff7a4ea3cinKCD_Expose(event=0x7fffffffd1e0,pixmap=0x83ae00,kcd=0xe80c40)

atkernclass.c:1446

#8kcd_e_h(gw=0x83ae00,event=0x7fffffffd1e0)atkernclass.c:1762

#90x00007ffff5eabe8fin_GWidget_Container_eh(gw=gw@entry=0xe7f040,event=event@entry=0x7fffffffd1e0)

atgcontainer.c:269

#100x00007ffff5eac385in_GWidget_TopLevel_eh(event=0x7fffffffd1e0,gw=0xe7f040)atgcontainer.c:734

#11_GWidget_TopLevel_eh(gw=0xe7f040,event=0x7fffffffd1e0)atgcontainer.c:606

#120x00007ffff5ef86ceinGXDrawRequestExpose(gw=0xe7f040,rect=0xef72b0,doclear=)

atgxdraw.c:2687

#130x00007ffff5eea075ingtextfield_focus(g=0xef72a0,event=0x7fffffffd2e0)atgtextfield.c:1888

#140x00007ffff5eaa857in_GWidget_IndicateFocusGadget(g=0xe94760,mf=mf@entry=mf_normal)

atgcontainer.c:143

#150x00007ffff5eaac97inGWidgetIndicateFocusGadget(g=)atgcontainer.c:155

#160x00007ffff5f02b1einGME_StrSmallEdit(event=0x7fffffffd670,str=0xe10e60"A",gme=0xeb0fe0)

atgmatrixedit.c:890

#17GMatrixEdit_StartSubGadgets(gme=gme@entry=0xeb0fe0,r=1,c=c@entry=0,event=event@entry=0x7fffffffd670)

atgmatrixedit.c:1472

#180x00007ffff5f03d69inGMatrixEdit_MouseEvent(event=0x7fffffffd670,gme=0xeb0fe0)atgmatrixedit.c:1499

#19matrixeditsub_e_h(gw=,event=0x7fffffffd670)atgmatrixedit.c:1735

#200x00007ffff5eabd98in_GWidget_Container_eh(gw=0xeeb2e0,event=0x7fffffffd670)atgcontainer.c:393

#210x00007ffff5ef6555indispatchEvent(gdisp=gdisp@entry=0x769a50,event=event@entry=0x7fffffffd9b0)

atgxdraw.c:3475

#220x00007ffff5ef7d1einGXDrawEventLoop(gd=0x769a50)atgxdraw.c:3574

#230x00007ffff7ad353ainfontforge_main(argc=,argv=)atstartui.c:1196

#240x00007ffff736676din__libc_start_main()from/lib/x86_64-linux-gnu/libc.so.6

#250x00000000004006e1in_start()

(gdb)quit

Adebuggingsessionisactive.

Inferior1[process19196]willbekilled.

Quitanyway?(yorn)y

AdevelopercanseeinthisexamplebacktracethatFontForgehascrashedinsidethecopy()function.Thecopy()functionwasitselfcalledfromtheKCD_AutoKernAClassfunction.Thebacktracewilltellasoftwaredevelopertheexactlinesthesecallsweremade,andalsousethetipthattheparameterpassedtocopy()wasinvalid(outofbounds)toworkoutwhatthecodeisdoingwrong.

WhenThingsGoWrongWithFontforgeItself

160

DesigningDevanagariTypefaces

ThankstoAdamTwardoch,ErinMcLaughlin,NeelakashKshetrimayum,DanReynolds,PoojaSaxena,DrGirishDalviforcontributingmanyoftheideasonthispage

DesigninganewandoriginalDevanagaritypefacefollowsaprocessmuchliketheprocessforanewandoriginalLatin.Theuniquebenefitoflibreinlibrefontsisthatyoucanmodifyandreusethemfornewpurposesthattheirinitialcreatorsneverthoughtof-forexample,designingaDevanagariandadaptinganexistingLatinfonttogowithit.

DevanagariGlyphsDevanagarifontscontainthesedifferenttypesofglyphs:

consonants(36)independentvowels(28)vowelmaatraswordspace(s)Devanagarinumerals(10)Latinnumerals(new,orifalreadypresentthenadjustedtoworkwithinpureDevanagaritext)nuktacompositeshalf-formsconjuncts(uniqueligatureglyphs)"I"vowelmaatrasofdifferinglengthsDevanagaripunctuation,marks,andsymbolsLatinpunctuation,marks,andsymbols(new,oradjustedifalreadypresent)Latinletters

ConsulttheUnicodeChapter12onIndianScripts,(DevanagariUnicodepage),aswellasthe(MicrosoftDevanagariOpenTypeFontDevelopmentpage)tolearnmoreabouttheseglyphsandhowtheIndicshapingengineworks.

Itishelpfultodosomecalligraphyorcloselystudywritingmanualstolearnhowthescriptworks,soyouunderstandwhichlettersshouldbelikewhichotherlettersinstructure.These2pagesfromAksharaya'sDevanagaricalligraphyManualcanbeusedasareferenceforpenangleandletterproportions.

WhatToDoFirstWhendesigningaDevanagariandLatintypeface,itsimportanttostartbydrawtheLatinalongsidetheDevanagari.Intheearlieststagesaredesigningthe"key"glyphs,toestablishthepersonalityofthetypefacethroughfundamentalshapesandspacing(whichinLatinmaybe'adhesion'or'videospan'.)Designthelowestandhighest"heightextremes"glyphsearlyintheprocess.

You'llneedplentyofvowelsignstobegintestingtextureandscale.

TheprofessoroftypographyatIITBombay,DrGirishDalvi,wroteinhisPhDthesis,

DesigningDevanagariTypefaces

161

ThroughtheresultsofthisstudywecandeducethatthetenlettersअइएखतभदधथषcanalmostcapturealltheformalpropertiesofremainingDevanagariletters.Withintheselettersthelettersअइखभदधषaremostcriticalastheydefinefeaturesforthemajorityoftheletters.Wecanhencesuggestthatbydesigningtheselettersfirst;theprocessofDevanagarifontdesigncanbesimplifiedforstudentswellastypedesignersastheremainingletterscanbederivedfromtheseones.

ErinMcLaughlinsuggestedtheseglyphsasaninitialprogression:पाव+िकमीनफूु+भरसगदह+मोड्डू(heightextremes)+यथधआछड…continuecharactersetandsuggestedtofocusonthe"Au"vowelsign+reph+anusvaracombo!,theMaisjustthereforposterity.

Theheightextremesglyphsallowyoutodeterminetheverticalmetrics,andhowtoscalethetwowritingsystemstoworktogether.Adobepublishesverylargetypefamiliesthatcoververydifferentorthographies.Thesearesplitintofamilieswithsharedgeneralproportions;MyriadProhasLatin,GreekandCyrillic,buttheHebrewandArabicdesignsarepackagedasseparatefamilieswhichincludemodifiedLatins.

HereisMyriadProLatinandMyriadArabicjuxtaposed:

(SpotAdobe'sdesignersneatdecision:thecapheightoftheLatininMyriadArabicisthexheightoftheMyriadProLatin.)

NotethatintheLohitcharacterset,thelowestglyphsareforms,meanttogobelowcharactersthatdescendveryfarbelowthebaseline:

(Vattuisthebelow-baseformofreph.SeetheMicrosoftterminologypageformoredetails)

Ideally,theseshouldstackbelowyourlowestvertically-stackingconjunct,liketheexampleontheleft(Lohit,whichdoesn'tquiteverticallyfit,isontheright):

SpacingapproachDesigningLatinfontstypicallyinvolvesaseriesofspacingstringslikethis:

HHxHOHOxOOnnXnonoXoo

DesigningDevanagariTypefaces

162

WheretheXrepresentstheletteryouarefocusedonspacing,andtheconceptislookingatthisletternexttoasomewhatflat-sidedcharacterandaroundcharacter.

Pa,andVaorDaareDevanagariequivalents:

पपXपवपवXववपपXपदपदXदद

Whenjustbeginningaproject,startwithfillingapageentirelywithPainordertogettherightbalanceofstrokethickness,countersize,andspacing.

पपपपपपपपपपपपपपपपपपपपप

OncethePahastheright"color",youcanbeginaddingtheseotherbasic,commoncharacters:

पपपवपपपपपवपववपपव(va,randomized)पपपापपपपापपाप(Aamaatra,randomized)पपपदपपपपपदपददपपद(da,randomized)

Then,youcanbeginusingthespacingstringsshownabove,inordertoaddmoreglyphs:

पपरपदपदरददपपकपदपदकददपपलपदपदलददपपपीपदपदपीदद

andsoon!

You'llwanttolookattheseinalonglistlikethat,soyoucancomparefromoneglyphtoanother,asyouscrolldownward-bothonscreenandinprint.Doingaverticalcheckismoreeffectivethanjustalonglineofcontinuoustext.Here'swhy:

Whenyoulookatthespacingstringsinverticalcolumns,youcaneasilycomparethespacingwiththelinespreviouslyaboveandbelowthecurrentcharacter.Inthesamewaythatwecaneasilyrecognize"rivers"inbadly-setfull-justifiedtext,itwillbeeasiertoseewhitegapsordarkspotsinspacingifyouarecomparingagainstaspacingstringthatremainsconstant.

Thespacingstringaboveallowsyoutocompareverydisparateshapes,sothatspacingismoreeventhroughout(insteadofalloftheroundcharactersbeingtoolooseortootight)

Andthefourglyphsinthemiddle,Pa/Da/Pa/Daallowyoutocomparethetestedcharacteragainsttwosetsofthree,ifyoujustlookatPa/Da/PaorDa/Pa/Da.

DesigningDevanagariTypefaces

163

Afterdrawingandspacingahandfulofvowelsandconsonants,you'llbeabletomakealimitednumberofwordswithonlythoseletters,andbegintestingyourdesignwithrealtext.

WorkBreakdownStructureInanytypefacedesignproject,itsagreatideatosketchoutaWorkBreakdownStructure.

Forsomeoneveryexperienced,itispossibletodesigntheinitialLightandBoldweightsofaDevanagaritypefaceinaround4-6months.

Hereisasamplescheduleforaninterpolatedfamilyof9weights,uprightandslanted,ofasomewhatsimple'sans'design,byaveryexperienceddesigner:

DesigningDevanagariTypefaces

164

Week Goal Glyphs

1 Establishdesignin7-10keyglyphs 10

2 Refine,designtallestglyphs,matchheightsandweightstoLatininRegular&Bold,testscreenrenderingwithttfautohint 20

3 Refineproportionswithnativereaderfeedback 40

4 Getnativereaderfeedback,refineandaddmoreconjuncts 100

5 Getnativereaderfeedback,refineandaddmoreconjuncts 200

6 Getnativereaderfeedback,refineandaddmoreconjuncts 300

7 Getnativereaderfeedback,refineandaddmoreconjuncts 400

8 Getnativereaderfeedback,refineandaddmoreconjuncts 500

9 Getnativereaderfeedback,refineandaddmoreconjuncts 600

10 Getnativereaderfeedback,refineandaddmoreconjuncts 700

11 Getnativereaderfeedback,refineandaddmoreconjuncts 800

12 Getnativereaderfeedback,refineandaddmoreconjuncts 900

13 DeriveBold 1,800

14 Refinements,Kerning,testingwithnativereaderfeedback 1,800

15 Extrapolationandclean-upofThinandBlackweights,generationandclean-upofslantedstyles 3,600

16 Interpolatedstylesrefinement 3,600

17 Generalrefinementofspacing,kerning&testinginallstyles 3,600

18 Finalisation 3,600

Youmaywanttoworkwithafontthathasnosourcesavailable,onlybinaryOpenTypeGPOS/GSUBtables.ThereareafewtoolsthatcanconvertthoseintotheAdobeFEAsyntax,includingFontForge,buttheoutputofeachtoolwillrequirereworkingbyhand.

TheAdobeFDKcontainsa'spot'tool,thatcanbeusedlikethis:

spot-tGSUB=7Font.otf>GSUB.fea

Thenotoprojecthasadump_otl.py

The'FontlabStudio'and'OpenTypeMaster'proprietaryapplicationhaveconverterstoo.

UsefulResources

Introductions

http://www.linotype.com/6896/devanagari.html

Wheretolookforinspirationandideas

LookattheDevanagarifontsonthehttp://indiantypefoundry.comwebsite,andthosethatwerejustreleasedthroughGoogleFonts,forinspirationonshapesofletterscanvary.

DesigningDevanagariTypefaces

165

AnothergoodplacetosearchforHindi“e-paper”newspapersitestoseeactualfonts-in-use-advertisementsusuallyhavemorediversityinfonts.http://epaper.jagran.comisaverylargelycirculatedIndiane-paper.

Flickrisalsoagoodsourceofideasforimagery:

https://www.flickr.com/groups/devanagari-script/https://www.flickr.com/groups/37703106@N00/https://www.flickr.com/groups/indicscripts/https://www.flickr.com/photos/pauldhunt/sets/72157603715699186

Historicalsources

GetyourhandsoncopiesofIntroductiontotheDevanagariScriptbyH.M.Lambert,OxfordUniversityPress1953andTypographyofDevanagari(threevolumes)byB.S.Naik,DirectorateofLanguages,Bombay1971.

Beyondthat,thereareatleasttwogeneralsourcesof19thCenturytypefromEuropeworthlookingat:thetypefacesfromBritainandthosefromGermany(mostlyfromLeipzig).ThesetypeswereusedmoreforthesettingofSanskrittextsthanforHinditexts.

Doalsotrytofindsamplesof19thand20thC.texttypefacesfromIndiantypefoundries.TheyaresignificantlylessEuropeanized,asyoumightexpect.ThereiswonkystuffgoingoninEuropeanacademicsanskriticfacesfromthe19thcenturythatdoesn’tseemtoappearin20thcenturyIndiantypographyatall.TheseIndiansourcesareprobablymoredifficulttofindinWesternlibraries,butperhapsErinMcLaughlinhasmoreleads.MatthewCarter’s1970sLinotypeDevanagariisbasedontypefacesfromtheNirnayaSagarfoundry,forinstance.Samplesoftheirtypes,andtheBombayTypeFoundry’stypes,shouldbeaccessibleinsomewesternuniversityand/ornationallibraries.I’dalsorecommendlookingatMonotype’sDevanagariandLinotypeDevanagari(the1970sversionand1980/90supdate,nottheoriginal1935one,whichonlyborethesamename).

ThereisnoDevanagaritypeinTypefoundersinTheNetherlands(CharlesEnschede,HarryCarter1978).Whateveryoudo,don’tlookatBodoni’stypesfromhis1818manual.

SomeGerman-madeDevanagaritypefromH.BertholdAGmaybeseeninAlphabeteundSchriftzeichendesMorgen-unddesAbendlandes,fromtheReichsdruckerei,Berlin1924,p.45–47.

Articles

SarangKulkarniwrote"IssueswithDevanagariDisplayType(PDF)"

YashodeepGholapwroteDesigningaDevanāgarītextfontfornewspaperuse(PDF)

VaibhavSingh'sMATDdisertation,Devanagariinmulti-scripttypography

Lohit2Devanagari

Lohit2DevanagaricanbeusedasabasefornewOFLfontsbyusingitsGlyphListandOpenTypeLayoutcode.ItisavailableasoriginalFontForgesourcesorasaUFOzipdownload

OpenTypeLayout

MicrosoftDevanagariOpenTypeFontDevelopmentpage

DevanagariAnatomy

TDILDevanagariScriptGrammar(PDF)

DesigningDevanagariTypefaces

166

2pagesfromAksharaya'sDevanagaricalligraphyManual,whichcanbeusedasareferenceforpenangleandletterproportions.

ProfessorGirishDavliofIITBombayIDC(comparabletotheUSA'sMITMediaLab)publishedthisDevanagariAnatomyarticle(PDF)

Ifyou'renewtoDevanagariscript,it'simportanttobecomeawareoftraditionalcalligraphicpenstress,whichisdifferentthaninLatin.Here'saquickdemonstrationofthestrokeangle,andhowcurvesweretraditionallyweighted.Yourdesignwillbemoresuccessful,andappearless"Latinized",ifyoudrawyourcurvesaccordingtotheseweightprinciples,ratherthancutting-and-pastingLatinalphabetletterparts.

TheDevanagariUnicodepageshowsthebasicletters,butnottheconjuncts

TestingTools

AdobeInDesign'ssupportforOpenTypeFontsfornon-EuropeanscriptsonlybecamereliablewithCreativeCloud,andtheWorldReadyComposerparagraphoptionmustbeenabled;eventhelatestversioncanbeimproved.ThelibreharfbuzzandMicrosoftOpenTypeimplementationsarethemostcomplete,soyoushouldtestyourfontsinthelatestversionsofChrome,FirefoxandMicrosoftWord,onbothWindowsandMacOSX,toensureerrorsinshapingareduetothefontsandnottheunderlyingengine.

PabloImpallari'sDevanagariTestingPage(withsourcesongithub!)providessomeready-madetestinglayouts,andyoucandraganddropyourOTForTTFrightintothepagetoloadit.

PoojaSaxena'sTypeTools(withsourcesongithub!)generatestesttextsforlettercombinations.

TheAdhesionTextDevanagariisaspecialversionoftheatoolbuiltbyMiguelSousatomakedummytextcomprisedonlyofthewordspossibletowritewiththeglyphsyouhavealreadydrawn.Inserttheglyphs(अआईईउऊetc)thatyou'vedrawn,andoutwillcomesomesamplewordsforyoutouseinproofs.

TheHuertaTipografica'sDevanaguideisanopensourcetooltoseeandcomparedifferentdevanagarifonts.Italsoallowsyoutotypeatextandpreviewitinallthefontsatthesametime.TheDevanaguidealsoincludesaDevanagariwordlistwhichishelpfulfortesttextdesign.

OtherLinks

DesigningDevanagariTypefaces

167

Books&ReferencesforDevanagaritypographyProjectsisalistofresourceswhichwillprobablyfulfillmostoftheresearchrequirementsofmostprojects.CompiledbyProfessorGirishDavliofIITBombayIDC.

ForumDiscussions

Typophile

AdobeDevanagari

GoogleFontsDirectoryDiscuss

Anoteonconventionsfortheplacementofshoulderline,descenders,ascendersandsoforthinrelationtothelatin?StartingfromLohit2andpdfAdobeGlyphListsrVocalicandrrVocalicDevanagariCharacterPriorities

DesigningDevanagariTypefaces

168

ImportingGlyphsfromOtherPrograms

Itispossibletodrawglyphsinageneralpurposeillustrationapplication(Inkscape,AdobeIllustrator,etc)andimportthemasEPSorSVG.

Hand-codedSVG

Howtoprepare

TheSVGfiledoesneedviewBox="0010001000"

Widthactuallydoesn'tmatter,aslongasitiswiderthanyourglyph.Buttheheightat1000isimportantforeasiestimport.

y=0willbetheascenderlineandy=1000willbethedescenderline.

(Theremaybeafewglyphsthatgobeyondthoselines,perhapsFontForgewilldotherightthingbutwehaven'ttestedit.)

BydefaultFontForgewillsetupyourbaselineaty=800.IntheFontForgecoordinatesystem,thebaselineisattheir0pointontheirverticalaccess.

TosetthebaselinewhereyouwantitinFontForge,taketheycoordinateforyourbaselineinSVG.ThatwillbetheFontForgeverticalpointfortheascenderlineintheircoordinatesystem.(1000-y)forthedescender.GotoElement,FontInfoandintheGeneralmenu,placetheascendervalueinthe"Ascent"inputandthedecenderinthe"Descent"menu.Bothwillbepositive.TheEmSizeshouldremainat1000(asthatistheheightinSVGunits)

Whendrawingtheglyph,Iliketouserelativecoordinates.SoIstarttheglyphwith<pathd="MXvalue,Yvalue.IfIcandrawtheglyphstartingatapointallthewayontheleft,thenXValuewillbethedefaultLeftBearingthatFontForgeuses.Youcanadjustthateasilyafterglyphimportandmayneedtoanywayaftertestingthefont.TheYvalue,whenIcanstartdrawingfromthebaseline,it'snicetousethatbaselinevalueforYvalue.

Alwaysfinishthepathdattributewithaz.Itwillimportwithoutit,buttheglyphwon'tdisplayrightinthemainwindowuntilyourestartfontforgeifyouforgettoputazafterthelastpointinthepath.

Whendrawingholes(likeforletterP)don'tstartanewpathnode,justuseazatendofthefirstpathandstartnewwithmNewX,NewYtothenstartdrawingthehole.Usetheattributefill-rule="evenodd"forthepathanditwillworkright.

Workflow

UseawebbrowsertorendertheSVGyouareworkingon.Youcanuseafilecalled"template.svg"thatis1200by1200butrendersat800by800sothatitdoesn'tscrollinthebrowserwindow.

Inthattemplate,drawguidelinesaty=100,y=1100,y=(100+{baseline,capheight,etc.},x=100,x=1100

ThenimporttheSVGglyphyouareworkingonintothatdocumentwith<imagexlink:href="LC_p.svg"x="100"y="100"width="1000"height="1000"/>

Youcannowhand-codeyouletterinonewindow,andrefreshthebrowserintheothertoseeitdrawnontopoftheguidelines.

CustomGlyphLists1. Createanamelist.txtfile,perhapsusingaspreadsheettolistunicodecodepointsandglyphnames.Forexample:

ImportingGlyphsfromOtherPrograms

169

0xEC00octDotDhe

0xEC01octDotDheDbl

0xEC02octDotDheTrpl

0xEC03octDotDheQdrpl

0xEC04octDotLik

0xEC05octDotLikDbl

0xEC06octDotLikTrpl

0xEC07minirLik

0xEC08minirDhe

0xEC09minirBawah

0xEC0AsoroganDhe

0x-001soroganLik

ForglyphswithoutaUnicodepoint,useacodepointof-1,suchasinthelastlineoftheaboveexample.

ThenloadFontForgeandgotoEncoding,LoadNameListandthenuseRenameglyphs(SinceLoadNameListonlyaddsthecustomnamelisttothesetofoptionsavailableinsubsequentrenamecommands.)

ImportingGlyphsfromOtherPrograms

170

AddingGlyphstoanArabicFont

IntroductionInsomecasesafontmaylackaglyphthatisessentialforitsuseinyourapplication.Arabicfontspresentspecialissueshere,becausetheshapeoftheglyphdependsnotonlyonitspositionintheword,butalsoontheattributesoftheletteritself.Thus(usingthenonsensesequencebabab),theletterbehhasthreedifferentshapesdependingonwhetheritcomesinitially,medially,orfinally.However(usingthenonsensesequencedadad),theletterdalhasonlyoneshape,nomatterwhereitoccursintheword.

Fontsunderopenlicenses(e.g.GPLorOFLallowtheusertomakemodifications.Ifyouadaptafontthatwasoriginallyunderanopenlicenceandthendistributeit,youmustretaintheoriginalauthor'scopyrightnoticesandlicensinginformation,althoughyoucanappendanoteattheendofthecopyrightnoticecoveringyourcontribution.

ThischapterwalksthroughaddingaglyphtoanArabicfont.ThefontwewilluseisGraph,andtheglyphwewilladdispeh(U+067E),whichdoesnotoccurinArabicitself,butdesignatespinsomelanguagesforwhichArabicscriptisused(forafulllistingoftheglyphsavailableforArabicscript,seetheUnicodecharts.

MakeaworkingcopyofthefontDownloadthefontfromthewebpageandunzipit.LaunchFontForgeandloadthefont.Saveitasansfdfile,editingthesuggestednametoreadGraphNew.sfdbeforesaving.

Renamethefont

WhyshouldIrenamethefont?

Ifyoudonotrenamethefont,youradaptedfontwillnotinstallseparatelyfromtheoriginal–youwillhavetouninstalltheoriginalfontfirst.Itisalsosensibletorenamethefontifyouaregoingtodistributeyouradaptations–iftheoriginalauthorofthefonthasreservedthefontnameundertheReservedFontName(RFN)mechanism,thatoriginalnamecanonlybeusedwiththeoriginalauthor'sversionofthefont.

Changethenamedata

AddingGlyphstoanArabicFont

171

SelectElement→FontInfo,andinthePSNamespanel,changeFontname,FamilyName,andNameForHumanstoGraphNew.

Ifdesired,youcanplacean'Additionalglyphsaddedby'messageafterthetextalreadyintheentryforCopyright.

IntheTTFNamespanel,thenamesforFamilyandFullnamearetakenfromthePSNamesentries,andshouldalreadybeshowingGraphNew(youcannoteditthemdirectly).ChangetheentriesforPreferredFamilyandCompatibleFulltoGraphNew.Thesenamechangeswillnowallowyoutoinstallthisfontalongsidetheoriginaloneifyouwish.

Ifdesired,youcanplacean'Additionalglyphsaddedby'messageafterthetextalreadyintheentryforDesigner.

ClickOKtosavethesechanges.YouwillgetamessageaboutgeneratinganewUniqueID(XUID)forthefont–clickChange.

AddtheglyphfortheisolatedformofpehGototheArabicsectionofthefontchart:selectView→Goto,clickthedropdownboxandselectArabic,thenclickOK.

ClickingonacellinthefontchartwillshowitsUnicodenumberandnameinblueatthetopofthepanel.Gotoposition1662,whichwillshowinblueas1662(0x67e)U+067E``uni067E''ARABICLETTERPEH.ThecellbelowthereferenceglyphcontainsagreyX,showingthatthefontdoesnotincludethisglyph.

AddingGlyphstoanArabicFont

172

Wewillmakepehbycopyingbeh(U+0628)andswappingitssingledotforthreedots.

Clickonthebehcell(position1576),thenright-clickandselectCopy.Thenright-clickonthepehcellandselectPaste.Nowthatbehisnowcopiedintothepehcell,thenextthingistochangethedot.

Findaglyphwiththreedots–sheen(position1588,U+0634)willdo.Double-clickonthecell–thiswillopenaglyphdesignpanel.PressVtoensurethepointertool(arrowhead)inthetoolboxisselected,andpressZandenlargethepaneltogiveyouagoodviewoftheglyph.

Clickanddragsothatthenodesofthethreedotsabovesheenchangecolourfrompinktobeige.Ifyouaccidentallyincludeoromitanode,deselectorselectitbypressingShiftandclicking.PressAlt+Ctocopy.

AddingGlyphstoanArabicFont

173

Gobacktothefontchartanddouble-clickonthepehcell–thiswillloadpehintoanothertabintheglyphdesignpanel,alongsidethesheentab.

Clickanddragtohighlightthedotbelowpeh,thenpressDelete.PressAlt+Vtopasteinthethreedots,whichwilllikelyappearabovethebodyofpeh.Leavethedotnodeshighlightedsothatyoucaninvertandmovethemmoreeasily.

AddingGlyphstoanArabicFont

174

Invertthedots:selectthefliptool(twotriangleswithareddashedlinebetweenthem)fromthetoolbox.(Alternatively,right-clickinthemiddleofthedots,andselectFliptheselectionfromthepopup.)Clickononeofthedotnodesanddragthemouseslightlyleftorright.

AddingGlyphstoanArabicFont

175

Movetheinverteddots:pressVtoselectthepointertoolagain,clickononeofthedotnodes,anddragthemdownbelowthebodyoftheglyph.Positionthemcentrally,abovetheArabicBelowmark.

AddingGlyphstoanArabicFont

176

Closetheglyphdesignpanel.Thereshouldnowbeanewglyphforpehinthefontchart.Savetheadaptedfont(File→Save).

AddingGlyphstoanArabicFont

177

AddtheglyphsfortheconnectedformsofpehHowever,thisisonlytheisolated(standalone)formoftheglyph.Ifyoutrytouseyouradaptedfont,youwillfindthatinitial,medialandfinalformsarenotavailable.Thesehavetobecreatedseparately."The[se]formsarebuiltasunencodedglyphs(glyphswhoseencodingis-1inFontForgeconventions).Th[ey]havenopredefinedslots."(KhaledHosny)

SelectEncoding→AddEncodingSlotsandenterthenumberoftheglyphsyouwant–inthiscase3.FontForgewilladdthesamenumberofslotsattheveryendofthefont,andyouwillbemovedthereinthefontchart.Thelastthreecells(positions65537,65538,65539)haveaquestionmarkasareferenceglyph,anditisinthosecellsthatyouwilladdtheunencodedglyphsbyrepeatingtheprocessabove.

Notethatifbymistakeyoustarttypingwhenthefontchartstillhasfocus,yougetmovedtotheEuropeansectionatthetop.Togetbacktothebottom,select**View→Goto**,clickthedropdownboxandselect**NotaUnicodeCharacter**,andthenclick**OK**.

Createthefinalform

RollthefontchartupabituntilyoucometoasetofArabicglyphsatposition65152(U+FE80)onwards.AtU+FE90(position65168)youwillseeabehfinalglyph–clickonitandpressCtrl+Ctocopyit.Rolldowntothethirdlastcellinthechart(position65537),clickonit,andpressCtrl-Vtopasteinthebehfinalglyph.

Right-clickonthecellandselectGlyphInfo.Thenamingconventionistousethenumberoftheisolatedglyph+asuffixfortheform,sochangeGlyphNametouni067E.fina,andclickOK.Thequestionmarkinthereferencecellwillchangetopeh.

AddingGlyphstoanArabicFont

178

Getthethreedots:double-clickonsheen(U+FEB5)toloaditintotheglyphdesignpanel,selectthethreedotsandpressCtrl+C.

Double-clickonthenewpehfinaltoloaditintotheglyphdesignpanel,clickanddragtohighlightthenodesofthedotandpressDelete.

Ctrl+Vtoinsertthethreedotsfromsheen,flipthem,andmovethemintopositionbelowtheglyphbody.PressCtrl+Stosavetherevisedfontchart.

Createtheinitialandmedialforms

CopytheinitialformU+FE91(position65169)tothepenultimatecell(position65538),deletethesingledotandpasteinthethreedots.

Right-clickthecell,selectGlyphInfo,changeGlyphNametouni067E.init,andclickOK.

CopythemedialformU+FE92(position65170)tothelastcell(position65539),deletethesingledotandpasteinthethreedots.

Right-clickthecell,selectGlyphInfo,changeGlyphNametouni067E.medi,andclickOK.

AddingGlyphstoanArabicFont

179

SelectFile→Savetosavetherevisedfontchart.

AddthelookupsTheisolatedformhastobemapped(linked)toitsinitial,medialandfinalforms.

SelectElement→FontInfo→Lookups.

Clickonthe+besidetheentry'init'InitialFormsinArabiclookup2.Thiswillopenasubmenuofthesamename.Clickonthissubmenu.

TheEditDatabuttonontherightwillnowbecomeavailable–clickit.

IntheLookupSubtablepanelthatpopsup,ensurethattheUnicodebuttonischecked.Rollthelistofcharactersdownuntilyoucometotheend.

IntheboxbesideDefaultUsingSuffix,entertherelevantsuffix(inthiscase,init),andthenclickDefaultUsingSuffix.

Anewmappingwillbeaddedtothelistofcharacters,fromuni067E(theisolatedformofpeh)touni067E.init(theinitialform).ClickOK.

AddingGlyphstoanArabicFont

180

Dothesameforthesubmenusundertheentries'medi'MedialFormsinArabiclookup2and'fina'TerminalFormsinArabiclookup2,choosingmediandfinaastherelevantsuffix.

ClickOKagaintoclosethepanel,andsavethefontchart(Ctrl+S).

NotethatDefaultUsingSuffixonlyseemstoworkonglyphsintheUnicode06(Arabic)block–glyphsinUnicode07(ArabicSupplement),e.g.ainwithtwodots,mayhavetobeaddedmanuallybyclickingthelinemarkedNewandtypinginthenames.

Generatetheadaptedfont

SelectFile→GenerateFonts.

InthedropdownshowingPSType1(Binary),selectTrueType,andcheckthatthefilenamereadsGraphNew.ttf.

Navigatetowhereyouwanttosavethefont,andthenclickGenerate.ClickYesandGeneratetothetwoinformationmessagesthatcomeup.

Youcanthenuseyournormalfontinstallationproceduretoinstalltheadaptedfont.Thenewglyphpehcanthenbeusedalongsidetheexistingglyphsinthesamenonsenseexamplesasatthebeginningofthischapter:

NotethatifyouareusingafontinLibreOfficeandmakechangestothatfont,youneedtorestartLibreOfficetohaveitseeanychanges–otherwiseitwillusethepreviousversionofthefont,andnottheonewiththenewchanges.

AddingGlyphstoanArabicFont

181

ThankstoKhaledHosnyforhisadviceonusingFontForgetoeditArabicglyphs.

FurtherReadinghttp://lists.nongnu.org/archive/html/freetype-devel/2015-08/msg00016.htmlhasatipabouthowtodrawtheoverlappingpartsofArabicglyphs

AddingGlyphstoanArabicFont

182

FurtherReading

VideosOpticalCompensationbyThomasPhinneyandFontLabTypeReviewVideosLato:TheMakingOf

Websites

OtherResourceLists

ThomasPhinney'sTypeDesignResources

CurveMath

http://pomax.github.io/bezierinfo/ExcellentguidetothemathofBeziercurveshttp://raph.levien.com/phdRaphLevien'sPhDonSpirocurves

Business

ILT:WhyDidIStartAFoundryILTLeonidasonTypefaceDesignpractice

Typography

Typekit:Practice

Latin

TheMyFontsFoundryGuidesarefantastic:foundry.myfonts.com/guides

FrereJones:TypefaceMechanics1FrereJones:TypefaceMechanics2Letter-by-lettertutorialsAdobe:DesigningMultipleMasterTypefacesUniversityofReadingTypeDesignIntensiveReviewOnTildeILT:OnDiacriticsTwardoch:PolishDiacriticsLogotype:QuoralogoVictorGaultney:LatinDiacritics

ILTExampleProjects:

Novel

FurtherReading

183

QuestaSindelarGTSectraFFTundraAcordeOdeBiomeVesper(alsoseegithub.com/motaitalic/vesper-libre

Greek

GreekTypefacesWorthStudying

Cyrillic

LearnCyrillicSerbianCyrillicBulgarianCyrillichttp://www.lettersoup.de/what-shall-be-done-for-bulgarian-cyrillic-loclbgr/ParatypeLanguageHelp-CyrillicencodingsCyrillicTypographyonFacebookhttp://luc.devroye.org/cyrillic.htmlTheATypICyrillicSIGmailinglist

Arabic

KhaledHosney'sFontForgeGuideExampleProject:ArabicZapfinoParachut:InterviewwithHasanAbuAfashArabicTypefacesWorthStudyingArabicTypeAnatomy

Hebrew

AdiStern'sMATDDissertation

Devanagari

MicrosoftSpecificationsforDevanagariFontsSouthAsiaLanguageResourceCenterTheUniversityofChicagoProfessorMahendraPatelDhruviToliaGraduationReportSanchitSawariaProject3DocumentYashodeepGholap-DesigningaDevanagaritextfontfornewspaperuseMustafaSaifee-DevanagariFontforOpticalCharacterRecognitionVaibhavSingh-Devanagariinmulti-scripttypographyVirtualKeyboards:lexilogosandbranah

Books

FurtherReading

184

UniversityofReadingMATypefaceDesignSummerReadingListhttp://www.type-library.comhasanextensivelistofbooks

Title:DetailinTypography(Paperback)

Author:JostHochuli(Author)

Title:ISBN:9780907259343

Title:AdrianFrutiger-Typefaces:TheCompleteWorks

Authors:HeidrunOsterer,PhilippStamm,SwissFoundationTypeandTypography

Title:ISBN:9783764385811

Title:PrintingTypes:TheirHistory,Forms,andUse:AStudyinSurvivals(withILLUSTRATIONS)

Author:D.BUpdike,DanielBerkeley(Authors)

Title:CreativeCharactersFormat:Flexibound

Author:JanMiddendorp(Editor)

Title:ISBN:9789063692247

Title:NowReadThis:TheMicrosoftCleartypecollection

Author:JohnD.Berry(Author)

Title:TheStroke:TheoryofWriting(Paperback)

Author:GerritNoordzij(Author)

Title:ISBN:9780907259305

Title:ShapingText:Type,TypographyandtheReader

Author:JanMiddendorp(Author)

Title:ISBN:9063692234

Title:ThinkingwithType:ACriticalGuideforDesigners,Writers,Editors,&Students(DesignBriefs)

Author:EllenLupton(Author)

Title:ISBN:9781568984483

FurtherReading

185

Title:LETTERSOFCREDIT:Aviewoftypedesign

Author:Tracy,Walter(Author)

Title:ISBN:0879236361/0-87923-636-1

Title:TheElementsOfTypographicStyle:Version3.1

Author:Bringhurst,Robert(Author)

Title:ISBN:0881792063/0-88179-206-3

Title:Type:TheSecretHistoryofLetters

Author:SimonLoxley(Author)

Title:ISBN:1845110285

Title:TypeDesigns

Author:AFJohnson(Author)

Title:Typography:Macro&Microaesthetics

Author:WillyKunz(Author)

Title:ISBN:3721203488

Title:Fontsandencodings

Author:YannisHaralambous(Author),PScottHorne(Translator)

Title:ISBN-10:0596102429|ISBN-13:978-0596102425

Title:TheUnicodeStandard,Version7.0.0

Author:TheUnicodeConsortium(Author)

ISBN:978-1-936213-09-2

FurtherReading

186

Glossary

A

Abjad

AbjadisthetechnicaltermforthetypeofwritingsystemusedbySemiticlanguages(Hebrew,Arabic,etc.),wherethereareglyphsforalltheconsonantsbutthereadermustbepreparedtoguesswhatvoweltoaddbetweentwoconsonants.

BothHebrewandArabichaveoptionalvowelmarksandarecalled"impure"abjads.AncientPhoenicianhadnothingbutconsonantsandisa"pure"abjad.

SeeAlso:alphabet,abugida,syllabaryandtherelevantWikipediaarticle.

Abugida

Anabugidaissomewhereinbetweenanalphabetandasyllabary.TheIndicwritingsystemsareprobablythebestknownabugidas.

Inmostabugidasthereareindependentglyphsfortheconsonants,andeachconsonantisimplicitlyfollowedbyadefaultvowelsound.Allvowelsotherthanthedefaultwillbemarkedbyeitherdiacriticsorsomeothermodificationtothebaseconsonant.

Anabugidadiffersfromasyllabaryinthatthereisacommonthemetotheimagesrepresentingasyllablebeginningwithagivenconsonant(thatis,theglyphfortheconsonant),whileinasyllabaryeachsyllableisdistincteveniftwostartwithacommonconsonant.

Anabugidadiffersfromanabjadinthatvowels(otherthanthedefault)mustbemarkedintheabugida.

SeeAlso:alphabet,abjad,syllabaryandtherelevantWikipediaarticle.

Accent

SeeDiacritics

AdvanceWidth

Thedistancebetweenthestartofthisglyphandthestartofthenextglyph.Sometimescalledtheglyph'swidth.SeealsoVerticalAdvanceWidth.

Alphabet

Awritingsystemwherethereareglyphsforallphonemes—consonantsandvowelsalike--and(intheoryanyway)allphonemesinawordwillbemarkedbyanappropriateglyph.

SeeAlso:abjad,abugida,syllabaryandtherelevantWikipediaarticle.

AppleAdvancedTypography

Glossary

187

Apple'sextensiontobasicTrueTypefonts.Includescontextualsubstitutions,ligatures,kerning,etc.Alsoincludesdistortablefonts.

Arm

Thepieceoftheletterrthathangsofftotheright.

Ascender

Astemonalowercaseletterwhichextendsabovethex-height."l"hasanascender.SeealsoX-height,Cap-height,Descender,Overshoot,Baseline

AnchorClass

Usedtospecifymark-to-baseandcursiveGPOSsubtables.

Ascent

Intraditionaltypographytheascentofafontwasthedistancefromthetopofablockoftypetothebaseline.

Itsprecisemeaninginmoderntypographyseemstovarywithdifferentdefiners.

ATSUI

Apple'sadvancedtypographicalsystem.AlsocalledAppleAdvancedTypography.

B

Baseline

Thebaselineisthehorizontallineonwhichthe(latin,greek,cyrillic)letterssit.Thebaselinewillprobablybeinadifferentplacefordifferentscripts.InIndicscriptsmostlettersdescendbelowthebaseline.InCJKscriptsthereisalsoaverticalbaselineusuallyinthemiddleoftheglyph.TheBASEandbslntablesallowyoutospecifyhowthebaselinesofdifferentscriptsshouldbealignedwithrespecttoeachother.

SeealsoX-height,Cap-height,Ascender,Descender,Overshoot

BéziercurveorBéziersplines

BéziercurvesaredescribedindetailintheBéziersectionofthemainmanual.

Bidi

Bi-Directionaltext.Thatisasectionoftextwhichcontainsbothleft-to-rightandright-to-leftscripts.EnglishtextquotingArabic,forexample.Thingsgetevenmorecomplexwithnestedquotations.TheUnicodestandardcontainsanalgorithmforlayingoutBiditext.Seealso:Boustrophedon.

Blackletter

Anyofvarioustypefamiliesbasedonmedievalhandwriting.

Glossary

188

Seealsogothic.

BMP(BasicMultilingualPlane)

Thefirst65536codepointsofUnicode.Thesecontainmostoftheordinarycharactersinthemodernworld.SeeAlso

SMP:SupplementaryMultilingualPlane(0x10000-0x1FFFF)SIP:SupplementaryIdeographicPlane(0x20000-0x2FFFF)SSP:SupplementarySpecial-purposePlane(0xE0000-0xEFFFF)

Bold

Acommonfontstyle.Thestemsoftheglyphsarewiderthaninthenormalfont,givingthelettersadarkerimpression.BoldisoneofthefewLGCstylesthattranslatereadilytootherscripts.

Bowl

Theroundpartoftheletter.

Bopomofo

A(modern~1911)Chinese(Mandarin)alphabetusedtoprovidephonetictransliterationofHanideographsindictionaries.

Boustrophedon

Writing"astheoxplows",thatisalternatingbetweenlefttorightandrighttoleftwritingdirections.Earlyalphabets(OldCanaanite,andtheveryearlygreekwritings(and,surprisingly,fuþark))usedthis.Oftentherighttoleftglyphswouldbemirrorsofthelefttorightones.AsfarasIknow,nomodernwritingsystemusesthismethod(nordoesOpenTypehaveanysupportforit).SeeAlsoBidi.

C

Cap-height

Theheightofacapitalletterabovethebaseline(aletterwithaflattoplike"I"asopposedtoonewithacurvedonelike"O").

SeealsoX-height,Ascender,Descender,Overshoot,Baseline

CFF

CompactFontFormatmostcommonlyusedwithinOpenTypepostscriptfonts,butisavalidfontformatevenwithoutaSFNTwrapper.ThisisthenativefontformatforfontswithPostScriptType2charstrings.

Character

AcharacterisaPlatonicidealreifiedintoatleastoneglyph.Forexampletheletter"s"isacharacterwhichisreifiedintoseveraldifferentglyphs:"S","s","s","ß",long-s,etc.Notethattheseglyphscanlookfairlydifferentfromeachother,howeveralthoughtheglyphforanintegralsignmightbethesameasthelong-sglyph,theseareinfactdifferentcharacters.

Characterset

Glossary

189

Acharactersetisanunorderedsetofcharacters.

CID

CharacterIdentifier,anumber.InsomeCJKPostScriptfontstheglyphsarenotnamedbutarereferredtobyaCIDnumber.

CID-keyedfont

APostScriptfontinwhichtheglyphsareindexedbyCIDandnotbyname.

CJK

Chinese,Japanese,Korean.Thesethreelanguagesrequirefontswithahugenumberofglyphs.AllthreeshareawritingsystembasedonChineseideographs(thoughtheyhaveundergoneseparateevolutionineachcountry,indeedmainlandChinesefontsaredifferentfromthoseusedinTaiwanandHongKong).

JapaneseandKoreanalsohavephoneticsyllabaries.TheJapanesehavetwosyllabaries,Hiraganaandkatakanawhichhaveabout60syllables.TheKoreanshaveonesyllabary,hangulwithtensofthousandsofsyllables.

CJKV

Chinese,Japanese,Korean,Vietnamese.Thesefourlanguagesrequirefontswithahugenumberofglyphs.

Condensed

Acondensedfontisonewherethespacebetweenthestemsoftheglyphs,andthedistancebetweenglyphsthemselveshasbeenreduced.

Conflictinghints

Ifaglyphcontainstwohintswherethestartorendpointofoneiswithintherangeoftheotherthenthesehintsconflict.Theymaynotbeactivesimultaneously.

Counter

Thecounterofaglyphisthewhitepartwhichiseitherfullyorpartiallyenclosed.Theoandnbothhavecounters.Theiandldonot.Theeandbothhavecounters.TheBhastwocounters.

D

Descender

Astemonalowercaseletterwhichextendsbelowthebaseline."p"hasadescender.SeealsoX-height,Cap-height,Ascender,Overshoot,Baseline

Descent

Intraditionaltypographythedescentofafontwasthedistancefromthebottomofablockoftypetothebaseline.

Itsmeaninginmoderntypographyhasbecomelessprecise.

Glossary

190

DeviceTable

AconceptinOpenTypewhichallowsyoutoenterspacingadjustmentsgearedtorasterizationatparticularpixelsizes.Ifakerningvaluethatworksmostofthetimeleadstoanuglyjuxtapositionofglyphsona12pixelhighfont,thenyoucanaddaspecialtweaktothespacingthatonlyisapplicableat12pixels(andanotheroneat14and18,orwhateverisneeded).Similarfunctionalityisneededforanchoredmarks.

Diacritics

Manylanguagesuseletterswhichhavemarksaboveorbelowthemorevencrossingtheletters.Thesemarksarecalleddiacritics.Sometimestheyarealsocalled"accents"althoughthisisalesspreciseterm.ExamplesoftheselettersincludeÀàåÅÜüØøÇç.

Didotpoint

TheEuropeanpoint.622/3pointsper23.566mm(2.66pt/mmor67.55pt/inch).Thereisalsoa"metric"didotpoint:.4mm.

Distortablefont

SeeMulti-Master

E

em

Alinearunitequaltothepointsizeofthefont.Ina10pointfont,theemwillbe10points.Anem-spaceiswhite-spacethatisaswideasthepointsize.Anem-dashisahorizontalbarthatisaswideasthepointsize.

Anem-squareisasquareoneemtoeachside.Intraditionaltypography(wheneachletterwascastinmetal)theglyphhadtobedrawnwithintheem-square.

emunit

Inascalablefontthe"em"issubdividedintounits.Inapostscriptfontthereareusually1000unitstotheem.InaTrueTypefonttheremightbe512,1024or2048unitstotheem.InanIkarusfontthereare15,000units.FontForgeusestheseunitsasthebasisofitscoordinatesystem.

en

Onehalfofan"em"

Encoding

Anencodingisamappingfromasetofbytesontoacharacterset.Itiswhatdetermineswhichbytesequencerepresentswhichcharacter.Thewords"encoding"and"characterset"areoftenusedsynonymously.ThespecificationforASCIIspecifiesbothacharactersetandanencoding.ButCJKcharactersetsoftenhavemultipleencodingsforthecharacterset(andmultiplecharactersetsforsomeencodings).

Inmorecomplicatedcasesitispossibletohavemultipleglyphsassociatedwitheachcharacter(asinarabicwheremostcharactershaveatleast4differentglyphs)andtheclientprogrammustpicktheappropriateglyphforthecharacterinthecurrentcontext.

Glossary

191

Eth—Edh

Theoldgermanicletter"ð"forthevoiced(English)"th"sound(thesoundin"this"—mostEnglishspeakersaren'tevenawarethat"th"inEnglishhastwosoundsassociatedwithit,butitdoes,seealsoThorn)

Even-OddFillrule

Todetermineifapixelshouldbefilledusingthisrule,drawalinefromthepixeltoinfinity(inanydirection)thencountthenumberoftimescontourscrossthisline.Ifthatnumberisoddthenfillthepoint,ifitiseventhendonotfillthepoint.Thismethodisusedforfontsbypostscriptrasterizersafterlevel2.0ofPostScript.SeeAlsoNon-ZeroWindingNumberFill.

Extended

Anextendedfontisonewherethespacebetweenthestemsoftheglyphs,andthedistancebetweenglyphsthemselveshasbeenincreased.

Extremum(plural:Extrema)

Anextremumisthepointonamathematicalcurvewherethecurveattainsitsmaximumorminimumvalue.Onacontinuouscurvethiscanhappenattheendpoints(whichisdull)orwheredx/dt=0ordy/dt=0.

Infontdesign,theextremaofaglypharethetop-mostandbottom-mostpointsoftheoutline,aswellasitsleft-mostandright-mostpoints.Makingsurethataglyphhason-curvepointsatallofitsextremaisimportant,becauseitsimplifiestextrenderingwhenthefontisused.

F

Features(OpenType)

Whencreatingfontsforcomplexscripts(andevenforlesscomplexscripts)varioustransformations(likeligatures)mustbeappliedtotheinputglyphsbeforetheyarereadyfordisplay.Thesetransformationsareidentifiedasfontfeaturesandaretaggedwith(inOpenType)a4lettertagor(inApple)a2numberidentifier.ThemeaningsofthesefeaturesarepredefinedbyMicrosoftandApple.FontForgeallowsyoutotageachlookupwithoneorseveralfeatureswhenyoucreateit(orlater).

FeatureFile

ThisisatextsyntaxdesignedbyAdobetodescribeOpenTypefeatures.Itcanbeusedtomovefeatureandlookupinformationfromonefonttoanother.

Feature/Settings(Apple)

TheseareroughlyequivalenttoOpenType'sFeaturesabove,theyaredefinedbyApple.

Font

Acollectionofglyphs,generallywithatleastoneglyphassociatedwitheachcharacterinthefont'scharacterset,oftenwithanencoding.

Afontcontainsmuchoftheinformationneededtoturnasequenceofbytesintoasetofpicturesrepresentingthecharactersspecifiedbythosebytes.

Glossary

192

Intraditionaltypesettingafontwasacollectionoflittleblocksofmetaleachwithagravenimageofaletteronit.Traditionallytherewasadifferentfontforeachpoint-size.

FontFamily,orFamily

Acollectionofrelatedfonts.Oftenincludingplain,italicandboldstyles.

FreeType

Alibraryforrasterizingfonts.UsedextensivelyinFontForgetounderstandthebehaviorofTrueTypefontsandtodobetterrasterizationthanFontForgecouldaccomplishunaided.

Fuþark(Futhark)

Theoldgermanicrunicscript.

G

GhostHint

Sometimesitisimportanttoindicatethatahorizontaledgeisindeedhorizontal.Buttheedgehasnocorrespondingedgewithwhichtomakeanormalstem.Inthiscaseaspecialhintisusedwithawidthof-20(or-21).Aghosthintmustlieentirelywithinaglyph.Ifitisatthetopofacontouruseawidthof-20,ifatthebottomuse-21.GhosthintsshouldalsoliewithinBlueZones.(Thespecalsomentionsverticalghosthints,butastherearenoverticalbluezonesitisnotclearhowtheseshouldbeused).

Glyph

Aglyphisanimage,oftenassociatedwithoneorseveralcharacters.Sotheglyphusedtodraw"f"isassociatedwiththecharacterf,whiletheglyphforthe"fi"ligatureisassociatedwithbothfandi.Insimplelatinfontstheassociationisoftenonetoone(thereisexactlyoneglyphforeachcharacter),whileinmorecomplexfontsorscriptstheremaybeseveralglyphspercharacter(Inrenaissanceprintingtheletter"s"hadtwoglyphsassociatedwithit,one,thelong-s,wasusedinitiallyandmedially,theother,theshort-s,wasusedonlyattheendofwords).Andintheligaturesoneglyphisassociatedwithtwoormorecharacters.

Fontsarecollectionsofglyphswithsomeformofmappingfromcharactertoglyph.

GridFitting

BeforeTrueTypeglyphsarerasterizedtheygothroughaprocesscalledgridfittingwhereatinyprogram(associatedwitheachglyph)isrunwhichmovesthepointsontheglyph'soutlinesarounduntiltheyfitthepixelgridbetter.

Gothic

TheGermanmonksatthetimeofGutenbergusedablack-letterwritingstyle,andhecopiedtheirhandwritinginhistypefacesforprinting.Italiantypedesigners(afterprintingspreadsouth)sneeredatthestyle,preferringthetypedesignsleftbytheRomans.Asatermofcontempttheyusedthewordgothic,thestyleoftheGothswhohelpeddestroytheromanempire.

Graphitetables

Glossary

193

GraphiteisanextensiontoTrueTypewhichembedsseveraltablesintoafontcontainingrulesforcontextualshaping,ligatures,reordering,splitglyphs,bidirectionality,stackingdiacritics,complexpositioning,etc.

ThissoundsratherlikeOpenType—exceptthatOpenTypedependsonthetextlayoutroutinesknowingalotabouttheglyphsinvolved.ThismeansthatOpenTypefontscannotbedesignedforanewlanguageorscriptwithoutshippinganewversionoftheoperatingsystem.WhereasGraphitetablescontainallthathiddeninformation.

Apple'sAdvancedTypographyprovidesabettercomparison,butGraphitetablesaresupposedtobeeasiertobuild.

SILInternationalprovidesafreeGraphitecompiler.

Grotesque

Seealsosans-serif.

H

Hancharacters

TheideographiccharactersusedinChina,JapanandKorea(and,Ibelieve,invariousotherasiancountriesaswell(Vietnam?)),allbasedonthewritingstylethatevolvedinChina.

Hangul

TheKoreansyllabary.Theonlysyllabary(thatI'mawareofanyway)basedonanalphabet—thelettersofthealphabetneverappearalone,butonlyasgroupsoftwoorthreemakingupasyllable.

Hanja

TheKoreannamefortheHancharacters

Hints

Thesearedescribedindetailinthemainmanual.Theyhelptherasterizertodrawaglyphwellatsmallpointsizes.

HintMasks

Atanygivenpointonacontourhintsmaynotconflict.Howeverdifferentpointsinaglyphmayneedconflictinghints.Soeverynowandthenacontourwillchangewhichhintsareactive.Eachlistofactivehintsiscalledahintmask.

Hiragana

OneofthetwoJapanesesyllabaries.BothHiraganaandKatakanahavethesamesounds.

I

Ideographiccharacter

Asinglecharacterwhichrepresentsaconceptwithoutspellingitout.GenerallyusedtomeanHan(Chinese)characters.

Glossary

194

Italic

Aslantedstyleofafont,oftenusedforemphasis.

ItalicdiffersfromObliqueinthatthetransformationfromtheplaintotheslantedforminvolvesmorethanjustskewingtheletterforms.Generallythelower-caseachangestoa,theserifsonlower-caseletterslikei(i)change,andthefontgenerallygainsamoreflowingfeeling.

J

Jamo

ThelettersoftheKoreanalphabet.Thesearealmostneverseenalone,generallyappearingingroupsofthreeaspartofaHangulsyllable.TheJamoaredividedintothreecategories(withconsiderableoverlapbetweenthefirstandthird),thechoseong—initialconsonants,thejungseong--medialvowels,andthejongseong--finalconsonants.Asyllableiscomposedbyplacingachoseongglyphintheupperleftofanem-square,ajungseongintheupperright,andoptionallyajongseonginthelowerportionofthesquare.

K

Kanji

TheJapanesenamefortheHancharacters.

Katakana

Oneofthetwo(modern)Japanesesyllabaries.BothHiraganaandKatakanahavethesamesounds.

Kerning

Whenthedefaultspacingbetweentwoglyphsisinappropriatethefontmayincludeextrainformationtoindicatethatwhenagivenglyph(say"T")isfollowedbyanotherglyph(say"o")thentheadvancewidthofthe"T"shouldbeadjustedbyacertainamounttomakeforamorepleasingdisplay.

Inthedaysofmetaltype,metalactuallyhadtobeshavedofftheslugoftypetoprovideasnuggerfit.Forinstance,the"F"wouldhavehadsomemetalremovedsothatalowercaselettercouldsnuggleclosertoit.

Kernpair

Apairofglyphsforwhichkerninginformationhasbeenspecified.

Kerningbyclasses

Theglyphsofthefontaredividedintoclassesofglyphsandthereisalargetablewhichspecifieskerningforeverypossiblecombinationofclasses.Generallythiswillbesmallerthantheequivalentsetofkerningpairsbecauseeachclasswillusuallycontainseveralglyphs.

Knuth,Donald

Glossary

195

Amathematicianwhogotsofedupwithbadtypesettingbackinthe1970&80sthathecreatedhisownfontdesignsystemandtypographicallayoutprogramcalled,respectively,MetaFontandTeX.

L

Leftsidebearing

Thehorizontaldistancefromaglyph'sorigintoitsleftmostextent.Thismaybenegativeorpositive.

Lemur

Amonotypicgenusofprosimianprimates,nowfoundonlyonMadagascarbutformally(about50millionyearsago)membersofthisfamilyweremuchmorewidespread.

Ligature

Asingleglyphwhichiscomposedoftwoadjacentglyphs.Acommonexampleinthelatinscriptisthe"fi"ligaturewhichhasanicerfeeltoitthanthesequence.

Linespace

Thedistancebetweensuccessivelinesoftype.

LGC

Latin,Greek,Cyrillic.Thesethreealphabetshaveevolvedsidebysideoverthelastfewthousandyears.Theletterformsareverysimilar(andsomelettersareshared).Manyconceptssuchas"lowercase","italic"areapplicabletothesethreealphabetsandnottoanyothers.(OK,Armenianalsohaslowercaseletters).

M

Manyogana

AnearlyJapanesescript,ancestraltobothhiraganaandkatakana.Manyoganausedkanjifortheirphoneticsounds,andovertheyearsthesekanjiweresimplifiedintohiraganaandkatakana.

Monospace

Afontinwhichallglyphshavethesamewidth.Thesearesometimescalledtypewriterfonts.

Multi-layeredfonts

(FontForge'sownterm)PostScripttype3fontsandSVGfontsallowformoredrawingpossibilitiesthannormalfonts.Normalfontsmayonlybefilledwithasinglecolorinheritedfromthegraphicsenvironment.Thesetwofontsmaybefilledwithseveraldifferentcolors,bestroked,includeimages,havegradientfills,etc..

MultipleMasterFont

Glossary

196

AmultiplemasterfontisaPostScriptfontschemawhichdefinesaninfinitenumberofrelatedfonts.Multiplemasterfontscanvaryalongseveralaxes,forexampleyoumighthaveamultiplemasterwhichdefinedbothdifferentweightsanddifferentwidthsofafontfamily,itcouldbeusedtogenerate:Thin,Normal,Semi-Bold,Bold,Condensed,Expanded,Bold-Condensed,etc.Adobeisnolongerdevelopingthisformat.Applehasaformatwhichachievesthesameeffectbuthasnotproducedmanyexamples.FontForgesupportsboth.

N

Namelist

AmappingfromUnicodecodepointtoglyphname.

Non-ZeroWindingNumberFillrule

Todetermineifapixelshouldbefilledusingthisruledrawalinefromheretoinfinity(inanydirection)andcountthenumberoftimescontourscrossthisline.Ifthecontourcrossesthelineinaclockwisedirectionadd1,ifthecontourcrossesinacounterclockwisedirectionsubtractone.Iftheresultisnon-zerothenfillthepixel.Ifitiszeroleaveitblank.ThismethodisusedforrasterizingfontsbyTrueTypeandolder(beforeversion2)postscript.

SeeAlsoEven-OddFillRule.

O

Ogham

TheoldCelticinscriptionscript.

OpenType

Atypeoffont.ItisanattempttomergepostscriptandTrueTypefontsintoonespecification.AnOpenTypefontmaycontaineitheraTrueTypeorapostscriptfontinsideit.

ItcontainsmanyofthesamedatatablesforinformationlikeencodingsthatwerepresentinTrueTypefonts.

ConfusinglyitisalsousedtomeantheadvancedtypographictablesthatAdobeandMicrosoft(butnotApple)haveaddedtoTrueType.Theseincludethingslikecontextualligatures,contextualkerning,glyphsubstitution,etc.

AndMSWindowsusesittomeanafontwitha'DSIG'(DigitalSignature)table.

OpenTypeTables

EachOpenTypefontcontainsacollectionoftableseachofwhichcontainsacertainkindofinformation.

Oblique

Aslantedstyleofafont,generallyusedforemphasis.

ObliquediffersfromItalicinthatthetransformationfromtheplaintotheslantedforminvolvesamathematicalormechanicalskewingtheletterforms.

Overshoot

Glossary

197

Inorderforthecurvedshapeofthe"O"toappeartobethesameheightastheflattopofthe"I"ittendsto"overshoot"thecap-height(orx-height),orundershootthebaselinebyabout3%ofthecap-height(orx-height).Foratriangularshape(suchas"A")theovershootisevengreater,perhaps5%.

TheseguidelinesarebasedonthewaytheeyeworksandtheopticalillusionsitgeneratesandaretakenfromPeterKarow'sDigitalFormatsforTypefaces,p.26).

Theovershootisalsodependentonthepoint-sizeofafont,thelargerthepoint-sizethesmallertheovershootshouldbe.Generallymodernfontswillbeusedatmultiplepoint-sizes,butinsomefontfamiliestherearemultiplefacesforthedifferentpoint-sizes,andinsuchacasetheovershootwillprobablyvaryfromfacetoface.

SeealsoX-height,Cap-height,Ascender,Descender,Baseline

P

Panose

Asystemfordescribingfonts.SeePanoseFontClassificationSystemMetricsGuide.ThereisalsoanextensioncalledPanose2.0.

FontForgeonlyknowsabouttheclassificationschemeforLatinfonts.Otherschemesexistforotherscripts.

PfaEdit

ThiswastheearlynameforFontForge.Theoriginalconceptionwasthatitwouldonlyedittype1ASCIIfonts(hencethename),itquicklymetamorphosedbeyondthatpoint,butittookmethreeyearstorenameit.

Phantompoints

InaTrueTypefontthereareafewpointsaddedtoeachglyphwhicharenotspecifiedbythecontoursthatmakeuptheglyph.Thesearecalledphantompoints.Oneofthesepointsrepresentstheleftsidebearing,andtheothertheadvancewidthoftheglyph.TrueTypeinstructions(hints)areallowedtomovethesepointsaroundjustasanyotherpointsmaybemoved—thuschangingtheleft-side-bearingortheadvancewidth.EarlyversionsofTrueTypesuppliedjustthesetwophantoms,morerecentversionsalsosupplyaphantomforthetopsidebearingandaphantomfortheverticaladvancewidth.

Pica

Aunitoflengthdefined(intheUSatleast)tobe35/83cm(orapproximately1/6thofaninch).Thiswasusedformeasuringthelengthoflinesoftext(as"30picasand4pointslong"),butnotformeasuringfontheights.

InRenaissancetypography,beforetherewerepoints,sizesoftypehadnames,and"pica"wasusedinthiscontext.As:"GreatCanon","DoublePica","GreatPrimer","English","Pica","Primer","SmallPica","Brevier","Nonpareil"and"Pearl"(eachnamerepresentingaprogressivelysmallersizeoftype)andseeCaslon'stypespecimensheetonWikipedia.

Picapoint

TheAnglo-Americanpoint.With72.27pointsperinch(2.85pt/mm).

Point

Glossary

198

Apointisaunitofmeasurement.Therewerethree(atleast)differentdefinitionsfor"point"incommonusagebeforetheadventofcomputers.TheoneinuseintheAnglo-Saxonprintingworldwasthe"picapoint"with72.27pointsperinch(2.85pt/mm),whiletheoneusedincontinentalEuropewasthedidotpointwith622/3pointsper23.566mm(2.66pt/mmor67.54pt/inch)andtheFrenchsometimesusedtheMedianpoint(72.78pointsperinch,2.86pt/mm).

Thedidotandpicapointsweresoarrangedthattextatagivenpoint-sizewouldhaveapproximatelythesamecap-heightinbothsystems,thedidotpointwouldhaveextrawhite-spaceabovethecapitalstocontaintheaccentspresentinmostnon-EnglishLatinbasedscripts.

ThishastheinterestingsideeffectthatafontdesignedforEuropeanusageshouldhaveasmallerproportionoftheverticalemgivenovertothetextbody.Ibelievethatcomputerfontstendtoignorethis,sopresumablyEuropeanprintersnowsetwithmoreleading.

AsfarasIcantell,computerstendtoworkinapproximationstopicapoints(butthismaybebecauseIamintheUS),PostScriptusesaunitof1/72ndofaninch.

Originallyfontswerenotdescribedbypointsize,butbyname.Itwasnotuntilthe1730sthatPierreFournierthatcreatedthepointsystemforspecifyingfontheights.ThiswaslaterimproveduponbyFrançois-AmbroiseDidot(hencethenameofthepoint).In1878theChicagoTypeFoundryfirstusedapointsystemintheUS.In1886theUSpointwasstandardized—thepicawasdefinedtobe35/83cm,andthepicapointdefinedtobe1/12thofthat.

PointSize

Intraditionaltypographya10ptfontwasonewheretheblockofmetalforeachglyphwas10pointshigh.Thepointsizeofafontistheunleadedbaselinetobaselinedistance.

Pointofinflection

Apointonacurvewhereitchangesfrombeingconcavedownwardstoconcaveupwards(orviceversa).Orinmathematicalterms(forcontinuouscurves)whered²y/dx²=0orinfinity.Cubicsplinesmaycontaininflectionpoints,quadraticsplinesmaynot.

PostScript

PostScriptisapage-layoutlanguageusedbymanyprinters.Thelanguagecontainsthespecificationsofseveraldifferentfontformats.Themain(FontForge)manualhasasectiondescribinghowPostScriptdiffersfromTrueType.

Type1:ThisistheoldstandardforPostScriptfonts.Suchafontgenerallyhastheextension.pfb(or.pfa).Atype1fontislimitedtoaonebyteencoding(i.e.only256glyphsmaybeencoded).Type2/CFF:ThisistheformatusedwithinOpenTypefonts.ItisalmostthesameasType1,buthasafewextensionsandamorecompactformat.ItisusuallyinsideaCFFwrapper,whichisusuallyinsideanOpenTypefont.TheCFFfontformatagainonlyallowsa1byteencoding,buttheOpenTypewrapperextendsthistoprovidemorecomplexencodingtypes.Type3:Thisformatallowsfullpostscriptwithinthefont,butitmeansthatnohintsareallowed,sothesefontswillnotlookasniceatsmallpoint-sizes.Alsomost(screen)rasterizersareincapableofdealingwiththem.Atype3fontislimitedtoaonebyteencoding(i.e.only256glyphsmaybeencoded).Type0:Thisformatisusedforcollectingmanysub-fonts(ofType1,2or3)intoonebigfontwithamulti-byteencoding,andwasusedforCJKorUnicodefonts.Type42:ATrueTypefontwrappedupinPostScript.SortoftheoppositefromOpenType.CID:ThisformatisusedforCJKfontswithlargenumbersofglyphs.Theglyphsthemselvesarespecifiedeitherastype1ortype2glyphformat.TheCIDfontitselfhasnoencoding,justamappingfromCID(anumber)toglyph.AnsetofexternalCMAPfilesareusedtoprovideappropriateencodingsasneeded.

Glossary

199

Python

Acomputerprogramminglanguagethatemphasizescodereadability.

R

Reference

Areferenceisawayofstoringtheoutlinesofoneglyphinanother(forexampleinaccentedglyphs).Sometimescalledacomponent.

Rightsidebearing

Thehorizontaldistancefromaglyph'srightmostextenttotheglyph'sadvancewidth.Thismaybepositiveornegative.

S

SansSerif

SeeSerif.

Script

Ascriptisacharactersetandassociatedrulesforputtingcharacterstogether.Latin,arabic,katakanaandhanjaareallscripts.

Serif

BacktwothousandyearsagowhentheRomanswerecarvingtheirlettersonstonemonuments,theydiscoveredthattheycouldreducethechanceofthestonecrackingbyaddingfinelinesattheterminationsofthemainstemsofaglyph.

Thesefinelineswerecalledserifs,andcametohaveanaestheticappealoftheirown.Earlytypedesignersaddedthemtotheirfontsforaestheticratherthanfunctionalreasons.

Attheendofthenineteenthandbeginningofthetwentiethcenturies,type-designersstarteddesigningfontswithoutserifs.Thesewereinitiallycalledgrotesquesbecausetheirformappearedsostrange,theyarenowgenerallycalledsans-serif.

Otherwritingsystems(Hebrewforone)havetheirownserifs.Hebrewserifsareratherdifferentfromlatin(cyrillic,greek)serifsandIdon'tknowtheirhistory.Hebrewserifsonlyoccuratthetopofaglyph.

SFD

SplineFontDatabase.TheseareFontForge'sownpersonalfontrepresentation.ThefilesareASCIIandvaguelyreadable,theformatisdescribedhere.Asof14May2008theformathasbeenregisteredwithIANAforaMIMEtype:application/vnd.font-fontforge-sfd.Otherpeopleusetheacronym'sfd'too.(Unfortunately)

Tops-10,ontheDigitalPDP-10usedsfdtomean"SubFileDirectory".Tops-10madeadistinctionbetweentop-level(home)directories,called"userfiledirectories",andsub-directories.TeXusesittomean"SubFontDefinition"whereaTeXsfdfilecontainsinformationonhowtobreakabigCJKorUnicodefontupintosmallsub-fonts,eachwitha1byteencodingwhichTeX(orolderversionsofTeX)needed.

Glossary

200

SFNT

ThenameforthegenericfontformatwhichcontainsTrueType,OpenType,Apple'sbitmaponly,X11'sbitmaponly,obsolete'typ1'fontsandAdobe'sSINGfonts(andnodoubtothers).TheSFNTformatdescribeshowfonttablesshouldbelaidoutwithinafile.Eachoftheaboveformatsfollowthisgeneralideabutincludemorespecificrequirements(suchaswhattablesareneeded,andtheformatofeachtable).

SIP

SupplementaryIdeographicPlane(0x20000-0x2FFFF)ofUnicode.UsedforrareHancharacters(mostarenolongerincommonuse)SeeAlso

BMP:BasicMultilingualPlane(0x00000-0x0FFFF)SMP:SupplementaryMultilingualPlane(0x10000-0x1FFFF)SSP:SupplementarySpecial-purposePlane(0xE0000-0xEFFFF)

SMP

SupplementaryMultilingualPlane(0x10000-0x1FFFF)ofUnicode.Usedforancientandartificialalphabetsandsyllabaries—likeLinearB,Gothic,andShavian.SeeAlso

BMP:BasicMultilingualPlane(0x00000-0x0FFFF)SIP:SupplementaryIdeographicPlane(0x20000-0x2FFFF)SSP:SupplementarySpecial-purposePlane(0xE0000-0xEFFFF)

Spline

Acurvedlinesegment.ThesplinesusedinFontForgeareallsecondorthirdorderBéziersplines(quadraticorcubic),andRaphLevien'sclothoidsplines.

SSP

SupplementarySpecial-purposePlane(0xE0000-0xEFFFF)ofUnicode.Notusedformuchofanything.SeeAlso

BMP:BasicMultilingualPlane(0x00000-0x0FFFF)SMP:SupplementaryMultilingualPlane(0x10000-0x1FFFF)SIP:SupplementaryIdeographicPlane(0x20000-0x2FFFF)

Statemachine

Astatemachineislikeaverysimplelittleprogram,theyareusedonthemacforperformingcontextualsubstitutionsandkerning.ThestatemachinedialogisreachablefromElement->FontInfo->Lookups.

The"statemachine"consistsofatableofstates,eachstateinturnconsistsofaseriesofpotentialtransitions(tothesameordifferentstates)dependingontheinput.Instatemachineswithinfonts,themachinestartsoutinaspecialstatecalledthestartstate,andreadstheglyphstreamofthetext.Eachindividualglyphwillcauseastatetransitiontooccur.Asthesetransitionsoccurthemachinemayalsospecifychangestotheglyphstream(conditionalsubstitutionsorkerning).

Stem

Astemisthepartoftheletterwhichisvertical.TheIandlareallstemexceptforserifs.TheHconsistsoftwostemsandacrossbar.OtherglyphswithstemsincludeBbFfKkPpRr1and4.

Glossary

201

Strike

Aparticularinstanceofafont.Mostcommonlyabitmapstrikeisaparticularpixelsizeofafont.

Style

Therearevariousconventionalvariantsofafont.Inprobablyanywritingsystemthethicknessofthestemsoftheglyphsmaybevaried,thisiscalledtheweightofafont.Commonweightsarenormalandbold.

InLGCalphabetsanitalic(oroblique)stylehasarisenandisusedforemphasis.

Fontsareoftencompressedintoacondensedstyle,orexpandedoutintoanextendedstyle.

Variousotherstylesareinoccasionaluse:underline,overstrike,outline,shadow.

SVG

ScalableVectorGraphics.AnXMLformatusedfordrawingvectorimages.Itincludesafontformat.

Syllabary

Asyllabaryisaphoneticwritingsystemlikeanalphabet.Unlikeanalphabetthesound-unitwhichiswrittenisasyllableratherthanaphoneme.InJapaneseKataKanathesound"ka"isrepresentedbyoneglyph.Syllabariestendtobebiggerthanalphabets(JapaneseKatakanarequiresabout60differentcharacters,whiletheKoreanHangulrequirestensofthousands).

SeeAlso:abjad,abugida,alphabetandtherelevantWikipediaarticle.

T

Terminal

Theterminalofaglyphisthepartwherethestrokeends.TheTopofthefhasaterminal.Theshastwoterminals.Whenaglyphhasserifstheserifsareconsidereddifferentfromtheterminals.Becausethebottomofthefwouldhaveaserififitisinaserifstylebottomisnotconsideredaterminal.Thebottomofthejandyarehoweverconsideredterminals.Similarlythe3hastwoterminalsoneatthetopandonethebottom.Themiddleisconsideredtobeajoinratherthanaterminal.Theclassificationofthesepartsisperhapsmoredeterminedbyconventionthanbyastrictlogic.

TeX

Atypesettingpackage.

Thorn

Thegermanicletter"þ"usedfortheunvoiced(English)"th"sound(asintheword"thorn"),IbelievethisisapproximatelythesamesoundvalueasGreekTheta.Currentlyacorruptversionofthisglyphsurvivesas"ye"for"the".SeealsoEth.

TrueType

AtypeoffontinventedbyAppleandsharedwithMicrosoft.Itspecifiesoutlineswithseconddegree(quadratic)Béziercurves,containsinnovativehintingcontrols,andanexpandableseriesoftablesforcontainingwhateveradditionalinformationisdeemedimportanttothefont.

Glossary

202

AppleandAdobe/Microsofthaveexpandedthesetablesindifferentwaystoincludeadvancedtypographicfeaturesneededfornon-latinscripts(orforcomplexlatinscripts).SeeAppleAdvancedTypographyandOpenType.

TrueTypeTables

Eachtruetypefontcontainsacollectionoftableseachofwhichcontainsacertainkindofinformation.

Type1

AtypeofPostScriptfont.

Type2

AtypeofPostScriptfont,usedwithinOpenTypefontwrappers.

Type3

AverygeneraltypeofPostScriptfont.

Type0

AtypeofPostScriptfont.

TypeHigh

Inthedaysofmetaltypethiswastheheightofthepieceofmetal—thedistancefromtheprintingsurfacetotheplatformonwhichitrested.

Typewriter

SeeMonospace.

U

Unicode

Acharacterset/encodingwhichtriestocontainallthecharacterscurrentlyusedintheworld,andmanyhistoricalonesaswell.SeetheUnicodeconsortium.

BMP:BasicMultilingualPlane(0x00000-0x0FFFF)SMP:SupplementaryMultilingualPlane(0x10000-0x1FFFF)SIP:SupplementaryIdeographicPlane(0x20000-0x2FFFF)SSP:SupplementarySpecial-purposePlane(0xE0000-0xEFFFF)Moreinfo.

Undershoot

SeeOvershoot.

UniqueID

Glossary

203

ThisisafieldinaPostScriptfont,itwasformerlyusedasamechanismforidentifyingfontsuniquely,thenAdobedecideditwasnotsufficientandcreatedtheXUID(extendedUniqueID)field.Adobehasnowdecidedthatbothareunneeded.

ThereisaverysimilarfieldintheTrueType'name'table.

UseMyMetrics

Thisisatruetypeconceptwhichforcesthewidthofancompositeglyph(forexampleanaccentedletter)tobethesameasthewidthofoneofitscomponents(forexamplethebaseletterbeingaccented).

V

VerticalAdvanceWidth

CJKtextisoftenwrittenvertically(andsometimeshorizontally),soeachCJKglyphhasaverticaladvanceaswellasahorizontaladvance.

W

Weight

Theweightofafontishowthick(dark)thestemsoftheglyphsare.Traditionallyweightisnamed,butrecentlynumbershavebeenappliedtoweights.

Name Number

Thin 100

Extra-Light 200

Light 300

Normal 400

Medium 500

Demi-Bold 600

Bold 700

Heavy 800

Black 900

Nord

Ultra

Whitespace

Thewhitespaceofthetypedesignincludesthespacebetweenlinesoftext,thespacebetweentheletters,thewordspaceandthespacesinsidetheletters.Itisabroadandencompassingterm.

Width

Glossary

204

Thisisaslightlyambiguoustermandissometimesusedtomeantheadvancewidth(thedistancefromthestartofthisglyphtothestartofthenextglyph),andsometimesusedtomeanthedistancefromtheleftsidebearingtotherightsidebearing.

X

X-height

Theheightofalowercaseletterabovethebaseline(withaflattoplike"x"or"z"or"v"asopposedtoonewithacurvedtoplike"o"oronewithanascenderlike"l").

SeealsoCap-height,Ascender,Descender,Overshoot,Baseline.

XUID

ExtendedUniqueIDinaPostScriptfont.Nowsomewhatobsolete.SeeUniqueID.

Glossary

205