FontStruct Tutorials

Share:
by zephram

Download disabled

The designer of this FontStruction has chosen not to make it available for download from this website by choosing an “All Rights Reserved" license.

Please respect their decision and desist from requesting license changes in the comments.

If you would like to use the FontStruction for a specific project, you may be able to contact the designer directly about obtaining a license.

This is an unofficial forum I have made for FontStruct tutorials and educational materials. Want to know how to do something, or how to make a certain style or effect? This is the place to ask. I am not part of staff, and am far from being the most advanced user on here, but will pass on whatever I can. 

I have been writing an FS video series for some time, but it has proven very time-consuming to make the series as comprehensive (and as high-quality) as I would like. It has also occurred to me that I can teach a lot through simple text and graphics. This is my attempt to create a knowledge hub for FS where all the good stuff is in one place. If you make a tutorial or expand on mine in some way, you're welcome to post those here as well.

Please keep the discussion topical. This page is about tutorials, requests and discussions for them, etc. Idea Soup is more of a free-for-all and anything FS-related is accepted there. Idea Soup is also a good place to discuss tutorial ideas, since we can work out exactly what needs to be taught there without clogging the comment section here. (There is a limit on the number of comments this page can have, right?)

This page is open to users of all languages, but we may have to use Google Translate to answer you. Sorry in advance for any bad translations :D

*

Related Forum: FontStruct Idea Soup

The font used for these forums is Tangereen 2.

Info: Created on Wed, 12th June . Last edited on Tue, 9th July.
License Creative Commons
Categories:
  • -
Sets:
Tags:
Fave Tags:
  • -

53 Comments

No.1: Shortcuts

Comment by zephram Thu, 13th June

No.2: Stacking

Comment by zephram Thu, 13th June

No.3: Composites

Comment by zephram Thu, 13th June

Other subjects to make tutorials on: Brickswaps, Filters, Nudging, Pixel Optimization

Lemme know if you have any suggestions, folks!

Comment by zephram Thu, 13th June

no brickswap is evil.

Comment by JingYo Thu, 13th June

No.4: Brickswaps

Comment by zephram Thu, 13th June

No.5: Filters

Comment by zephram Thu, 13th June

No.6: Nudging

Comment by zephram Fri, 14th June

That about covers the basics - or, the basics of FS techniques, at least. Teaching how to do typography or art is far beyond the scope of this...

Now, I will start delving into more advanced subjects. Since these subjects are often tied to a style, or to an individual way of constructing glyphs, the information will be more complicated to present. That presentation might take me a while to figure out. It will probably be a graphical one like those I've already posted, since this carries several advantages over video and PDF.

Comment by zephram Fri, 14th June

FS Expert Tips: Nine hints for saving time and work

Comment by zephram Fri, 14th June

Absolutely wonderful tutorials. You have summed up the very essence of fontstructing. Thank You.

Comment by Frodo7 Sat, 15th June

Cheers, @Frodo7!

I felt that something like this needed to be done. Lots of information is out there, but it's scattered among years of blog posts and projects by different users. If only one person manages to learn something they can use from this page, I'll be satisfied. :D

Comment by zephram Sat, 15th June

Even Frodo is resurrected from the depths of Offline to thank you! (So am I. Thank you)

Comment by Cookielord Sat, 15th June

I didn't realise you could erase in lines and areas, or that you could duplicate all glyphs to Latin accents; that should come in invariably useful in navigating the Fontstruct suite. I could really use a tutorial on spacing, kerning and eliding ligatures; how do I prevent glyphs from overlapping while maintaining consistent spacing, and modify glyphs depending on their collocation with certain other glyphs?

Comment by Dante (Dantemwalt) Sat, 15th June

@Dantemwalt: Sure, I can make a tutorial about spacing. It's something that can be used to create not only good text spacing, but lots of novel effects and patterns. I'm working on a script for it now. :D

Comment by zephram Sat, 15th June
Comment by Sed4tives Sat, 15th June

Here is the tutorial:

A sed4-Type guide to ligatures

Comment by Sed4tives Sat, 15th June

Because Spacing is part of the artistic quality a font has, I'm not going to teach a "right" or "wrong" way to do it. I think it is best to start teaching about spacing by example. Here's an image with 5 examples of ways I have used spacing. The keys here are the vertical baseline, the letter width, and the value in the Spacing Dialog (shown in the Preview panel). The baseline is fixed, the width is adjustable, and the Spacing Dialog values are applied to all glyphs. The lowest spacing you can set in the Dialog is -1, so if you need more negative spacing than that, it must be applied to each individual glyph you want it on (or, you must move the glyphs to the left, as the case may be).

Kerning, another useful way to control spacing, is a more involved art... I'm still working on a way to condense that knowledge into a tutorial...

*

Links to the referenced designs (feel free to clone them and pick them apart):

Domino FarmEsperhandGremlin SkinsCybernetic LawnmowerEglantine

Eglantine isn't worth picking apart; its graphic explains everything there is to know about that technique. Finally, there are a few other ways to correct spacing and leading (such as with Filters), but the results they achieve can usually be reached through simpler means. These aspects of spacing, along with the artistic considerations of spacing itself, are highly abstract in nature so it is probably best to work them out through experience.

Comment by zephram Sat, 15th June

Most of the above techniques can also be expanded on or altered. For example, you can make a font like Gremlin Skins using patterns of varying width. In that case you would use a Global Spacing of 0 (not monospaced) and then drag the letter width for each pattern to its right edge.

There are a LOT of minor technique variations that will go unmentioned. This is so that I write tutorials instead of books. Besides, I gotta leave some room for users to experiment on their own. :D

Comment by zephram Sat, 15th June

In addition to what zephram wrote above, I also propose two other solution for this that doesn't require to replace actual glyphs within the grid, in case u absolutely don;'t want to or simply can't due to whatever given reason. A good example would be in the case of vintage game font revivals, and u want to remain faithful to the
original source font.

And would also prevent the comma from touching any glyphs located in the following line of text (as most likely is the case in Zephram's technique I think?).

But this is to navigate to the Menu>Advanced>"Unicode Letter Sets" and turning this on. Then go the the Unicode block named  "High private use and surogates" in the bottom left menu within the editor, this set is located near the bottom of that list. And make a glyph in here with just a single brick that occupies the same grid row as is done in Zephram's approach.

Another Technique for getting additional vertical space is to navigate to the Menu>View>"Filters" and change the values for Horizontal & Vertical grid scale to 1,01 for both. This adds the exact amount of a square grid unit of vertical space to the font as well,  Just keep in mind that this values should always be equal in order to maintain the aspect ratio for your font!

But I cant tell how this last technique would translate to the pixel optimization of the font in fact, since I have very little knowledge about pixel optimized fonts in general. Since this last techique is changing the initial font size as well.

Comment by Sed4tives Sat, 15th June
Comment by Sed4tives Sun, 16th June

@Sed4tives: Interestingly, with Eglantine I found a way to trick Notepad into calculating a different original size for the font. Notepad ordinarily does not support decimal values for font sizes, and Eglantine's original size is 4.5, but it looks pixel-perfect anyway. I didn't have to edit the metrics in software - it works like that right after being downloaded from FS. Sometime soon, I'm gonna give this a technique a go with other text editors. :D

Comment by zephram Sun, 16th June

This is all very useful, not to mention bewildering lol. Thanks.

Unfortunately, my current issue still persists. A font of mine is completely irregular. I need only certain glyphs to be indented and others to be inset, but I need to know which letters should I preliminarily adjust before kerning to optimise efficiency? Thanks again.

Comment by Dante (Dantemwalt) Sun, 16th June

Well, there is no one true rule set for this. It's based on too many abstract things and things which are specific to the user. Try not to overthink it. The main rule is that whatever method you use (kerning, spacing adjustment, or modifying the design) is consistent.

Comment by zephram Sun, 16th June
Comment by zephram Sun, 16th June

As seen above, kerning efficiency is very much a matter of being able to apply a consistent value to the pairs. This is especially true in the case of negative kerning values (since you cannot type a - into that dialog and must copy-and-paste your -5 to duplicate it elsewhere). This is as efficient as it gets.

(link to example struction removed - check out Dantemwalt's Anglican textualis instead)

Because the project used for the above example lets NOTHING project to the left, the relationships between letters are more constant, allowing the -5 value to be used on practically all of the f* and *j pairs.

The rest is specific to your design. The ratios and proportions you set, the lengths of lines, the sizes of serifs and brush strokes, all factor in to how a font is spaced and kerned.

Comment by zephram Sun, 16th June

Continuing on this subject:

This Combination Generator is very good for creating kerning tables. Feed it all the glyphs that you want to kern and it will generate the pairs. Then, use your text editor to turn this into a table where each "master letter" has its own line. Then, you can paste that into the Preview panel and scroll to see how the rows look.

Some letters tend to be more problematic than others (f, j, r, v) and you'll likely want to work on those rows first. Look for the rows with the most drastic problems and the greatest number of problems and work on them first. By eliminating the common problem pairs, you will make your font more useable right now. You can then split up the rest of the kerning work so it's less taxing to perform, and work on it over a larger span of time, while still having a very useable font since you already kerned the common pairs.

Comment by zephram Sun, 16th June

In addition to the comment by Zephram's above I like to provide another similar tool, but more aiming at creating repetitive strings of type. Very helpful for making type samples that are meant to showcase the kerning. But also very helpful to easily spot troublesome spots that need adjustment.

Stringmaker

Comment by Sed4tives Sun, 16th June

And here is a multi-language dummy text generator that also features a number of typographic features, such as the option for repeating custom kerning pairs.

Just Another Test Text Generator

Comment by Sed4tives Sun, 16th June

(the post this is responding to got deleted, along with a few others in this thread)

Cheers. I have managed to type the - fast before, but it doesn't always work for me. A browser issue, maybe? Regardless, copy/pasting is always gonna be faster and more reliable. Remember that this is something the user may need to do thousands of times in a row, or more. They might also be copying exact decimal values such as -4.32109, and it's just better to paste values like that.

Same goes for adding - to a number. Doesn't work for me. So when I need to set a negative number, I either drag the slider to the negatives and edit that, or just type -1 in the search box and then copy/paste that.

Comment by zephram Mon, 17th June

Welp, FS ate my comment. Here it is again...

* BLOCK JUMPING *

This tutorial is about a work-saving technique which I call "block jumping".

To put it simply: FontStruct has two different ways of organizing the glyphs into blocks. There are several glyphs that exist within two different blocks, and by having the right glyph selected when you enable or disable Unicode Letter Sets, you can have the editor instantly transport you to another block. This saves you the time and effort of navigating the drop-down list to select a block, and since a given glyph always transports you to the same spot within the destination block, you hunt less for the spot where you want to be. It sounds minor, but it can save you a LOT of grief.

Jumps I commonly use:

Basic Latin <-> General Punctuation
‘ ’ “ ”

More Latin <-> General Punctuation
† • … „ ‚ ‹ ›

More Latin <-> Currency Symbols

Google Fonts Basic -> Latin Extended A
ı

These jumps work with the Google Fonts Basic band as well - you can jump from there. But, you cannot move back to Google Fonts Basic this way. If you try, you'll probably end up in Basic Latin or More Latin.

Finally, any glyph which is present in the Unicode set, but NOT in the standard FS set, will transport you back to Basic Latin when you select it and disable Unicode Letter Sets. This is probably the only jump you'll be able to use while editing the non-Latin languages.

Comment by zephram Mon, 17th June

I will be gone for a few days, but am glad to answer any questions I see when I get back. I hope this page is informative for people. This seemed like the best way for me to teach without using video. Video is a lot harder to make, and my teaching style causes me to ramble a lot in video. I don't want to overwhelm people with too many options or too many things to consider at once, which is why I've made these tutorials the way I have. Feedback on the tutorials is appreciated as well!

Comment by zephram Mon, 17th June

The Game Recreations set curated by redux and Goatmeal has plenty of Nintendo-related fonts.

Comment by zephram Tue, 18th June
Congratulations! FontStruct Staff have deemed your FontStruction worthy of special mention. “FontStruct Tutorials” is now a Top Pick.
Comment by Rob Meek (meek) Thu, 27th June

Thanks so much for the TP! Thank you also for clearing up the comment section. 

I haven't forgotten this page, it just takes longer to do advanced tutorials. I am still trying to come up with just the right kind of design, the one that yields the most opportunities to illustrate different methods of solving problems.

I am still taking tutorial-related requests too, of course!

Comment by zephram Thu, 27th June

He does, I'm sure, also do we know (re)composite a composite brick is impossible! ;)

Comment by Sed4tives Fri, 28th June

Cv tu fais quoi Kisendo 

Comment by Wolfy5525 Wed, 24th July

Thank you for this forum. I just started reading it (now that I found time lol), so I'm not sure if you've covered it yet, but how do you give a letter a slight curve?

Comment by apostle92627 Wed, 7th August

He did not, and this actually can be one of the most tricky things in all of Fontstruct when you want to make truely custom curvatures and for example stroke width modulations or transitions.

There are two main techniques to do this, one is based on letter designs with large grid dimensions, and is sometimes called a Faux Bezier approach. Since it is faking Bezier curvatures. This technique is done brick by brick with numerous slightly changing custom composited sloped bricks that together making a curving transition.

The other technique is meant to be applied in small grid dimensions, and is far from fail prove. Also this one is the hardest of the two and requires a very high skilled fontstrctor to pull off well! But done right this gets closest to a true Bezier curve.

This technique is done by way of combining various different types of bricks, which can range from the standard brick taken from the Core brick pallet FS provides to custom resized composites of these to make different degrees of sloped bricks. But mostly this requires a combination 2 types of bricks. The first is a rounded circle segment bricks (meant to make the starting/ending point for a curve, or for the transition of a curve's extreme, making it progress further. The Second usually is a sloped brick that is used to connect a curve's extremes.

My next post will be a set of images for both techniques, to make you actually able to understand what I just explained and providing you with a visual refference for it all.

Cheers!

Comment by Sed4tives Wed, 7th August
Comment by Sed4tives Wed, 7th August

Yeah, I'm beginning to experiment with Composite bricks, which is an awesome feature I didn't know was a thing. I suspect that there's a way to get the slope I'm looking for, it's just a matter of combining the right combination of bricks to get the the slope I'm looking for.

Comment by apostle92627 Wed, 7th August

Ugh... Well, that was poorly written and wordy.

*Is embarrassed*

Comment by apostle92627 Wed, 7th August
Comment by Sed4tives Wed, 7th August

@ postle92627 Here is another additional demonstration of that "small grid curves" technique I use.

PS: This same techinique is required in order to make "small grid" slanted slopes & thin hairline stokes, etc. as can be seen in the gif image I attached.

Cheers!

Comment by Sed4tives Wed, 7th August

apostle: Check out Tutorial 3, Technique 3. You can see how I changed a brick's slope with composites by putting some square bricks next to it. More bricks = more angle change.

Good stuff, STF :D

Comment by zephram Wed, 7th August

Here is another random bunch of faux-Bezier (linear) shapes and fake curves taken from various letterparts I build. One could achieve when using the first technique I explained above combined with the other filters I havent explained previously. But which is grid scale Filter. In this particular sample I changed the value of only the Horizontal scale in order to achieve a stressed distortion to the overal shapes and behaviour of the curves. This specific value of 1,5:1 streches the width of my grid up to 150%. Resulting in a morphed like effect. When you grew a little more familiar with the editors Filters you can really push your boundaries on building custom shapes!

The one thing you got to keep in mind, this faux-Bezier technique will never truely be perfectly smooth at large size end-use of your font. But I can asure you when using this technique your abilities for making customized shapes & forms will becone nearly limitless.

So when close to a truely perfect smooth curve is enough for you, this is the way to go!

PS: To answer your question about ways to get the result you had in mind.

This faux-Bezier technique is far more predictable than the other technique I explained. So to get the shape you wish often follows a specific but very logical sequence of bricks and path for approach to reach a certain form.

cheers

Comment by Sed4tives Thu, 8th August

The S that is provided the image above or the other thin stoke in the right most letter segment are good benchmark examples that show about the smoothest result you can achieve when using this specific technique without using the brick size filters. So there you have somewhat of a visual perspective on how useful the end result for fonts made this way would be.

Im not going to dive into using this technique with a 2:2 brick size filter setting, because this simply turns the required skill level up to hardcore mode.

But this way you essentially could create even smoother edges than  at 1:1 brick size

The basic technique remains the same though!

Comment by Sed4tives Thu, 8th August

Good stuff, thanks guys!

Comment by apostle92627 Thu, 8th August

Also of Interest

More from the Gallery

Novus Graecorumby zephram
Pixel Flamesby zephram
Bulwarxby zephram
Ballotineby zephram
Kelsey's Scriptby Kelsey Ann (WickedTwilight49)
ThM_BlackBoxby thm_go
Samoaby Magic Sam
Zerustaby V. Sarela (Yautja)

From the Blog

News

New Bricks: Square Connectors

News

The Video Game Font Preservation Society

News

FontStruct goes open source!

News

New Bricks: Half Arcs