{"id":4464,"date":"2018-08-02T23:17:03","date_gmt":"2018-08-02T21:17:03","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=4464"},"modified":"2018-08-02T23:17:03","modified_gmt":"2018-08-02T21:17:03","slug":"creating-a-handwritten-truetype-font-in-linux-gordon-lesti","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2018\/08\/02\/creating-a-handwritten-truetype-font-in-linux-gordon-lesti\/","title":{"rendered":"Creating a handwritten TrueType font in Linux \u2013 Gordon Lesti"},"content":{"rendered":"<blockquote><p>A small tutorial that shows the creation of a handwritten TrueType font in Linux with FontForge and Inkscape.<\/p><\/blockquote>\n<p>Sorgente: <em><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\">Creating a handwritten TrueType font in Linux \u2013 Gordon Lesti<\/a><\/em><\/p>\n<p><!--more--><!--nextpage--><\/p>\n<blockquote>\n<h1>Creating a handwritten TrueType font in Linux<\/h1>\n<p class=\"clearfix blog-post-tag\"><span class=\"blog-post-meta float-right\">Mar 21, 2018<\/span> <a title=\"Tag Art\" href=\"https:\/\/gordonlesti.com\/tag\/art\/\">Art<\/a> <a title=\"Tag Inkscape\" href=\"https:\/\/gordonlesti.com\/tag\/inkscape\/\">Inkscape<\/a> <a title=\"Tag Linux\" href=\"https:\/\/gordonlesti.com\/tag\/linux\/\">Linux<\/a><\/p>\n<p>I always wanted to create a font out of my handwritten letters and in this small tutorial I will show you the way I have done it with the help of <a title=\"FontForge Open Source Font Editor\" href=\"https:\/\/fontforge.github.io\/en-US\/\">FontForge<\/a>, <a title=\"Draw Freely | Inkscape\" href=\"https:\/\/inkscape.org\/\">Inkscape<\/a> and <a title=\"GIMP - GNU Image Manipulation Program\" href=\"https:\/\/www.gimp.org\/\">GIMP<\/a>.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/handwritten_font.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a>\u00a0<span id=\"more\"><\/span><\/p>\n<h2>Writing some letters<\/h2>\n<p>Start by writing the alphabet in lower and upper case plus numerics and some special characters. Good for this job is a graph paper for example. Afterwards you scan the paper and the result should look similar to my one.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/scan.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<h2>Preparing the scan<\/h2>\n<div class=\"row\">\n<div class=\"form-group col-sm-6\">\n<p>Let us open the scan in <i>GIMP<\/i> and use the <i>Brightness and Contrast<\/i> tool under the menu point <i>Colors<\/i>. Increase the <i>Contrast<\/i> until the letters have nice shape. The hadnwritten scan should look similar to my one. Mostly black and white should be visible.<\/p>\n<\/div>\n<div class=\"form-group col-sm-6\"><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/Brightness_Contrast.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/scan_contrast.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<h2>From raster graphics to vector graphics with Inkscape<\/h2>\n<div class=\"row\">\n<div class=\"form-group col-sm-6\">\n<p>Copy the whole scan with high contrast from <i>GIMP<\/i> to your clipboard and open <i>Inkscape<\/i>. Paste the scan from the clipboard into <i>Inkscape<\/i>. Open the <i>Trace Bitmap<\/i> tool under the menu item <i>Path<\/i> while having the scan object selected.<\/p>\n<p>Use <i>Grays<\/i> under <i>Multiple scans<\/i> and set the number of <i>Scans<\/i> to <i>2<\/i>. Press the <i>OK<\/i> button afterwards and close the tool if it ready.<\/p>\n<\/div>\n<div class=\"form-group col-sm-6\"><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/trace_bitmap.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h3>Preparing the handwritten vector graphic<\/h3>\n<p>The result should be an object group with layers. Ungroup the the object group and remove the background layer. Your vector graphic should look similar to my SVG image in Inkscape.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/gordonlesti.com\/media\/post\/creating-a-handwritten-truetype-font-in-linux\/font.svg\" alt=\"\" \/><\/a><\/p>\n<h2>From SVG to a TrueType font with FontForge<\/h2>\n<p>First of all start FontForge and press the <i>New<\/i> button to create a new font.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/fontforge_new.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p>The following steps have to be repeated for every character in your font. I will show you the steps on the example character <i>A<\/i>.<\/p>\n<h3>Extract character from SVG path<\/h3>\n<p>Duplicate the characters layer by pressing <code class=\"\" data-line=\"\">Ctrl<\/code> + <code class=\"\" data-line=\"\">D<\/code> for example. Use the <i>Edit paths by Nodes<\/i> tool or just pressing <code class=\"\" data-line=\"\">F2<\/code> while having one characters layer selected. And remove every node and path that is not part of the <i>A<\/i> character. The following image shows all nodes except the <i>A<\/i> as selected before deleting them.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/inkscape_edit_path.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<h4>Simplify the character path<\/h4>\n<p>The next step is to simplify the path of the character. The tool is in the menu under <i>Path<\/i> and <i>Simplify<\/i> or just pressing <code class=\"\" data-line=\"\">Ctrl<\/code> + <code class=\"\" data-line=\"\">L<\/code>. The simplified character should look similar to my one afterwards.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/inkscape_simplify.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<h4>Paste the character path to FontForge<\/h4>\n<p>Copy the character path in Inkscape and let us open the character <i>A<\/i> in our empty FontForge font with a double click. Now paste the path of the character into FontForge. The result should similar to my one.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/fontforge_char.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<h4>Scale the character in FontForge with stable aspect ratio<\/h4>\n<p>Please select the whole path of the character with <code class=\"\" data-line=\"\">Ctrl<\/code> + <code class=\"\" data-line=\"\">A<\/code> and use the <i>Scale the Selection<\/i> tool of the toolbar. Use the scale tool with the <code class=\"\" data-line=\"\">Shift<\/code> key pressed to keep the aspect ratio of the path. Move the character to the zero line and scale it until the character fits the top boundary.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/fontforge_char_scale.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p>Afterwards you have to move the right boundary until it fits your character. Depending on your style you should keep more or less space between the boundary and the character. Close the character window and repeat the last steps for every character including the <code class=\"\" data-line=\"\">space<\/code> character.<\/p>\n<h2>Export TrueType font with FontForge<\/h2>\n<p>Your font should similar to my one afterwards.<\/p>\n<p><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/fontforge_char_scale.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><a href=\"https:\/\/gordonlesti.com\/creating-a-handwritten-truetype-font-in-linux\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/08\/font_forge_font.png?w=910&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p>Please make sure to save your font as <code class=\"\" data-line=\"\">sfd<\/code> file and after all you can export it as TrueType font via the menu item <i>File<\/i> and <i>Generate Fonts&#8230;<\/i>.<\/p>\n<h2>Your handwritten font as web font<\/h2>\n<p>There are other font formats, but normally every modern browser understands TrueType fonts. The following small example loads my font and shows you the usage of it.<\/p>\n<pre class=\" language-html\"><code class=\"\" data-line=\"\">&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;&lt;\/span&gt;style&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;\/span&gt;&lt;\/span&gt;&lt;span class=&quot;token style language-css&quot;&gt;\n&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@font-face&lt;\/span&gt;&lt;\/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;\/span&gt;\n    &lt;span class=&quot;token property&quot;&gt;font-family&lt;\/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;\/span&gt; MrPoopybutthole&lt;span class=&quot;token punctuation&quot;&gt;;&lt;\/span&gt;\n    &lt;span class=&quot;token property&quot;&gt;src&lt;\/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;\/span&gt; &lt;span class=&quot;token url&quot;&gt;url(path_to\/mrpoopybutthole.ttf)&lt;\/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;\/span&gt;\n&lt;span class=&quot;token punctuation&quot;&gt;}&lt;\/span&gt;\n&lt;\/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;\/&lt;\/span&gt;style&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;\/span&gt;&lt;\/span&gt;\n&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;&lt;\/span&gt;p&lt;span class=&quot;token style-attr language-css&quot;&gt;&lt;span class=&quot;token attr-name&quot;&gt; style&lt;\/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&quot;&lt;\/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token property&quot;&gt;font-family&lt;\/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;\/span&gt; MrPoopybutthole&lt;span class=&quot;token punctuation&quot;&gt;;&lt;\/span&gt;&lt;\/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;\/span&gt;&lt;\/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;\/span&gt;&lt;\/span&gt;MrPoopybutthole&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&lt;\/&lt;\/span&gt;p&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;\/span&gt;&lt;\/span&gt;<\/code><\/pre>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">A small tutorial that shows the creation of a handwritten TrueType font in Linux with FontForge and Inkscape. Sorgente: Creating a handwritten TrueType font in Linux \u2013 Gordon Lesti<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2018\/08\/02\/creating-a-handwritten-truetype-font-in-linux-gordon-lesti\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"link","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[72,148],"tags":[],"class_list":["post-4464","post","type-post","status-publish","format-link","hentry","category-documentations","category-fonts","post_format-post-format-link"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-1a0","jetpack-related-posts":[{"id":39,"url":"https:\/\/monodes.com\/predaelli\/2014\/09\/10\/your-own-handwriting-font\/","url_meta":{"origin":4464,"position":0},"title":"Your own handwriting font","author":"Paolo Redaelli","date":"2014-09-10","format":false,"excerpt":"Here's a nice article on how to create a TrueType font from your handwriting with your scanner, your printer, and FontForgeOk there are gratis websites like http:\/\/www.paintfont.com\/ or if\u00a0 you are lazy http:\/\/www.fontsquirrel.com\/ . There is also a \"free-as-in-freedom\" font-related site at http:\/\/openfontlibrary.org\/\u00a0","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1918,"url":"https:\/\/monodes.com\/predaelli\/2016\/11\/17\/the-latex-font-catalogue-calligraphical-and-handwritten-fonts\/","url_meta":{"origin":4464,"position":1},"title":"The LaTeX Font Catalogue \u2013 Calligraphical and Handwritten Fonts","author":"Paolo Redaelli","date":"2016-11-17","format":"link","excerpt":"Sorgente: The LaTeX Font Catalogue \u2013 Calligraphical and Handwritten Fonts","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5119,"url":"https:\/\/monodes.com\/predaelli\/2019\/01\/10\/20-best-free-handwritten-fonts-for-designers-wplook-themes\/","url_meta":{"origin":4464,"position":2},"title":"20 Best Free Handwritten Fonts for Designers &#8211; WPlook Themes","author":"Paolo Redaelli","date":"2019-01-10","format":false,"excerpt":"20 Best Free Handwritten Fonts for Designers - WPlook Themes The usual Pacifico. I also like","rel":"","context":"In &quot;Fonts&quot;","block_context":{"text":"Fonts","link":"https:\/\/monodes.com\/predaelli\/category\/fonts\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/01\/tragic.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/01\/tragic.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/01\/tragic.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/01\/tragic.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/01\/tragic.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":8219,"url":"https:\/\/monodes.com\/predaelli\/2021\/03\/05\/8219\/","url_meta":{"origin":4464,"position":3},"title":"I always welcome nice fonts\u2026","author":"Paolo Redaelli","date":"2021-03-05","format":false,"excerpt":"I always welcome nice fonts that looks like handwritten cursive. The problem is finding one that is readable when its size is around 14-18pt, or when used for normal paragraphs and not headers or titles. This Playball font seems quite feasible for this","rel":"","context":"In &quot;Fonts&quot;","block_context":{"text":"Fonts","link":"https:\/\/monodes.com\/predaelli\/category\/fonts\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":606,"url":"https:\/\/monodes.com\/predaelli\/2015\/07\/30\/creating-icons\/","url_meta":{"origin":4464,"position":4},"title":"Creating icons","author":"Paolo Redaelli","date":"2015-07-30","format":"status","excerpt":"Creating vector icons with Inkscape is fun and easy. Once you got proficient with Inkscape, of course. I forgot how much time is required to become actually productive with a new graphical tool.","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2015\/07\/Inkscape-CreateIcon-cap-en.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1840,"url":"https:\/\/monodes.com\/predaelli\/2016\/10\/25\/creating-symbol-libraries-in-inkscape-youtube\/","url_meta":{"origin":4464,"position":5},"title":"Creating symbol libraries in Inkscape &#8211; YouTube","author":"Paolo Redaelli","date":"2016-10-25","format":"video","excerpt":"Actually it's easy when someone explain it. I found it slightly amusing to have to learn it from a video, just like a rookie","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/4464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=4464"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/4464\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=4464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=4464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=4464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}