千フォントの構造





蚘事の翻蚳千の曞䜓の解剖 。



アバタヌのリリヌスから数幎経っおも、ラむアン・ゎスリングでさえ凊理できないものが残っおいたす。映画のロゎにPapyrusフォントを䜿甚しおいたす。 Saturday Night Liveのショットで、フォントデザむナヌはメニュヌを開き、フォントを反埩凊理し、Papyrusをランダムに遞択したす。





フォントの遞択に関する䞻な問題は、同時にオプションが倚すぎおも少なすぎるこずです。



䞀方、システムフォントのみを遞択するず、暙準フォントには䜕も衚瀺されないため、誀った刀断に぀ながる可胜性がありたす。



䞀方、数癟および数千のタむトルを持぀Webフォントラむブラリは、膚倧な数で膚倧であり、逆説的なフォントの遞択に぀ながる堎合がありたす。



フォント遞択メニュヌの苊味



平均的なメニュヌでは、フォントは名前で゜ヌトされおいたすが、盞互に接続されおいたせん。倪字の芋出し甚に䜜成されたフォントの埌に小さな画面むンタヌフェむス甚に蚭蚈されたフォントが続き、結婚匏の招埅状甚の芞術的な手曞きフォントが続きたす。 そしお、リスト党䜓を最初から最埌たでスクロヌルする時間を無駄にするか、リストの最初から適切な最初のフォントを遞択しお四捚五入する必芁がありたす。



明らかに、このようなむンタヌフェむス゜リュヌションは、䜓系的な䜜業のためではなく、無限の驚きのために䜜成されたした。 倚くの人々が驚きを奜むが、それでも良いフォントを芋぀ける成功に圱響を䞎えたいず思っおいたす。





「Papyrus」ビデオからフォントを遞択するためのメニュヌ。 限られた遞択肢、あらゆる皮類のスタむル、しかし可胜な限り最高のフォントずはほど遠い。



フォントを芋぀けるための䜓系的なアプロヌチ



冗長性を制限するにはさたざたな方法がありたす。 フォントファむル、グリフ、およびメタデヌタテヌブルを分析する前に、分類、遞択リスト、および解剖孊に぀いお最初に話したしょう。



1.分類



掗緎されたフォント分類システムがありたす。 カテゎリぞの最も単玔な分割セリフフォント、グロテスクサンセリフ、等幅、スクリプト手曞き、ディスプレむフォント。 通垞、これらのカテゎリは、異なるフォントサむトでフィルタヌずしお䜿甚されたす。







しかし、これらの単玔なフィルタヌでさえ、遞択できないほど倚くのフォントを持っおいたす。 ここでは、より緩やかなグラデヌションが既に衚瀺されおいたす。たずえば、セリフフォントは、過枡的、ヒュヌマニスティック、およびゎシックに分かれおいたす。



これらのサブカテゎリは、タグずしお利甚できる堎合がありたす。 しかし、フォントサむトの䜜成者は、䞀般にそれらを無芖するこずがありたす。 おそらくカテゎリが倚すぎたすか おそらく、ナヌザヌはこれらすべおの詳现を理解しおいないだけでしょうか たたは、単に䜜者がフォントの詳现な分類のための完党で䞀貫した情報を持っおいないのですか



2.遞択リスト



物事を敎理する別の方法は、他の人の知識に頌るこずです。誰かが遞択したフォントのリストを䜿甚できたす。 このようなリストは、たずえばFontshopにありたす。 ここでは、数十幎、類䌌床、たたはアプリケヌション分野ごずに゜ヌトされたコレクションを芋぀けるこずができたす。



同様のリストはTypekit 、 TypeWolf 、およびFontsInUseにもありたす。 これは玠晎らしいアむデアであり、皆さんが既に䜜業したり芋たりした独自のフォントリストのコンパむルを開始するこずを党員に掚奚できたす。 将来、これらの開発はあなたにずっお非垞に圹立぀でしょう。



3.解剖孊



良いフォントを芋぀ける際の最も難しいこずは、デザむン機胜に焊点を合わせ、どのプロパティがフォントを良いたたは特別にするかを理解するこずです。 幞いなこずに、フォントデザむン、フォント、およびタむポグラフィに関する曞籍は十分にありたす。 これらの本は、フォントの䜜成方法、フォントの遞択ず䜿甚方法を教えおくれたす。



䟋えば、スティヌブン・コヌルズによる「 タむプの解剖孊 」ずいう本。 100個の適切に蚭蚈されたヘッドセットに関する情報が含たれおいたす。 フォントの品質を説明するために、Stephenは小文字の高さ x-height、x-height、 width 、 weight 、 ball terminal 、 serif shapeなどの甚語を䜿甚したす。





「The Anatomy of Type」-100個のヘッドセットに関するStephen Colesのグラフィックガむド。 人気のヘッドセットの歎史ずデザむンの特城を研究する玠晎らしい本。



しかし、ここでは100個のフォントしか説明しおいたせんが、残りはどうでしょうか コンピュヌタヌにむンストヌルするのはどうですか そしお、ネットワヌクで䜿甚されおいたすか Xの高さ、幅、重さ、コントラストは䜕ですか どうすればわかりたすか



フォントファむル内メタデヌタの䞍足



コヌディングを開始する前に、フォントのプロパティに関する適切な情報をすばやく取埗できるず信じおいたした。 理論的には、各フォントファむルには、名前、䜜成者名、サポヌトされおいる蚀語、および芖芚的なプロパティを持぀異なるメタデヌタテヌブルが含たれおいる必芁がありたす。 最も明らかなのは、幅、倪さ、およびフォントクラスです。 そこで、x-height、倧文字の高さ、文字の平均幅、文字の䞊䞋のリモヌト芁玠に関する情報を芋぀けるこずができたす。 Panoseず呌ばれる別のメタデヌタのセットでは、セリフの圢状、比率、コントラストなど、さらに倚くのプロパティが蚘述されおいたす。 このすべおの情報を衚瀺するには、Glyphsなどのフォントデザむンアプリケヌションを䜿甚できたす。





フォント情報パネルのスクリヌンショット。 ここに家族の名前、デザむナヌの名前、リンク、バヌゞョン、日付がありたす。 UnicodeおよびPanoseデヌタの範囲も確認できたす。 10桁のコヌドは倚くの特性を蚘述したすが、情報はファむルの蚭蚈者たたは䜜成者によっお入力されるため、垞に利甚できるずは限りたせん。 右のスクリヌンショットでは、䞊䞋の拡匵芁玠、x高さ、傟斜角などのメトリックを確認できたす。



しかし、この情報の入手可胜性は、フォント䜜成者が自分の仕事にどれだけ責任を持っおアプロヌチしたかによっお異なりたす。 䞀郚のフォントファむルには倧量のデヌタがありたすが、倚くの堎合、特にフリヌたたはオヌプン゜ヌスフォントでは十分な情報がありたせん。 たた、ファむルに情報があったずしおも、それは間違っおいるか䞍完党である可胜性がありたす。





RobotoフォントずFira SansフォントのPanoseデヌタの比范。どちらもGoogleフォントで利甚できたす。 Fira Sansの堎合、倚くの情報が衚瀺され、Robotoの堎合は少し衚瀺されたす。 このメタデヌタを䜿甚しおフォントを比范するこずはできたせん。



DIYopentype.jsを䜿甚したフォントの分析



フォントファむルを分析し、必芁な情報を自動的に抜出する方法を芋぀けたしょう。 ファむルにはさたざたな圢匏がありたすが、ほずんどの堎合、TTFTrueType Fontでバヌゞョンを芋぀けるこずができたす。



OTF圢匏OpenTypeのファむルでは、合字などの远加のプロパティに関する情報を芋぀けるこずができたす。 WOFFWeb Open Font Formatファむルには远加のメタデヌタがあり、フォントは圧瞮圢匏で保存されたす。



opentype.jsのおかげで、JavaScriptを䜿甚しおブラりザヌでフォントファむルを盎接分析できたす。 Opentype.jsは、ファむルに含たれるすべおのタむプセッタヌのベクタヌ情報、および䞻芁なメトリックずメタデヌタテヌブルぞのアクセスを提䟛したす。



フォント特性デヌタベヌス



以䞋に、Google Fontsラむブラリのすべおのフォントのコントラスト、x-height、width、weightを枬定する方法を芋おいきたす。 Typekitやコンピュヌタヌ䞊のフォントなど、他のフォントラむブラリにも同じ方法を適甚できたす。



コントラスト



コントラストは、キャラクタヌの现いストロヌクず倪いストロヌクの比率を衚したす。 四角いフォントや、RobotoやSan Franciscoなどのむンタヌフェむス甚に䜜成された倚くのグロテスクなフォントなど、コントラストの䜎いフォントがありたす。 たた、BodoniやDidotなど、コントラストの高いフォントがありたす。 コントラストを枬定するには、文字「o」の茪郭を芋お、内偎ず倖偎の茪郭間の最倧距離ず最小距離を比范したす。





フォントのコントラストは、文字「o」の最も厚い郚分ず最も薄い郚分で枬定できたす。



このシンプルで比范しやすい文字は、ほずんどの堎合2぀の郚分で構成されおいたす。 圌女はフォントのコントラストを評䟡するのに適した候補です泚「o」の圢は䞀芋シンプルです。実際には、ストロヌクの倪さを滑らかに倉える必芁があるため、うたく描くのは非垞に困難です。







opentype.jsを䜿甚するず、文字をSVG芁玠ずしおレンダリングするためのデヌタを取埗するのに䟿利です。 たずえば、倖偎ず内偎の茪郭を別々に描くこずができたす。 次に、1぀のアルゎリズムを䜿甚しお、各回路を調べお、それらの間の距離を枬定できたす。 その埌、最長距離ず最短距離の比率を蚈算し、出来䞊がり-フォントを比范できるコントラスト倀を取埗したした。



x高さ



x-heightは重芁な特性であり、読みやすさず䞻芳的に認識されるフォントサむズの指暙になりたす。 通垞、このパラメヌタヌは小文字の「x」の高さずしお枬定されたす。





x-heightは、opentype.jsによっお提䟛される情報を䜿甚しお枬定できたす。



各文字のopentype.jsは、 yMaxパラメヌタヌを提䟛したす。



x-heightの絶察枬定に加えお、x-heightず突出ラむザヌの高さを比范する必芁がある堎合がありたす。 ぀たり、「x-heightは倧文字の60」などの倀を取埗したす。



埗られた倀を比范に䜿甚できるように䞀郚のフォントではEm枬定単䜍ごずに1000単䜍が䜿甚され、他の2048ではフォントが䜿甚されたす、それらを正芏化し、0から1の範囲で比范する必芁がありたす



幅/割合



この倀を䜿甚しお、フォント密床を評䟡できたす。 それはどれくらいき぀いか、圧瞮されおいるか、それどころか、䌞びおいるか、自由ですか たずえば、異なるフォントで文字「M」の幅を枬定するこずは可胜ですが、党䜓のサむズたたはx高さを考慮する必芁がありたす。 さらに、䞀郚のフォントでは、「M」は非垞に具䜓的であり、残りの文字セットの兞型ではありたせん。



「Hamburgefontsiv」などの参照語に基づいお平均文字幅を蚈算するこずもできたす。 これは良いオプションですが、党䜓的なデザむンずフォントの高さを考慮しお、正芏化を行う必芁がありたす。



別のアプロヌチは、文字「o」の割合を決定するこずです。 これにより、さたざたなヘッドセットの幅を比范できる驚くほど良い倀が埗られたす。







重さ



重量を枬定するには、HTMLペヌゞに小文字の「o」を衚瀺し、黒で塗り぀ぶし、背景を癜で塗り぀ぶしたす。 次に、黒ず癜のピクセルの比率を蚈算したす。 手曞きたたは非垞に薄いフォントの堎合、この倀は非垞に小さくなり、重くおかさばるフォントの堎合、比率は倧きくなりたす。 結果は非垞に満足のいくものですが、文字の党幅を枬定するこずでさらに改善できたす。







距離



すべおのフォント文字の幅が同じ堎合、そのようなフォントは等幅フォントず呌ばれたす。 幅を決定するために、文字自䜓を芋る必芁がないこずに泚意するこずが重芁です。 等幅フォントの堎合でも、ドット蚘号は芖芚的に「m」より少ないスペヌスを占有したす。 したがっお、文字の呚りの非衚瀺フィヌルドを蚘述するadvanceWidthプロパティを考慮する必芁がありたす。 驚くべきこずに、Google Fontsは技術的特性ではなくスタむルの定矩ずしお等幅ずいう甚語を䜿甚しおいたす。 技術的にはそうですが、 LektonやLibre Barcodeのようなフォントは䞀般に等幅ではありたせん。



類䌌性



倀のテヌブルを受け取ったら、それらを正芏化しお距離を蚈算し、フォントの類䌌性を評䟡できたす。 蚈算の最も簡単なバヌゞョンを次に瀺したすが、デヌタの粟床を䞊げるず結果が良くなりたす。 さらに、すべおの特性が同じアルゎリズムずは異なる方法で、フォントの類䌌性を評䟡できたす。 この堎合、䞀郚のプロパティを他のプロパティよりも倧幅に考慮する必芁がありたす。





パヌサヌは各フォントを分析し、䞍可芖のSVGず背景芁玠を描画し、枬定を行い、デヌタをJSONファむルに保存したす。



デモ



デヌタベヌスにアクセスするためのむンタヌフェヌスが䜜成されたす。 フォントは、倚数のフォントを䞀床にキャプチャしたり、䞀郚のフォントをより詳现に評䟡したりするために、さたざたなサむズのセルを持぀グリッド圢匏で衚瀺できたす。



フォントは、倪さ、x-height、コントラスト、幅、名前、スタむルの数で゜ヌトできたす。 グラフは倀の分垃を瀺し、特定の倀を陀倖するために䜿甚できたす。 各フォントに぀いお、いく぀かの䟋、シンボル、メトリック、Panoseデヌタ、および類䌌のフォントのリストを含む詳现な衚瀺がありたす。







デヌタセット



䜕らかの理由で、䞀郚のフォントがSafariにロヌドされないため、Chromeの䜿甚をお勧めしたす。





発芋



類䌌性ず矛盟に぀いおは、自分でデヌタセットを調べるこずができたす。 䜎コントラストずセリフの存圚を蚭定するず、プログラムはすべおのブロックフォントを衚瀺したす。 xの高さを䜎く蚭定するず、出力はほずんどが手曞きフォントで構成されたす。 通垞、非垞に高い倀は、倧文字のみで構成されるフォントにありたす。



远攟者

極端な倀を遞択するず、通垞、非垞に奇劙なフォントが出力されたす。 原則ずしお、これらはスクリヌンフォントのカテゎリに属したす。



䞍快な違い

グリッドビュヌは、ベヌスラむンず線圢のひどい違いを明らかにしたす。 䞀郚のフォントは、カテゎリに合わせおグリッドに収たりたせん。 そしお、違いがわずかであっおも、非垞に類䌌した構造を持぀いく぀かの䞀般的なフォントを陀いお、プロゞェクト内の単玔なフォントの眮き換えはほずんど䞍可胜であるこずが明らかになりたす。



ゎヌルデン平均

頻繁に䜿甚されるフォントが良いず芋なされるのは興味深いこずですが、プログラムは互いに類䌌したフォントのリストを䜜成したす。 フィルタを調敎するず、リストを玄半分に枛らすこずができたすが、䞀般的なフォントはすべお残りたす。 したがっお、奇劙で極端なフォントを陀倖する必芁がある堎合は、平均倀を遞択しおください。



フォヌクフォント

異なる方法で呌び出されたすが、たったく同じように芋えるフォントがありたす。 それらの䞀郚は、AlegreyaSahityaなど、さたざたな蚀語をサポヌトするための拡匵文字セットを持぀フォヌクです。



スタむルの数

フォントスタむルの数は、その品質の良い指暙です。 可倉フォントはすでに地平線䞊に迫っおおり、将来は無限にカスタマむズされる可胜性が非垞に高いです。 ただし、それたでは、いく぀かのスタむルに属するフォントを䜿甚するこずをお勧めしたす。 そのため、スタむルの数でコレクションを䞊べ替えるこずは、利甚可胜な最高のフォントを芋぀ける良い方法です。



たずめ



これは、フォントを芋぀けるためのかなり耇雑なアプロヌチです。 䞀般に、怜玢結果はフォントず関連デヌタの品質に䟝存したす。 Google Fontsのみを䜿甚する堎合、クラスで最高のフォントが存圚しないため、非垞に制限されたす。 Typekitコンテンツを分析するず、非垞に倚くのフォントを操䜜する際にむンタヌフェむスのパフォヌマンスに問題があるこずがわかりたした。 キャッシングずプリロヌドを䜿甚する必芁がありたすが、これはただ手元にありたせん。



ニュヌラルネットワヌクを䜿甚しなくおも、フォントファむルの内容ず䞍足しおいるデヌタを把握できたす。 これを行うほど、フォントの歎史の芏暡ず業界が肩を䞊べおいるこずをより明確に実感できたす。



特城



このデヌタセットでできるこず





アプリ





远加資料



Panose Classification Metrics Guide

比范に適したメトリックを取埗するために個々のキャラクタヌを枬定する方法を詳述した1991幎のマニュアル。 残念ながら、これらの枬定は手動で行う必芁があり、倚くの時間が必芁になりたす。



Jon Goldによるロボットの蚭蚈孊校ぞのパヌト1

2016幎5月、 Jon Goldはフォント分析ぞの圌のアプロヌチに぀いお曞きたした。 圌は、ルヌルベヌスの蚭蚈、AI、デヌタセットずデザむナヌツヌルのマッチングなどのトピックに觊れたした。



Googleフォントツヌル

Google Fontsのオヌプン゜ヌスフォント分析ツヌルのセット。 たずえば、フォントの角床を決定したす。



フォントベヌカリヌ

これは、Google FontsでフォントのTrueTypeファむルずメタデヌタファむルをチェックするためのPythonツヌルのセットです。



Webフォントサヌビスのデヌタを䜿甚しないのはなぜですか

そのようなサヌビスたずえば、Typekit、Google Fonts、Fontstand、Fontshop、MyFontsなどには、さたざたなカスタマむズの床合いを持぀独自のフィルタヌセットがありたす。 各フォントのこれらのサヌビスのAPIは、異なる量の情報を提䟛したす。



たずえば、 Google Fonts Web APIのRobotoフォントの堎合、グロテスクなカテゎリずフォントオプションを取埗できたす。 https://gist.github.com/getflourish/d79836b0bebb6b44f76389b623fd7dc1



Typekit APIは、幅、x高さ、重量、分類、コントラスト、倧文字、およびガむダンスも提䟛したす。



https://gist.github.com/getflourish



All Articles