designwithfontforge.comdesignwithfontforge.com/ebook/design-with-fontforge_en... · 2019-10-25 ·...
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
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
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
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
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
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
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
TheshapeofOcantellyouquitealotabouttheC,GandQ.TheshapeofHtellsyouabitaboutaboutIandJandtheleftsideofBDEFKLPR.
ItalsotellsyoualittleaboutTandU.TheshapeofAcantellyouquitealotabouttheshapeofV.
CapitalLetters
91
TheshapeandproportionsofVtellsyoualittleabouthowtodesignYWX.TheshapeoftheZisdistinctive.
CapitalLetters
93
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
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
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