Журнал LinuxFormat - перейти на главную

LXF158:FontForge:Ваш лич­ный шрифт

Материал из Linuxformat
Перейти к: навигация, поиск


Содержание

Ти­по­гра­фи­ка. Пре­вра­ти­те свой по­черк в год­ный к упот­реб­ле­нию шрифт

FontForge: Ваш лич­ный шрифт

LXF158.tut font.autotr opt.jpeg

Есть ли му­зы­ка внут­ри ка­ж­до­го из нас, оста­ет­ся под со­мнением. А вот ес­ли внут­ри вас есть шрифт, Ша­шанк Шар­ма вы­ве­дет его на свет.

(thumbnail)
Наш экспрт Ша­шанк Шар­ма пи­шет о сво­бод­ном ПО уже бо­лее че­ты­рех лет, вклю­чая Linux.com. Он со­ав­тор Beginning Fedora.

При ра­бо­те с ва­шим лю­би­мым тек­сто­вым про­цес­со­ром вам да­ют­ся на вы­бор вся­кие шриф­ты: Liberation, DejaVu и дру­гие. А вдруг вам за­хо­чет­ся соз­дать соб­ст­вен­ный шрифт, да не про­сто шрифт, а ото­бра­жение ва­ше­го же по­чер­ка? FontForge по­мо­га­ет соз­да­вать шриф­ты с ну­ля, и мы здесь по­ка­жем вам, как это де­ла­ет­ся.

Быть мо­жет, для ми­ра при­шло вре­мя ре­шить, пра­ва ли мисс Марпл, счи­тая, что ваш по­черк вас вы­да­ет.

В ре­по­зи­то­ри­ях боль­шин­ст­ва ди­ст­ри­бу­ти­вов FontForge есть, и его уста­нов­ка – пле­вое де­ло. К со­жа­лению, не все ди­ст­ри­бу­ти­вы со­дер­жат по­след­нюю вер­сию. Ху­же то­го, вер­сии, пред­ла­гае­мые неко­то­ры­ми ди­ст­ри­бу­ти­ва­ми, глю­чат и па­да­ют, не успее­те вы и ох­нуть.

Ес­ли вы ре­ши­те уста­но­вить FontForge из ис­ход­ных тек­стов, то про­цесс со­сто­ит из про­ве­рен­ной триа­ды ./ Configure, make и make install.

Ин­тер­фейс

По­доб­но GIMP, FontForge распре­дели­л всю свою функ­циональность по трем ок­нам. В от­ли­чие от GIMP, од­на­ко, его кон­ст­рук­ция не под­вер­га­ет­ся столь обиль­ной кри­ти­ке (ес­ли во­об­ще кри­ти­ку­ет­ся). Эти три ок­на – Tools [Ин­ст­ру­мен­ты], Layers [Cлои] и Main Window [Глав­ное ок­но], так­же на­зы­вае­мое Font View [Про­смотр шриф­та].

За­пустив FontForge, на­жми­те кноп­ку Соз­дать на диа­ло­го­вом окне От­крыть шриф­та. От­кро­ет­ся глав­ное ок­но, где по­ка­за­ны все сим­во­лы шриф­та, они же – гли­фы. По­сколь­ку гли­фов мы еще не до­бав­ля­ли, все клет­ки в окне пред­став­ления шриф­тов пе­ре­черк­ну­ты крас­ным кре­стом.

Двой­ной щел­чок на пустой клет­ке сим­во­ла вы­зо­вет ок­но Outline Glyph [Эс­киз гли­фа]. Здесь мы бу­дем соз­да­вать и ре­дак­ти­ро­вать на­ши гли­фы. За­од­но ста­нут доступ­ны дру­гие два ок­на – Tools и Layers. Мы рас­смот­рим ка­ж­дое из них в свою оче­редь, как толь­ко начнем ис­поль­зо­вать FontForge.

Шрифт де­ла­ют гли­фы

В окне Font View щелкните Element > Font Info [Эле­мент > Дан­ные о шриф­те] и ука­жи­те имя шриф­та. Там по­на­до­бит­ся пре­доста­вить еще мно­го ин­фор­ма­ции, на­при­мер, раз­мер EM и т. п., но мы вернем­ся к это­му поз­же. За­кон­чив, на­жми­те OK.

Ес­ли у вас еще нет рас­тро­вых изо­бра­жений для сим­во­лов, сна­ча­ла соз­дай­те их – об­ра­ти­тесь к клет­кам.

Для до­бав­ления гли­фа к шриф­ту два­ж­ды щелкните на пустой клет­ке гли­фа шриф­та в Font View. От­кро­ет­ся ок­но Bitmap Glyph View [Про­смотр рас­тро­во­го гли­фа], а так­же ок­на Tools и Layers.

Ок­но Layers со­сто­ит из трех сло­ев: Foreground [Пе­редний план], Background [Фон] и Guides [На­прав­ляю­щие]. Боль­шую часть ра­бо­ты мы бу­дем де­лать в слое Foreground, и эта ра­бо­та станет ча­стью на­ше­го шриф­та. В фо­но­вый слой мы им­пор­ти­ру­ем изо­бра­жение на­ше­го гли­фа. Вы так­же мо­же­те пе­ре­клю­чить­ся на фо­но­вый слой и про­ве­рить, пра­виль­но ли вы очер­ти­ли глиф. На­конец, в слое Guides за­да­ют­ся на­прав­ляю­щие линии, ко­то­рые при­ме­ня­ют­ся ко всем гли­фам шриф­та.

Вы­со­та у гли­фов бу­дет неоди­на­ко­вая. Оче­вид­но, вы­со­той раз­ли­ча­ют­ся за­глав­ные и строч­ные бу­к­вы, но и неко­то­рые строч­ные бу­к­вы воз­вы­ша­ют­ся над дру­ги­ми, а есть и та­кие, что за­ле­за­ют ниже дру­гих. Боль­шин­ст­во букв си­дит на опор­ной линии. Хво­сти­ки строч­ных букв, про­сти­раю­щие­ся ниже опор­ной линии (строч­ные р, у, ф и т. д.) на­зы­ва­ют­ся Descender [нижний вы­носной эле­мент]. На­обо­рот, Ascender 

Вы­бе­ри­те Guides в окне Layers и пе­рей­ди­те в ок­но Glyph View, ко­то­рое вы от­кры­ли двой­ным щелч­ком на пустой клет­ке гли­фа. Те­перь соз­да­дим все на­прав­ляю­щие. В окне уже есть несколь­ко линий – опор­ная и линии, ог­раничи­ваю­щие ши­ри­ну бу­к­вы сле­ва и спра­ва. Те­перь за­да­дим линии вы­сот над опор­ной линией. Они бу­дут доступ­ны для всех сим­во­лов шриф­та.

Фор­ми­ро­вание гли­фов

Те­перь вой­ди­те в ме­ню File > Import [Файл > Им­порт] в окне Bitmap Glyph и им­пор­ти­руй­те рас­тро­вые изо­бра­жения для ре­дак­ти­руе­мо­го гли­фа. Мы начнем с од­но­го из про­стей­ших гли­фов, так что два­ж­ды щелкните на пустой клет­ке F. Им­пор­ти­руе­мое изо­бра­жение мас­шта­би­ру­ет­ся, и нам на­до по­дог­нать его раз­мер. Щелкните Background в окне Layer и из­мените раз­мер им­пор­ти­ро­ван­но­го изо­бра­жения, по­за­бо­тив­шись, что­бы оно впи­са­лось в на­ши све­же­оп­ре­де­лен­ные вы­со­ты.

За­тем в окне Layer пе­ре­клю­чи­тесь на Foreground. Мы по­до­шли к наи­бо­лее важ­но­му и тру­до­ем­ко­му ас­пек­ту соз­дания шриф­тов – обводке, или трас­си­ров­ке, кон­ту­ра гли­фа. Он же и са­мый от­вет­ст­вен­ный: вы долж­ны так­тич­но раз­ра­бо­тать ди­зайн всех гли­фов, что­бы сде­лать их по­хо­жи­ми на ваш ру­копис­ный по­черк.

Хо­тя ок­но Tools пред­ла­га­ет раз­лич­ные ин­ст­ру­мен­ты для вы­бо­ра, мы бу­дем глав­ным об­ра­зом ис­поль­зо­вать толь­ко че­ты­ре: Pointer [Ука­за­тель] и точ­ки ти­па Curve [Кри­вая], Corner [Уг­ло­вая] и Tangent [Ка­са­тель­ная]. При об­хо­де кон­ту­ра обес­печь­те, что­бы кон­тур замк­нул­ся, т. е. его на­ча­ло сов­па­ло с кон­цом – на­при­мер, по­ста­вив конеч­ную точ­ку по­верх на­чаль­ной. Так, ес­ли вы на­чи­нае­те свой путь с точ­ки Tangent по­сре­ди вер­тикаль­ной чер­ты F, по­след­няя точ­ка долж­на прий­тись по­верх точ­ки Tangent, с ко­то­рой вы на­ча­ли. Ес­ли вы соз­да­ди­те незамк­ну­тый кон­тур пу­ти, FontForge со­об­щит об ошиб­ках в сим­во­ле.

Шаг за шагом: Кри­вая, уг­ло­вая и ка­са­тель­ная точ­ки
(thumbnail)
1 Curve — Кри­вая> Точ­ку это­го ти­па мы ис­поль­зу­ем в мес­тах, где линия из­ги­ба­ет­ся. На ри­сун­ке мы ис­поль­зу­ем точ­ки ти­па Curve вдоль внешнего об­во­да с ле­вой сто­ро­ны и внут­ренней сто­ро­ны об­во­да. Не ис­поль­зуя точ­ку Curve, мож­но соз­дать кри­вую, пе­ре­тас­­ки­вая от­ре­зок, со­еди­няю­щий две точ­ки.
(thumbnail)
2 Tangent — Ка­са­тель­ная> Для мно­гих гли­фов вы об­на­ру­жи­те, что кри­вая пе­ре­хо­дит в пря­мую линию, или край; или пря­мая линия пе­ре­хо­дит в кри­вую, как хво­стик на­шей Q. Точ­ки ти­па Tangent от­ме­ча­ют пе­ре­ход от кри­вой к пря­мой.
(thumbnail)
3 Corner — Уг­ло­вая > Для неко­то­рых гли­фов, та­ких как E и M, пря­мые линии кру­то ме­ня­ют на­прав­ление, час­то на 90 гра­ду­сов. Тут при­ме­ня­ют­ся точ­ки ти­па Corner. Вме­сто них всегда мож­но ис­поль­зо­вать точ­ку ти­па Curve, ес­ли вы хо­ти­те сде­лать уг­лы гли­фа бо­лее ок­руг­лы­ми.

Про­ясним это, об­ве­дя кон­ту­ром F. Начнем с точ­ки Tangent по­сре­ди длин­ной нож­ки. Те­перь вы­бе­ри­те точ­ку Corner в окне ин­ст­ру­мен­тов и щелкните на верхнем ле­вом уг­лу F, что­бы по­ста­вить точ­ку там. Точ­ка Corner у нас оста­ет­ся вы­бран­ной; щелкните на пра­вом верхнем уг­лу F, по­мес­тив там дру­гую точ­ку Corner, и по­мес­ти­те еще од­ну чуть ниже ее. За­глав­ная F – один из немно­гих гли­фов, ко­то­рые мож­но об­вес­ти, ста­вя толь­ко точ­ки Corner и Tangent. Про­дол­жай­те до­бав­лять точ­ки Corner вез­де, где ме­ня­ет­ся на­прав­ление об­во­да сим­во­ла. За­кон­чив, по­ставь­те точ­ку над ис­ход­ной точ­кой. Вот и все – вы толь­ко что успеш­но трас­си­ро­ва­ли свой пер­вый глиф!

При трас­си­ров­ке гли­фа, в за­ви­си­мо­сти от спо­со­ба его ри­со­вания, мож­но по­ла­гать­ся на со­че­тание всех трех ти­пов то­чек, или толь­ко один. На­при­мер, для бу­к­вы О – и строч­ной, и за­глав­ной – доста­точ­но то­чек ти­па Curve.

Не вол­нуй­тесь, ес­ли кон­тур неплот­но при­ле­га­ет к ва­ше­му гли­фу – про­сто до­бав­ляй­те точ­ки, по­ка не за­вер­ши­те об­ход. За­кон­чив, пе­ре­клю­чи­тесь на слой Background. Кон­тур, ко­то­рый вы толь­ко что трас­си­ро­ва­ли, по­ка­зан блед­но-зе­ле­ным цве­том. Убе­ди­тесь, что кон­тур пол­но­стью замк­нут.

За­тем вернитесь на Foreground и пе­ре­клю­чи­тесь на ин­ст­ру­мент Pointer. Те­перь мож­но щел­кать на до­бав­лен­ных точ­ках и пе­ре­тас­ки­вать их, или щелк­нуть на линии ме­ж­ду дву­мя точ­ка­ми и пе­ре­та­щить ее, ес­ли на­до под­пра­вить кон­тур. На­конец, пе­ре­та­щи­те линию от­мет­ки ши­ри­ны, спра­ва, по­бли­же к об­ве­ден­но­му кон­ту­ру. Ес­ли вы на­хо­ди­тесь на Foreground, FontForge по­ка­жет линии от­мет­ки ши­ри­ны по обе сто­ро­ны от гли­фа – они на­зы­ва­ют­ся ле­вым и пра­вым ог­раничи­те­лем, LBearing и Rbearing, со­от­вет­ст­вен­но.


Со­храните готовый глиф и от­крой­те дру­гой. Трас­си­руй­те все ва­ши гли­фы, ис­поль­зуя ту же про­це­ду­ру, и, на­конец, на­строй­те пра­вый ог­раничи­тель. Для ка­ж­до­го успеш­но трас­си­ро­ван­но­го гли­фа в Font View, вме­сто крас­но­го кре­ста в его клет­ке поя­вит­ся этот глиф. Ес­ли трас­си­ров­ка ка­ж­до­го сим­во­ла вруч­ную вас раз­дра­жа­ет, аль­тер­на­ти­ва есть. Вас вы­ру­чит ин­ст­ру­мент Autotrace [Ав­то­трас­си­ров­ка], ко­то­рый лег­ко уста­но­вить из ре­по­зи­то­ри­ев ПО. По­сле уста­нов­ки щелкните на Element > Autotrace [Эле­мент > Ав­то­трас­си­ров­ка] в Bitmap Glyph View, и FontForge ав­то­ма­ти­че­­ски от­трас­си­ру­ет кон­тур за вас. Мы, од­на­ко, ре­ко­мен­ду­ем: из­бе­гай­те функ­ции Autotrace, ка­кой бы му­тор­ной ни ка­за­лась руч­ная трас­си­ров­ка.

При­менив Autotrace, вы об­на­ру­жи­те, что на гли­фе понастав­лено слиш­ком мно­го то­чек – это по­мо­га­ет FontForge от­сле­дить в гли­фе все изъ­я­ны и все из­ви­вы и по­во­ро­ты. После Autotrace вам тут же за­хо­чет­ся об­ра­тить­ся к ин­ст­ру­мен­ту Element > Simplify [Эле­мент > Уп­ро­стить] – он объ­е­динит часть из­бы­точ­ных то­чек. Есть еще и Simplify More [Уп­ро­стить да­лее] для дальней­ше­го кон­тро­ля над точ­ка­ми, до­бав­лен­ны­ми Autotrace.

Autotrace при­над­ле­жит к тем функ­ци­ям, где ваш про­бег мо­жет варь­и­ро­вать­ся, так как пол­но­стью за­ви­сит от спо­со­ба ри­со­вания гли­фов. Глав­ная про­бле­ма с Autotrace в том, что кон­ту­ры по­лу­ча­ют­ся пе­ре­се­каю­щи­ми­ся. Нам сле­до­ва­ло от­ме­тить, что вы долж­ны ри­со­вать внешние кон­ту­ры по ча­со­вой стрел­ке, а внут­ренние – про­тив. Пе­ре­се­каю­щие­ся кон­ту­ры возника­ют, когда FontForge не мо­жет оп­ре­де­лить, идет ли об­ход по ча­со­вой стрел­ке или про­тив. А с Autotrace поч­ти все на­ши гли­фы со­об­щи­ли о пе­ре­се­чении кон­ту­ров. В та­кой си­туа­ции FontForge шрифт ри­со­вать не уме­ет.

Для гли­фов с кон­ту­ра­ми и по ча­со­вой стрел­ке, и про­тив (A, O, P, D и т. д.) при­го­дит­ся функ­ция Correct Direction [Вер­ное на­прав­ление], при­чем хо­ро­шей прак­ти­кой бу­дет применить ее ко всем гли­фам. В окне Font View вы­бе­ри­те все от­трас­си­ро­ван­ные гли­фы и на­жми­те Element > Correct Direction. При необ­хо­ди­мости FontForge ав­то­ма­ти­че­­ски скор­рек­ти­ру­ет на­прав­ления во всех гли­фах.

Ес­ли вы пред­ва­ри­тель­но соз­да­ли на­прав­ляю­щие линии и при­леж­но вго­ня­ли все свои гли­фы в со­от­вет­ст­вии с ними, у вас по­лу­чат­ся гли­фы унифи­ци­ро­ван­но­го раз­ме­ра.

FontForge со­хра­ня­ет шрифт в сво­ем соб­ст­вен­ном фор­ма­те .sfd. Ре­ко­мен­ду­ем со­хранить шрифт по­сле ка­ж­до­го из­менения, внесен­но­го в сим­вол, хо­тя бы и три­ви­аль­но­го.

Се­мей­ст­во шриф­­тов

Но это еще не конец. На­до обу­чить на­ши гли­фы де­лать­ся жир­ны­ми или кур­сив­ны­ми. Чу­дес­ным об­ра­зом это не при­ну­дит вас ри­со­вать сим­во­лы бо­лее тол­стой ки­стью или с на­кло­ном. FontForge пред­ла­га­ет раз­лич­ные эф­фек­ты, при­год­ные для бы­ст­ро­го пре­об­ра­зо­вания шриф­та в раз­ные сти­ли, будь то по­лу­жир­ный или кур­сив.

Для на­ча­ла вы­бе­ри­те все гли­фы в шриф­те и на­жми­те Element > Styles > Change Weight [Эле­мент > Сти­ли > Из­менить вес]. В этом диа­ло­ге несколь­ко по­лей, и для вы­ра­бот­ки луч­ше­го по­лу­жир­но­го на­чер­тания про­буй­те на­строй­ки, по­ка не добь­е­тесь и­деала.

Пер­вое по­ле, Embolden By [Уси­лить на], оп­ре­де­ля­ет ве­ли­чи­ну, на ко­то­рую ка­ж­дый штрих дол­жен раз­рас­тись. Для вы­бо­ра ме­то­да, ко­то­рым бу­дут утол­щать­ся гли­фы, пре­ду­смот­ре­ны ра­дио­кноп­ки. Луч­шая – LCG, так как она утол­ща­ет гли­фы, остав­ляя их в за­дан­ных границах. За­кон­чив, со­храните шрифт –лучше под именем, от­ра­жаю­щим при­менен­ный стиль. Ска­жем, ес­ли ваш ба­зо­вый шрифт на­зы­вал­ся MyFont, то жир­ный шрифт сто­ит на­звать MyFont-bold.

Кур­сив, од­на­ко, соз­дать го­раз­до сложнее. Есть лю­ди, ко­то­рые счи­та­ют – и ав­тор FontForge, по­хо­же, с ними со­гла­сен – что ес­ли вам ну­жен иде­аль­ный кур­сив, его на­до ри­со­вать са­мим. Тем не менее, мож­но пе­рей­ти на Element > Styles > Italics [Эле­мент > Сти­ли > Кур­сив] и по­иг­рать с на­строй­ка­ми, обес­пе­чив сво­ему шриф­ту под­хо­дя­щий на­клон. За­кон­чив, со­храните шрифт под именем MyFont-italics, аналогично варианту с полужирным шрифтом.

В по­ряд­ке аль­тер­на­ти­вы диа­ло­го­во­му ок­ну Italics ре­ко­мен­ду­ем за­гля­нуть в Element > Styles > Oblique [Эле­мент > Сти­ли > Скос]. Еди­но­го пре­об­ра­зо­вания в кур­сив для всех гли­фов сра­зу нет – при­хо­дит­ся тща­тель­но оп­ре­де­лять, как луч­ше за­кур­си­вить ка­ж­дый глиф; а диа­лог Oblique тре­бу­ет толь­ко ука­зать угол, на ко­то­рый вы хо­ти­те на­клонить гли­фы.

Соз­дание шриф­та

По­следний шаг за­клю­ча­ет­ся в соз­дании уста­нав­ли­вае­мо­го шриф­та, и вы мо­же­те сде­лать это, на­жав File > Generate Fonts [Файл > Соз­дать шриф­ты]. Вы­бе­ри­те тип шриф­та, ко­то­рый хо­ти­те соз­дать, будь то TrueType, OpenType, SVG и т. д., ука­жи­те имя и на­жми­те кноп­ку Save [Со­хранить] в нижней ле­вой час­ти диа­ло­го­во­го ок­на Generate Fonts.

Имя, ука­зан­ное здесь, нуж­но толь­ко что­бы от­ли­чить файл шриф­та. По­сле уста­нов­ки шрифт бу­дет ото­бра­жать­ся с тем именем, ко­то­рое вы ему да­ли в FontForge под Element > Font Info. Итак, ес­ли вы на­зва­ли шрифт MyFont, но со­хранили его как YourFont.ttf, по­сле уста­нов­ки вы най­де­те его в спи­ске шрифтов LibreOffice как MyFont.

Для уста­нов­ки шриф­та зай­ди­те в ка­та­лог, где вы его со­хранили, и два­ж­ды щелкните на нем мы­шью. Боль­шин­ст­во ди­ст­ри­бу­ти­вов ав­то­ма­ти­че­­ски уста­но­вит шрифт за вас. Ес­ли вам по­ка­за­лось, что шрифт ну­ж­да­ет­ся в до­ра­бот­ке, про­сто уда­ли­те его из ка­та­ло­га ~ /.fonts.

А раз уж так лег­ко соз­да­вать, уста­нав­ли­вать и уда­лять шриф­ты, вы мо­же­те генери­ро­вать шрифт на раз­лич­ных эта­пах раз­ви­тия и про­ве­рять, как он вы­гля­дит. |

Персональные инструменты
купить
подписаться
Яндекс.Метрика